boxmoe_header_banner_img

Hello! 欢迎来到盒子萌!

加载中

文章导读

03类型转换


avatar
Jack 2022年 11月 3日 259

类型转换

类型转换是将某个数据转换为其他类型的数据的操作。

可以参考表格

字符串操作环境 数字运算环境 逻辑运算环境 对象操作环境
undefined “undefined” NaN false Error
null “null” 0 false Error
非空字符串 不转换 字符串对应的数字值 True
空字符串 不转换 0 false String
0 “0” 不转换 false Number
NaN “NaN” 不转换 false Number
Infinity “Infinity” 不转换 true Number
Number.POSITIVE_INFINITY “Infinity” 不转换 true Number
Number.NEGATIVE_INFINITY “-Infinity” 不转换 true Number
Number.MAX_VALUE “1.7976931348623157e+308” 不转换 true Number
Number.MIN_VALUE “5e-324” 不转换 true Number
其他所有数字 “数字的字符串值” 不转换 true Number
true “true” 1 不转换 Boolean
false “false” 0 不转换 Boolean
对象 toString() value()或toString()或NaN true 不转换
Symbol toString() Error true Symbol
BigInt toString() 不转换 除0n都是true BigInt

显示类型转换

转换方法:

  • 转数字:Number()
  • 转字符串:String()
  • 转布尔值:Boolean()
  • 转字符:Symbol()基本没有该需求
  • 转大数字:BigInt()

常见需求是在数字、布尔值、字符串三者之间进行转换

let a = 1

let r1 = String(a) // 将a转换为字符串
let r2 = Boolean() // 将a转换为布尔值

let b = "123"

let r3 = Number(b) // 将b转换为数字,请注意,如果字符串内不全是数字字符时会转换成坏值NaN
let r4 = Boolean(b) // 将b转为布尔值

// 布尔值转换为数字时,true转为1 false转为0,转为字符串时相当于给对应的值加上引号

以上通过对应的数据类型的接口转换的方式叫显示类型转换

隐式类型转换

隐式转换是在使用非上面的接口转换时的叫法,通常这些转换情况容易被人忽略,所以叫隐式转换

1. 转数字

let a = '123' // 此时a是字符串,而不是数字
a++  // 此时 a = 124,

同时在比较大于、小于、小于等于、大于等于时,有数字参与的比较,也会将另外一个非数字转换为数字

2.转字符串

当有字符串参与的加法运算时,非字符串数据会被转换成字符串,然后将两个字符串合并

let a = "123"
let b = true
let c = a + b
// c = "123true"


评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字
插入代码