关于JS类型转换那点事

在牛客网上刷题,经常会遇到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  不同的数据类型



猜你喜欢

转载自blog.csdn.net/bangbanggangan/article/details/81006847