隐式类型转换
一:字符串
转字符串出现的场景
1、有字符串的加法运算
2、有对象的加法运算
3、某些比较运算符
4、调用alert、document.write方法
转换的原理:调用了String()
二:数字
隐式类型转数字出现的场景
1、数学运算符(+ - * / %),但是加号运算里不能出现字符串与对象类型的数据
2、一元运算符(+ -)后的数据
3、某些比较运算符
原理:Number();
数据转数字的结果
1、undefined NaN
2、null 0
3、布尔值 true为1,false为0
4、字符串
1、空、空格为0
2、非空字符串,并且内容为纯数字(包含进制和科学表示法),转成对应的数字
3、其余的都是NaN
5、对象
1、对象、函数转成NaN
2、空数组转为0,数组里只有一个数据并且这个数据能转成数字,则转成对应的数字,其它都是NaN
三:转布尔值
隐式类型转布尔值出现的场景
1、取反运算(! !!)
2、三目运算符
3、条件语句的括号里
4、逻辑运算符&& ||
原理:Boolean();
数据转数字的结果
1、undefined false
2、null false
3、数字
+0 -0 NaN转布尔值的结果为false,其它的转布尔值结果都为true
4、字符串
1、空字符串转布尔值的结果为false,其它(包括空格)结果都为true
5、对象,结果都为true

浙公网安备 33010602011771号