簡體   English   中英

三元運算符和 OR 運算符的運算順序

[英]Order of Operations with ternary operator and OR operator

為什么第一個例子中的操作順序是從右到左?

這評估為 World

"Hello" || true ? "World" : ""

這評估為 Hello

"Hello" || (true ? "World" : "")

可能您知道操作不是從左到右執行的,而是遵循操作員優先級:只是想:

1 + 2 * 3

你期待7還是9 正如您所試驗的那樣,三元運算符的優先級較低。

"Hello" || true ? "World" : ""

相當於

("Hello" || true) ? "World" : ""

希望這可以幫助。

這是由於邏輯優先。

在第一個例子中,邏輯是用來判斷“World”還是“”是output。 如果任一情況"Hello" || true "Hello" || true是真的,三元運算符將 output “世界”。

在第二種情況下, || 如果短路評估失敗,則用作備用。 即,嘗試 output 第一個值是否為真。 如果第一個值,在這種情況下“Hello”為假,則評估下一個值(真?“世界”:“”)。

在這兩個示例中,邏輯對第一個值 (Hello) 的計算結果為真。 不同之處在於第一種情況用作三元運算符作為使用的快捷方式

if ("Hello" || true) {
    return "World"
} else {
    return ""
}

我希望這對你有幫助。

 "Hello" || true? "World": ""; //is the same as: if("Hello" || true) { console.log("World") } else { console.log(""); }; // Outputs World console.log("Hello" || (true? "World": "")); //Outputs Hello //sentence after OR is like: if(true) { "World"; } else { ""; } //For example: console.log((true? "World": "") || "Hello"); //Outputs World console.log("Hello" || (true? "World": "")); //Outputs Hello

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM