js中||和&&優先級問題


js中關於&&和||的優先級,網上查閱包括javascript權威指南中都是說&&優先級高於||。

測試發現好像不太一致。

在 chrome 控制台中輸入下列代碼:

var i = 1;
var t = true || ((function(){i = 2;return true;})() && (function(){return false;})())
console.log(t,i)

  返回結果為:

true 1

如果&&優先級高於||,則右邊括號內的代碼會先運行,i = 2; 會被執行,console 的 i 值就會為2,而這里則是1。

調整順序:

var i = 1;
var t = ((function(){i = 2;return true;})() && (function(){return false;})()) || true ;
console.log(t,i);

返回結果為:

true 2

i = 2; 被執行。

這里的代碼似乎是按照左右順序執行的,也就是 || 和 && 優先級是相同的,並非 && 高於 || 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM