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. 比較運算符在javascript中的數組上比較什麼?
- 3. javascript的字符串比較和比較運算符不工作?
- 4. 比較運算符
- 5. 比較運算符
- 6. 比較運算符
- 7. JavaScript比較運算符不工作
- 8. Javascript比較運算符「不大」
- 9. Javascript:使用邏輯運算符與比較運算符
- 10. 使用比較運算符比較postgres中的字符串?
- 11. 重載比較運算符
- 12. 多個比較運算符
- 13. PowerShell比較運算符
- 14. TypeTag和比較運算符?
- 15. 比較運算符!==對0
- 16. 比較位運算符
- 17. Python比較運算符
- 18. 比較運算符問題
- 19. 邏輯比較運算符
- 20. SQL比較運算符
- 21. Ruby比較運算符? ==與===
- 22. 運算符重載「運算符T *()」產生比較運算符?
- 23. java中的比較運算符對象
- 24. PHP中的動態比較運算符
- 25. C#中的比較運算符
- 26. Python中的'反轉'比較運算符
- 27. 泛型堆中的比較運算符
- 28. for循環中的比較運算符
- 29. weak_ptr中的比較運算符C++
- 30. C字符串的比較運算符
因爲檢查返回一個布爾值。然後,布爾值被隱式轉換爲一個數字,用於下一次比較。 –