javascript優先級注意點

javascript 優先級

注意一下 && 和 == 號之間的優先級關係javascript

請首先看以下代碼, 判斷下 && 和 == 的優先級java

const emptyObj = {name: "kylin"};
if (emptyObj && emptyObj.name === "kylin") {
    console.log("my name is kylin");
}

首先說明
** == 的優先級是高於 && 的 **code

可能你們本身邏輯判斷的時候, 實際上是想判斷下 emptyObj 是非空, 而後再比較 emptyObj.name 與 keylin 的關係, 但這裏的執行順序就有了問題圖片

若是ip

const emptyObj = null;
if (emptyObj && emptyObj.name === "kylin") { //Uncaught ReferenceError: empty is not defined
    console.log("my name is kylin");
}

fix: (須要添加括號修正優先級)console

const emptyObj = null;
if ((emptyObj && emptyObj.name) === "kylin") { //Uncaught ReferenceError: empty is not defined
    console.log("my name is kylin");
}

附一個圖片class

{% asset_img javascript-優先級.png %}im

相關文章
相關標籤/搜索