回答
關係運算符(>=
和<=
),進行強制類型轉換(ToPrimitive
),並使用一個提示類型的Number
,所有的關係目前運營商有這種行爲。
您可以在The Abstract Relational Comparison Algorithm中看到此過程的內部細節。
在另一方面,Equals operator(==
),如果操作數是null
它只返回true
如果對方是要麼null
或undefined
,沒有數字的類型強制製成。
null == undefined; // true
null == null; // true
檢查The Abstract Relational Comparison Algorithm中此過程的內部細節。
推薦的文章:
行。 「>」,「<」將null評估爲0.「==」不會。謝謝。 – Eonil 2010-07-31 07:44:36
其他有趣的事情是a> = b不被評估爲((a> b)||(a == b)),而是作爲! (a = 0與>或==不相同。 – bschandramohan 2014-06-11 04:50:09
當在數字展開中使用null時,它將評估爲0,這將解釋您的>和> =個案。
==比較微妙。非正式地說,null與零不一樣,所以它有道理。
[This](http://bclary.com/2004/11/07/#a-11.8)是理解使用這些操作符的步驟的非常有用的鏈接。仍然沒有解釋瘋狂的邏輯,但是...... – Stephen 2010-07-30 14:29:54
相對比較運算符意味着數字上下文,因此在這些情況下(>
,>=
),null
被轉換爲數字(零)。
然而,在==
的情況下,兩個值都被視爲布爾值,並且Javascript不認爲null
應該與任何其他「falsy」值相等。這很奇怪。 ==
的等號算法有許多特殊情況,而null
就是其中之一。它本身只有==
,undefined
。
有趣!似乎Javascript需要一些新的身份運營商,如>==
和<==
。雖然我不確定這會有多大意義,因爲>
和<
的數字含義。
這給了預期的結果...
(null > 0 || null === 0);
- 1. 與datejs的Javascript日期對比問題
- 2. JavaScript比較問題
- 3. Javascript Array比較問題
- 4. Javascript - 問題比較日期
- 5. 比較對象的問題
- 6. jquery對象比較問題
- 7. JavaScript中的+0有什麼問題?
- 8. 面臨的比較問題,在JavaScript
- 9. JavaScript對象問題
- 10. JavaScript中的字符串比較問題
- 11. 字符串對比問題
- 12. Powershell比較對象問題
- 13. PHP日期對比問題
- 14. javascript對象問題
- 15. JavaScript對象問題
- 16. JavaScript對象問題
- 17. JavaScript:對象問題
- 18. JavaScript對象問題
- 19. 使用IComparable比較對象的問題
- 20. Javascript與對象的問題
- 21. 針對IE6的JavaScript問題
- 22. 表對齊問題HTML JavaScript
- 23. Javascript對象申報問題
- 24. javascript數組/對象問題
- 25. javascript數組對象問題
- 26. 比較運算符!==對0
- 27. Fortran問題0 + 0不等於0
- 28. JavaScript對象操作問題
- 29. Javascript對象/函數問題
- 30. Javascript對象方法問題
'空<= 0' ==也是如此。 – Oded 2010-07-30 14:25:04
什麼解釋器/瀏覽器? – 2010-07-30 14:31:36
哇............ – Eonil 2010-07-30 14:32:19