前段时间学习JS的时候,我记得遇到过相等操作符==和全等操作符===的应用,但是好像没太注意。今天晚上看JavaScript DOM编程艺术的时候发现了相等操作符==和全等操作符===的内容,对于两者的区别,在这里记录一下。
先看一个例子:比较false与一个空字符串会有什么结果?
var a = false;
var b = "";
if(a == b){
alert("a equals b.");
}
这条语句的求值结果是true,为什么咧?
原因:相等操作符==认为空字符串与false的含义相同。想要进行严格的比较,就要用另外一种等号,即全等操作符===。这个全等操作符会执行严格的比较,不仅比较值,而且会比较变量的类型!
var a = false;
var b = "";
if(a === b){
alert("a equals b.");
}
这一次,条件表达式的求值结果就是false了。因为即使可以认为false与空字符串具有相同的含义,但是 Boolean与String可不是同一种数据类型。
当然,对于不等操作符!=也是如此。如果想要比较严格不相等,就要使用!===。