美文网首页
javascript中"if(xx)"和"a==b"判断

javascript中"if(xx)"和"a==b"判断

作者: 礼知白 | 来源:发表于2018-08-13 14:22 被阅读0次

if(xx)的判断

if语句是编程语言最常用的语句。

if(condition){
    //true statement
}else {
    //false statement
}

其中condition可以是任意表达式,结果不一定是布尔值,JavaScript解释器会自动调用Boolean()将表达式结果转为布尔值。如果表达式为真执行第一个代码块内语句,如果为假执行第二个代码块内语句。


非严格相等a==b的判断

相等操作符比较两个值是否相等,在比较前将两个被比较的值转换为相同类型。在转换后(等式的一边或两边都可能被转换),最终的比较方式等同于全等操作符 === 的比较方式。 相等操作符满足交换律。
相等操作符对于不同类型的值,进行的比较如下图所示:


在上面的表格中,ToNumber(A)尝试在比较前将参数 A 转换为数字,这与 +A(单目运算符+)的效果相同。ToPrimitive(A)通过尝试调用 A 的A.toString()A.valueOf()方法,将参数 A 转换为原始值(Primitive)。
使用相等操作符要慎重,使用全等操作符的结果更容易预测,并且因为没有隐式转换,全等比较的操作会更快

真值表

下面是 x == y 的「真值表」,左边表示 x 的取值,上边表示 y 的取值,绿色表示真,白色表示假:


所以,== 是一个难用的符号,非常非常容易出错!!
所以,我们推荐使用 === 代替 ==。
真值表如下:

参考:
JavaScript 中的相等性判断——MDN
为什么推荐使用 === 不推荐 ==

相关文章

网友评论

      本文标题:javascript中"if(xx)"和"a==b"判断

      本文链接:https://www.haomeiwen.com/subject/vvjrbftx.html