2015-10-18 2 views
0

Я читаю приоритет оператора на this page. Он показывает, что «===» имеет более высокий приоритет, чем «||» оператор. Если это правда, тогда сначала будет выполняться «a === doesThisHappen()». Но почему я не получил console.log («Это происходит!»)?приоритет оператора в javascript

var a; 

a = 1; 

function doesThisHappen() { 

    console.log('This happens!'); 

    return 0; 
} 

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

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence Это страница для оператора старшинства – Hui

+0

вы должны увидеть журнал –

+0

@RonaldoMessi: * Один из них * , да; а не другой. –

ответ

3

Порядок оценки и приоритет оператора являются ортогональными понятиями. В a || b левая сторона a оценивается сначала независимо от того, что содержит правая сторона b. Более того, если левая сторона оценивает значение true, правая часть не оценивается.

+0

Например, * приоритет * не вступает в игру здесь. * Ассоциативность * делает. –

Смежные вопросы