JS一千问(25):==和===之间的区别是什么?

==是抽象相等操作符,而===是严格相等操作符。

在进行必要的类型转换后,==操作符才进行相等比较。

===操作符不会进行类型转换,因此如果两个值不相同,type === 将简单地返回false。

如此,使用==时,会发生一些令人头疼的事情,比如:

// 六种比较结果全是true
0 == ''; // true
0 == '0'; 
0 == false; 
1 == '1'; 
1 == [1]; 
1 == true; 

这种模糊判断,很容易给项目留下隐患。

不过,在比较null或undefined时倒是比较方便。

var a = null;
a == null; // true
a == undefined; // true

许多开发者建议永远不要使用==操作符,是有一定道理的。

Leave a Comment

您的电子邮箱地址不会被公开。 必填项已用*标注