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. ==與Python中的運算符的區別
- 6. C#中的==運算符和Equals()方法之間的區別?
- 7. String.Sort和大於/小於運算符之間的區別VB.Net
- 8. 默認和賦值運算符之間的PL/SQL區別
- 9. 某些運算符「|」,「^」,「&」,「&^」之間的區別。 Golang
- 10. OR運算符||之間的區別和|在Java中?
- 11. like和regex運算符之間的區別
- 12. 新建與覆蓋之間的區別?
- 13. 構建工具和任務運行器之間的區別
- 14. Grails BuildConfig.groovy,構建,編譯和運行時之間的區別?
- 15. 新運算符和Class.newInstance()之間有什麼區別?
- 16. 三級和三級之間的區別?
- 17. 事件與delegateEvents之間的區別?
- 18. 爲什麼IF和條件運算符之間的IL有這樣的差別?
- 19. 加入的條件和條件之間的區別
- 20. '+ ='和'= +'之間的區別?
- 21. Ruby中的字符串運算符+和<<之間的區別
- 22. Docker的VSTS構建任務之間的區別
- 23. 構造函數和new/malloc之間的區別,析構函數與delete/free之間的區別
- 24. Jenkins - 構建步驟之間的條件
- 25. 時間()與stime()之間的區別
- 26. 刀片和枝條之間的區別
- 27. 構建包與重載運算符
- 28. Python集合操作的運算符和非運算符版本之間的區別
- 29. 條件運算符
- 30. 條件運算符
如果YES''有點麻煩怎麼辦? – Biffen
不,只是測試它,我錯了。沒有認識到如果$值是虛假的,||仍然會被評估。 – Shilly
它們在功能上是相同的,但是IMO三元件更易於讀取 –