JavaScript中為什么null==0為false而null大于=0為true(個人研究)
更新時間:2013年09月16日 16:25:11 作者:
今天閑來沒啥事,研究了一下有關“null”和“0”的關系。希望大家看完了能有所收獲,在此與大家分享下,希望也可以受益匪淺
生活中我們在不停的編寫代碼,寫著JavaScript,很少有時間進行概念上的研究。我呢,今天閑來沒啥事,研究了一下有關“null”和“0”的關系。希望大家看完了能有所收獲。
alert(null>=0)
上面的代碼會彈出什么來呢?False?True?其實是true。那么是為什么呢?為什么"null>=0"為true呢?null>=0的時候,強轉(zhuǎn)為數(shù)字類型。在進行null>=0比較時,它是通過比較null<0得到的答案,如果a=b 為false,如果a=b 為true,即0<0為false,也就是null<0為false,那么null>0為true。所以 null>=0為true。
alert(null==0)
上面的代碼會彈出什么來呢?False?True?其實是false。"null==0"的時候是特殊處理,不會轉(zhuǎn)為數(shù)字類型,不會轉(zhuǎn)化為數(shù)值,但如果左面是字符串右面是數(shù)值就會被轉(zhuǎn)化?!皀ull”是對象(空對象, 沒有任何屬性和方法)。而“0”是數(shù)字。前面說過“==”并不轉(zhuǎn)換類型,只是比較。所以,為false。
為什么"null==0"為false,但是"null>=0"為true?這個小問題就分析到這里了。在分析的過程中我也學習到了很多東西,我想大家再看的時候也有一定的收獲吧。以上全是個人觀點,若有啥理解不到位的,歡迎提出來,大家一起學習哈。
復制代碼 代碼如下:
alert(null>=0)
復制代碼 代碼如下:
上面的代碼會彈出什么來呢?False?True?其實是true。那么是為什么呢?為什么"null>=0"為true呢?null>=0的時候,強轉(zhuǎn)為數(shù)字類型。在進行null>=0比較時,它是通過比較null<0得到的答案,如果a=b 為false,如果a=b 為true,即0<0為false,也就是null<0為false,那么null>0為true。所以 null>=0為true。
復制代碼 代碼如下:
alert(null==0)
上面的代碼會彈出什么來呢?False?True?其實是false。"null==0"的時候是特殊處理,不會轉(zhuǎn)為數(shù)字類型,不會轉(zhuǎn)化為數(shù)值,但如果左面是字符串右面是數(shù)值就會被轉(zhuǎn)化?!皀ull”是對象(空對象, 沒有任何屬性和方法)。而“0”是數(shù)字。前面說過“==”并不轉(zhuǎn)換類型,只是比較。所以,為false。
為什么"null==0"為false,但是"null>=0"為true?這個小問題就分析到這里了。在分析的過程中我也學習到了很多東西,我想大家再看的時候也有一定的收獲吧。以上全是個人觀點,若有啥理解不到位的,歡迎提出來,大家一起學習哈。
相關文章
JavaScript高級程序設計 閱讀筆記(七) ECMAScript中的語句
ECMAScript中的語句,學習js的朋友可以參考下2012-02-02

js設置function參數(shù)默認值(適合沒有傳參情況)
div+css模擬js信息框的類庫時遇到一個問題當沒有傳遞參數(shù)過去時自動使用提示信息作為窗口標題,具體的實現(xiàn)如下
2014-02-02