if(xx)的判断
if语句是编程语言最常用的语句。
if(condition){
//true statement
}else {
//false statement
}
其中condition可以是任意表达式,结果不一定是布尔值,JavaScript解释器会自动调用Boolean()将表达式结果转为布尔值。如果表达式为真执行第一个代码块内语句,如果为假执行第二个代码块内语句。
![](https://img.haomeiwen.com/i8120037/090fe25b5b92111a.png)
非严格相等a==b的判断
相等操作符比较两个值是否相等,在比较前将两个被比较的值转换为相同类型。在转换后(等式的一边或两边都可能被转换),最终的比较方式等同于全等操作符 === 的比较方式。 相等操作符满足交换律。
相等操作符对于不同类型的值,进行的比较如下图所示:
![](https://img.haomeiwen.com/i8120037/817e4cea44e72c8a.png)
在上面的表格中,
ToNumber(A)
尝试在比较前将参数 A 转换为数字,这与 +A(单目运算符+)的效果相同。ToPrimitive(A)
通过尝试调用 A 的A.toString()
和 A.valueOf()
方法,将参数 A 转换为原始值(Primitive)。使用相等操作符要慎重,使用全等操作符的结果更容易预测,并且因为没有隐式转换,全等比较的操作会更快
真值表
下面是 x == y 的「真值表」,左边表示 x 的取值,上边表示 y 的取值,绿色表示真,白色表示假:
![](https://img.haomeiwen.com/i8120037/af707380806afc4a.png)
所以,== 是一个难用的符号,非常非常容易出错!!
所以,我们推荐使用 === 代替 ==。
真值表如下:
![](https://img.haomeiwen.com/i8120037/b97d71f34d0d5ab7.png)
参考:
JavaScript 中的相等性判断——MDN
为什么推荐使用 === 不推荐 ==
网友评论