js--类型转换

298 阅读1分钟

类型转换

类型转换有两种情况:

隐式类型转换: 大多数情况下,运算符和函数会自动将赋予它们的值转换为正确的类型。例如算术运算符会将值转换为数字。

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 类型转换规则如下:

转换为
undefinedNaN
NaNNaN
null0
string去掉首尾空格后的纯数字字符串中含有的数字。如果存在字符则返回 NaN;如果为''则返回0。
true/fasle1/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