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

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