根據Mozilla,===運算符的優先級高於 。運營商,這是我所期望的。JavaScript運算符優先級
但是,此語句評估爲數字1,而不是假。
let x = 1 || 0 === 0; // x === 1;
你必須在括號包裹取得布林:
let x = (1 || 0) === 0; // x === false;
是怎麼回事?
注:這是不是這個問題,它沒有關於平等的運營商什麼的DUP - JavaScript OR (||) variable assignment explanation
它從左到右進行評估。 「||」的左側評估爲真值,因此「||」的右側永遠不會被評估。 – Will
[JavaScript OR(||)變量賦值說明](https://stackoverflow.com/questions/2100758/javascript-or-variable-assignment-explanation) –
[Short-circuit evaluation](https:// developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators#Short-circuit_evaluation) – j08691