隐式转换和强制转换
隐式转换:
场景——数学运算符:+ - * /
规则:
+:当任意一边出现字符时,“+”会把数值类型转换成字符类型,此时 + 代表拼接
-、*、/:出现纯数字字符时,会转换成数值类型处理,出现非数字类型时,会出现“NaN”
场景——关系运算符:> < >= <= != == ===
规则:
当只有一边为纯数字字符时,会转换成数值比较
当两边全部是数字字符时,会按照字符串对比的规则对比(逐位比较,得到结果,停止比较)
==:若有字符类型会转换成数值类型,比较的是值
===:若有字符类型不会转换,比较的是值和数据类型,全等
场景——if语句:
规则:
0、“”、null、undefined、NaN在if的()内会转换为false
强制类型转换:
字符转数值:
parseInt():从左向右依次转换,能转则转,不能转停止;如果第一位就不能转,直接NaN;不识别小数点。
parseFloat():等同于parseInt,同时可以识别小数点
Math.round():严格转换,不允许出现任何非数字的字符,否则NaN;取最接近的整数
Number():严格转换,不允许出现任何非数字的字符,否则NaN;直接转换
-、*、/:利用数学运算符的隐式转换,把字符转换成数值
数值转字符:
toString():直接将数值转换成字符
toFixed():直接转换,参数为保留的小数位数
+:利用数学运算符的隐式转换,+连接一个空字符
其他类型的转换:
用+、-、*、/ 对true、false、null进行转换可得,true为1,false为0,null为0