javascript中的运算符优先级

时间:2015-10-18 08:19:20

标签: javascript operator-keyword operator-precedence

我正在this page上阅读运算符优先级。它显示“===”的优先级高于“||”运营商。如果是,那么“a === doesThisHappen()”将首先运行。但是为什么我没有得到console.log('这发生了!')?

var a;

a = 1;

function doesThisHappen() {

    console.log('This happens!');

    return 0;
}

if (a || a === doesThisHappen()) {
    console.log('Something is there.');
}

1 个答案:

答案 0 :(得分:3)

评估顺序和运算符优先级是正交概念。在a || b中,无论右侧a包含什么,左侧b都会被评估。更重要的是,如果左侧评估为真,则不评估右侧。

相关问题