// 强制类型转换 Number
// 1.1 如果字符串只包含数字,那么将其转换为相应的十进制数字
console.log(Number('2'));//2
console.log(Number('002'));//2
console.log(Number('002.2'));//2.2
console.log(Number('0x20'));//32
// 1.2对于null,undefined,NaN,进行强制类型转换时有特定的规则
// 注意:虽然null强制转换为数字时是0,但是进行隐式类型转换时不一样,有特定的规则
console.log(Number(null));//0
console.log(null==0);//false
// NaN本来就是Number数据类型,所以就是NaN,而undefined是还未赋值的,所以也是NaN
console.log(Number(undefined));//NaN
console.log(Number(NaN));//NaN
// 1.3 对于复杂数据类型先转换为字符串,再尝试转为数字
console.log(Number([]));//0
console.log(Number([1,2]));//NaN,因为[1,2]先转为String类型是'1,2',该字符串没办法转为数字
console.log(Number({}));//NaN,因为{}转为字符串是object Object,这个字符串没办法转为数字
// 2. 强制类型转换String(相当于调用了 xx.valueOf().toString())
console.log(String(1));//'1'
console.log(String([])==='');//'',true,空数组被强制转换为''空字符串
console.log(String({}));//object Object
console.log(String(undefined));//undefined
console.log(String(null));//null
console.log(String(NaN));//NaN
// 3. 强制类型转换 Boolean
console.log(Boolean(1));//true
// 强制转换为Boolean,除了'',0,NaN,undefined,null,false之外,其他的都会转为true
console.log(Boolean([]));//true
console.log(Boolean({}));//true
前端基础笔记——强制类型转换
最新推荐文章于 2023-03-20 20:54:35 发布