相等操作符
相等操作符==并不表示严格相等
eg:
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并不是一种类型
当然,对于不等操作符!=也是如此。如果想严格不相等,就要使用!==。