在牛客网上刷题,经常会遇到JS类型转换相关的题目,特总结常考、又很容易出错的考点:
1、Boolean转换
在JavaScript中,以下的值被当做false:,其余均为true
undefined、null、0、NaN、空字符串
2、Boolean与任何类型进行比较,布尔类型转换为Number类型再做比较,如:
console.log(([])?true:false);
console.log([]==false?true:false);
console.log(({})?true:false);
解析:
console.log(([])?true:false);
首先要搞清楚的是:
Boolean([]) //true Number([]) //0 Number({}) //NaN Number(false) //0
所以上面打印的结果依次为 true true false;
3、关于undefined和null
console.log(undefined == null)//true
console.log(undefined === null)//false
"=="相等操作符,如果两个操作符相等,则返回true,在转换不同的数据类型时,要注意转换规则:
如果一个操作数为布尔值,先转换为number;
如果是字符串和数值,先将字符串转换为数值,在比较;
如果一个值为对象,另一个为字符串或数字,则将对象转换为原始值,再进行比较;
注意:NaN与任何值均不相等
“===”全等操作符,在两个操作数未经转换进行比较:如
var result = ("55"==55)//true 转换后相等
var result = ("55"===55)//false 不同的数据类型