0
A
回答
1
因爲編程不是數學。
1 < 2
返回布爾值true
然後將其隱式轉換爲數字1
,這確實少於三個。第二個例子中發生的情況相同,但1 > 1
返回false
。
2
Javascript不支持expression like 0 < x < 10
。因爲<
和>
運算符具有相同的優先級並從左到右應用,實際上,正在評估的是(1 < 2) < 3
。
由於表達(1 < 2)
評估爲真時,第二<
操作,實際上,評估是否true
小於或等於3
。
1 < 2 < 3
(1 < 2) < 3
true < 3
true
你的第二個例子可以通過應用相同的過程來理解:
3 > 2 > 1
(3 > 2) > 1
true > 1
false
至於爲什麼true < 3
計算結果爲真,true > 1
計算結果爲假,答案是更復雜一點,並有在Javascript中使用寬鬆的輸入系統。總之,與數字相比,javascript的true
值的計算結果爲1,其'false
值的計算結果爲0.
本章介紹過程應用程序的替換方法相當有幫助。 https://mitpress.mit.edu/sicp/full-text/sicp/book/node10.html
+1
請注意,JavaScript(以及許多其他語言)的行爲部分是因爲它們來自C,它沒有布爾類型。通常在C編程中(在官方布爾頭文件之前),會使用預處理器指令來定義'FALSE = 0'和'TRUE = 1'。 –
相關問題
- 1. javascript的字符串比較和比較運算符不工作?
- 2. 比較運算符
- 3. JavaScript比較運算符不工作
- 4. Javascript比較運算符「不大」
- 5. 使用比較運算符比較postgres中的字符串?
- 6. 比較位運算符
- 7. 邏輯比較運算符
- 8. PowerShell比較運算符
- 9. SQL比較運算符
- 10. Ruby比較運算符? ==與===
- 11. 多個比較運算符
- 12. 運算符重載「運算符T *()」產生比較運算符?
- 13. 泛型堆中的比較運算符
- 14. C#中的比較運算符
- 15. PHP中的動態比較運算符
- 16. java中的比較運算符對象
- 17. C字符串的比較運算符
- 18. 如何使用比較運算符比較Java中的日期?
- 19. 覆蓋JavaScript中比較運算符的默認行爲
- 20. 在PHP中比較運算符重載
- 21. Lua比較運算符(通配符?)
- 22. 使用反射的比較運算符
- 23. 比較運算符的評估順序?
- 24. Python的比較運算符重載
- 25. Javascript數值比較運算符如何處理字符串?
- 26. 與比較運算符的日期比較
- 27. 的JavaScript的if/else和比較/關係運算符
- 28. 在c + +運算符重載(比較運算符)
- 29. HLSL:浮法賦值運算符比較
- 30. 比較運算符思維Sphinix
因爲檢查返回一個布爾值。然後,布爾值被隱式轉換爲一個數字,用於下一次比較。 –