Javascript开发中,需要与0,undefined,null,false进行等同比较时,我们知道,用’===’(恒等)比较靠谱,我是在第一次使用jslint时知道这点的,例如在Jslint中验证
var test = '';
alert(test==0);

会得到提示:
Use '===' to compare with '0'

看看ECMA规范中是如何对==和===操作符进行定义的,了解其深层的规则以及jslint提示的缘由

首先介绍==
11.9.1 等同运算符( == )

运算符规则如下所示:
1. 计算运算符左侧表达式;
2. 对第1步的结果调用GetValue;
3. 计算运算符右侧表达式;
4. 对第1步的结果调用GetValue;
5. 对第4步的结果与第2步结果执行比对(参考 11.9.3);
6. 返回第5步结果;

再来详细了解比对过程(11.9.3)
11.9.3 抽象的等同比对算法…

阅读全文
 
, , , , , , , ,