2
A
回答
5
如果你使用常量編碼,因爲你的代碼樣本中,則沒有,有沒有什麼區別。尤其重要的是,你所處位置的常數是這樣一個真值。但是,當你不知道結果值是什麼時,那麼是的,它們是不同的。試想一下:
var x = a ? b : c;
在該代碼中,它肯定的是,如果a
是truthy,x
將被設置爲b
值的情況。否則,它將被設置爲值c
。
現在,在另一方面:
var x = a && b || c;
這裏,x
將被設置爲b
值只有當兩個a
和值是truthy。如果b
有錯,則評估將轉到||
的另一端。
1
他們更多或更少相同,鑑於你目前的代碼。如果YES
被虛假的東西所取代,這將是一個不同的故事。以下代碼將兩者與各種輸入進行比較。
function test1($value){
return $value && 'YES' || 'NO';
}
function test2($value){
return $value ? 'YES' : 'NO';
}
function compare(desc, $value){
console.log(desc, test1($value), test2($value));
}
compare("true",true);
compare("false",false);
compare("truthy1",1);
compare("truthy2","foo");
compare("undefined");
compare("falsey","")
相關問題
- 1. 「或」與Python中的按位運算符之間的區別
- 2. ->運算符與指針之間的區別*(C++)
- 3. 有條件的和邏輯運算符評估之間的區別
- 4. 算術運算符^和。^之間的區別是什麼?
- 5. 構建和製造之間的區別?
- 6. 減法運算符號和符號之間的區別
- 7. 構建和部署之間的區別?
- 8. ==與Python中的運算符的區別
- 9. C#中的==運算符和Equals()方法之間的區別?
- 10. XACML - AND條件與兩條規則之間的區別
- 11. 這兩個條件之間的區別?
- 12. String.Sort和大於/小於運算符之間的區別VB.Net
- 13. 默認和賦值運算符之間的PL/SQL區別
- 14. tf.assign和賦值運算符之間的區別(=)
- 15. like和regex運算符之間的區別
- 16. 某些運算符「|」,「^」,「&」,「&^」之間的區別。 Golang
- 17. OR運算符||之間的區別和|在Java中?
- 18. 新建與覆蓋之間的區別?
- 19. 行建模與EAV之間的區別
- 20. 構建工具和任務運行器之間的區別
- 21. Grails BuildConfig.groovy,構建,編譯和運行時之間的區別?
- 22. 新運算符和Class.newInstance()之間有什麼區別?
- 23. 在JavaScript中,運算符'〜'和'!'之間有什麼區別?
- 24. 「或」與「||」之間的區別?
- 25. ~~與Math.floor之間的區別()
- 26. 三級和三級之間的區別?
- 27. 事件與delegateEvents之間的區別?
- 28. mysql之間的運算符與日期
- 29. 爲什麼IF和條件運算符之間的IL有這樣的差別?
- 30. int CompareTo方法與普通If條件之間的區別?
如果YES''有點麻煩怎麼辦? – Biffen
不,只是測試它,我錯了。沒有認識到如果$值是虛假的,||仍然會被評估。 – Shilly
它們在功能上是相同的,但是IMO三元件更易於讀取 –