共计 1210 个字符,预计需要花费 4 分钟才能阅读完成。
强制转换
强制转换次要指应用 Number()
、String()
和Boolean()
三个函数,手动将各种类型的值,别离转换成数字、字符串或者布尔值。
Number()
应用 Number
函数,能够将任意类型的值转化成数值。
(1)原始类型值
原始类型值的转换规则如下。
// 数值:转换后还是原来的值
Number(324) // 324
// 字符串:如果能够被解析为数值,则转换为相应的数值
Number('324') // 324
// 字符串:如果不能够被解析为数值,返回 NaN
Number('324abc') // NaN
// 空字符串转为 0
Number('') // 0
// 布尔值:true 转成 1,false 转成 0
Number(true) // 1
Number(false) // 0
// undefined:转成 NaN
Number(undefined) // NaN
// null:转成 0
Number(null) // 0
Number
函数将字符串转为数值,要比 parseInt
函数严格很多。基本上,只有有一个字符无奈转成数值,整个字符串就会被转为NaN
。
parseInt('42 cats') // 42
Number('42 cats') // NaN
(2)对象
简略的规定是,Number
办法的参数是对象时,将返回NaN
,除非是蕴含单个数值的数组。
Number({a: 1}) // NaN
Number([1, 2, 3]) // NaN
Number([5]) // 5
String()
String
函数能够将任意类型的值转化成字符串,转换规则如下。String()
String
函数能够将任意类型的值转化成字符串,转换规则如下。
(1)原始类型值
- 数值:转为相应的字符串。
- 字符串:转换后还是原来的值。
- 布尔值 :
true
转为字符串"true"
,false
转为字符串"false"
。 - undefined:转为字符串
"undefined"
。 - null:转为字符串
"null"
。
String(123) // "123"
String('abc') // "abc"
String(true) // "true"
String(undefined) // "undefined"
String(null) // "null"
(2)对象
String
办法的参数如果是对象,返回一个类型字符串;如果是数组,返回该数组的字符串模式。
String({a: 1}) // "[object Object]"
String([1, 2, 3]) // "1,2,3"
Boolean()
Boolean()
函数能够将任意类型的值转为布尔值。
它的转换规则绝对简略:除了以下五个值的转换后果为false
,其余的值全副为true
。
undefined
null
0
(蕴含-0
和+0
)NaN
''
(空字符串)
Boolean(undefined) // false
Boolean(null) // false
Boolean(0) // false
Boolean(NaN) // false
Boolean('') // false
正文完
发表至: javascript
2022-03-15