类型转换
类型转换有两种情况:
隐式类型转换: 大多数情况下,运算符和函数会自动将赋予它们的值转换为正确的类型。例如算术运算符会将值转换为数字。
let result = '6' - '3'
console.log(result) //3
console.log(typeof result) //number
显示类型转换: 通过String,Number等显示的转换类型。
let str = '123456'
console.log(Number(str)) // 123456
console.log(typeof Number(str)) // number
字符串
我们需要一个字符串的值时,就会进行字符串类型转换。
比如:alert(value) 会将value转换为字符串类型,然后显示这个值。
也可以通过String(value)将value显示的转为字符串类型.
String(true) // "true"
String(undefined) // "undefined"
数字
在算术函数和表达式中,会自动进行 number 类型转换。
alert('6'/'2') // 3
6 * false // 0
也可以显示的进行转换
Number('123') // 123
Number(true) // 1
Number 类型转换规则如下:
| 值 | 转换为 |
|---|---|
| undefined | NaN |
| NaN | NaN |
| null | 0 |
| string | 去掉首尾空格后的纯数字字符串中含有的数字。如果存在字符则返回 NaN;如果为''则返回0。 |
| true/fasle | 1/0 |
例如:
Number(NaN) // NaN
Number(null) // 0
Number(undefined) // NaN
Number('123') // 123
Number('123s') // NaN
boolean
布尔类型的转换发生在逻辑运算中,
let b = 4 > 1
alert(b) // true
也可以通过Boolean(val) 显示的转换为布尔值
转换规则如下:
| 值 | 转换为 |
|---|---|
| 0,null ,undefined,NaN,空字符串 | false |
| 其他值 | true |
Boolean(0) //false
Boolean(null) //false
Boolean(undefined) //false
Boolean(NaN) //false
Boolean('') //false
Boolean('123') //true