把其他数据类型准换成Number类型
1.特定需要转换的Number的(number([ val ])、parseInt/parseFloat( [ val ]))
2.隐式转换 ==>Mumber转换
image.png
Number([ val ]) 规则
+把字符串转化成数字,要求字符串中所有的字符都必须是有效数字才能转换
console.log(Number( " ")) //=>0
console.log( Number("1")) //=>1
console.log( Number(" 1ab")) //=>NaN
+把布尔转化成数字
console.log( Number(false)) //=>0
console.log(Number( true)) //=>1
+把空转化成数字
console.log(Number( Null)) //=>0
console.log( Number(undefined)) //=>undefined
+把symbol ,bigint转化成数字
console.log(Number( Symbol)) //=>报错,不允许转换
console.log(Number(Bigint(10) )) //=>10
+把对象/函数转化成数字,先把他们转化成字符串,再转换数字,如果是有非数字,NaN
console.log(Number( [ 10 ])) =>"10" =>10
console.log(Number( [ 10px ])) =>"10px" =>NAN
parseInt/parseFloat( [ val ])规则
把val转换成字符串,从左到右依次查找,从左到右将所有找到的值变成数字,如果碰到非有效数字,停止查找。如果都没找到,则是NaN,parseFloat比parseInt多兼容小数小数点
console.log(parseInt("10PX10"))==>10
console.log(parseInt("ANS"))==>NAN
console.log(parseInt("10.5"))==>10
console.log(parseFloat("10.5"))==>10.5
toString
把其他类型转成字符串
1.能用方法 toString/String()
2.隐式转换(一般都是调用tostring)
+在加号运算的时候,如果加号的某一边出现字符串,则不是数学运算,而是将字符串拼接
+把对象转换成数字,需要先tostring转换成字符串再去转换成数字
+基于alert/confirm/prompt/document.write...这些隐式转换,也是先转换成字符串
! !!转换成布尔
把其他类型转成Boolean
+ ! 转换成布尔后取反
+ !! 转换成布尔类型
+ Boolean[]
===========================================
***规则 :
只有 null,0, undefined,空字符串,NaN五个值为布尔的false,其他都是true
==============================================
console.log(!0) ==>true
console.log(!!0) ==>false
console.log(!![]) ==>true
练习
console.log(10+null+undefined+[]+'Tencend'+null+true+{})
解析
image.png
数据类型转换
网友评论