[英]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.