JavaScript中为什么null==0为false而null>=0为true
www.111cn.net 编辑:lovedj 来源:转载
有朋友问我JavaScript中为什么null==0为false而null>=0为true呢,下面我来介绍一下我对null的一些理解各位朋友可参考。
id="iframeu2512078_0" src="http://pos.baidu.com/bcam?sz=638x216&rdid=2512078&dc=2&di=u2512078&dri=0&dis=0&dai=2&ps=572x82&coa=at%3D3%26rsi0%3D638%26rsi1%3D216%26pat%3D1%26tn%3DbaiduCustNativeAD%26rss1%3D%2523FFFFFF%26conBW%3D0%26adp%3D1%26ptt%3D0%26titFF%3D%2525E5%2525BE%2525AE%2525E8%2525BD%2525AF%2525E9%25259B%252585%2525E9%2525BB%252591%26titFS%3D%26rss2%3D%2523000000%26titSU%3D0%26tft%3D0%26tlt%3D0%26ptbg%3D90%26piw%3D0%26pih%3D0%26ptp%3D0&dcb=BAIDU_SSP_define&dtm=BAIDU_DUP_SETJSONADSLOT&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1461050608063&ti=JavaScript%E4%B8%AD%E4%B8%BA%E4%BB%80%E4%B9%88null%3D%3D0%E4%B8%BAfalse%E8%80%8Cnull%3E%3D0%E4%B8%BAtrue-js%E6%95%99%E7%A8%8B-%E7%BD%91%E9%A1%B5%E5%88%B6%E4%BD%9C-%E5%A3%B9%E8%81%9A%E6%95%99%E7%A8%8B%E7%BD%91&ari=1&dbv=2&drs=1&pcs=1123x506&pss=1123x593&cfv=0&cpl=4&chi=1&cce=true&cec=GBK&tlm=1457242135<u=http%3A%2F%2Fwww.111cn.net%2Fwy%2Fjs-ajax%2F51075.htm<r=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3Dls0UeTpaiBuU00Eso80OVyA6QO1_KZ7m0mUfTO8EK79FjyWZAJa-WyE28D_3jqpinLC4d03C589DBRTaEn2alK%26wd%3D%26eqid%3Db708ca6c000027e3000000055715dcc0&ecd=1&psr=1366x768&par=1366x728&pis=-1x-1&ccd=24&cja=false&cmi=6&col=zh-CN&cdo=-1&tcn=1461050608&qn=cc239ef2c4caea3d&tt=1461050608043.107.345.346" width="638" height="216" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;">
工作中我们在不停的编写代码,写着JavaScript,很少有时间进行概念上的研究。我呢,今天闲来没啥事,研究了一下有关"null"和"0"的关系。希望大家看完了能有所收获。
alert(null>=0)
上面的代码会弹出什么来呢?False?True?其实是true。那么是为什么呢?为什么"null>=0"为true呢?null>=0的时候,强转为数字类型。在进行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"的时候是特殊处理,不会转为数字类型,不会转化为数值,但如果左面是字符串右面是数值就会被转化。"null"是对象(空对象, 没有任何属性和方法)。而"0"是数字。前面说过"=="并不转换类型,只是比较。所以,为false。
为什么"null==0"为false,但是"null>=0"为true?这个小问题就分析到这里了。在分析的过程中我也学习到了很多东西,我想大家再看的时候也有一定的收获吧。以上全是个人观点,若有啥理解不到位的,欢迎提出来,大家一起学习哈。
附一些参考
== | 0 | '0' | [0] | [] | {} | '' | null | [null] | undefined | NaN | [NaN] | 'a' | Infinity | 1 | '1' | [1] |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | true | true | true | true | false | true | false | true | false | false | false | false | false | false | false | false |
'0' | true | true | true | false | false | false | false | false | false | false | false | false | false | false | false | false |
[0] | true | true | false | false | false | false | false | false | false | false | false | false | false | false | false | false |
[] | true | false | false | false | false | true | false | false | false | false | false | false | false | false | false | false |
{} | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false |
'' | true | false | false | true | false | true | false | true | false | false | false | false | false | false | false | false |
null | false | false | false | false | false | false | true | false | true | false | false | false | false | false | false | false |
[null] | true | false | false | false | false | true | false | false | false | false | false | false | false | false | false | false |
undefined | false | false | false | false | false | false | true | false | true | false | false | false | false | false | false | false |
NaN | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false |
[NaN] | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false |
'a' | false | false | false | false | false | false | false | false | false | false | false | true | false | false | false | false |
Infinity | false | false | false | false | false | false | false | false | false | false | false | false | true | false | false | false |
1 | false | false | false | false | false | false | false | false | false | false | false | false | false | true | true | true |
'1' | false | false | false | false | false | false | false | false | false | false | false | false | false | true | true | true |
[1] | false | false | false | false | false | false | false | false | false | false | false | false | false | true | true | false |
=== | 0 | '0' | [0] | [] | {} | '' | null | [null] | undefined | NaN | [NaN] | 'a' | Infinity | 1 | '1' | [1] |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | true | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false |
'0' | false | true | false | false | false | false | false | false | false | false | false | false | false | false | false | false |
[0] | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false |
[] | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false |
{} | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false |
'' | false | false | false | false | false | true | false | false | false | false | false | false | false | false | false | false |
null | false | false | false | false | false | false | true | false | false | false | false | false | false | false | false | false |
[null] | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false |
undefined | false | false | false | false | false | false | false | false | true | false | false | false | false | false | false | false |
NaN | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false |
[NaN] | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false |
'a' | false | false | false | false | false | false | false | false | false | false | false | true | false | false | false | false |
Infinity | false | false | false | false | false | false | false | false | false | false | false | false | true | false | false | false |
1 | false | false | false | false | false | false | false | false | false | false | false | false | false | true | false | false |
'1' | false | false | false | false | false | false | false | false | false | false | false | false | false | false | true | false |
[1] | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false |
+ | 0 | '0' | [0] | [] | {} | '' | null | [null] | undefined | NaN | [NaN] | 'a' | Infinity | 1 | '1' | [1] |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | '00' | '00' | '0' | '0{}' | '0' | 0 | '0' | NaN | NaN | '0NaN' | '0a' | Infinity | 1 | '01' | '01' |
'0' | '00' | '00' | '00' | '0' | '0{}' | '0' | '0null' | '0' | '0undefined' | '0NaN' | '0NaN' | '0a' | '0Infinity' | '01' | '01' | '01' |
[0] | '00' | '00' | '00' | '0' | '0{}' | '0' | '0null' | '0' | '0undefined' | '0NaN' | '0NaN' | '0a' | '0Infinity' | '01' | '01' | '01' |
[] | '0' | '0' | '0' | '' | '{}' | '' | 'null' | '' | 'undefined' | 'NaN' | 'NaN' | 'a' | 'Infinity' | '1' | '1' | '1' |
{} | '{}0' | '{}0' | '{}0' | '{}' | '{}{}' | '{}' | '{}null' | '{}' | '{}undefined' | '{}NaN' | '{}NaN' | '{}a' | '{}Infinity' | '{}1' | '{}1' | '{}1' |
'' | '0' | '0' | '0' | '' | '{}' | '' | 'null' | '' | 'undefined' | 'NaN' | 'NaN' | 'a' | 'Infinity' | '1' | '1' | '1' |
null | 0 | 'null0' | 'null0' | 'null' | 'null{}' | 'null' | 0 | 'null' | NaN | NaN | 'nullNaN' | 'nulla' | Infinity | 1 | 'null1' | 'null1' |
[null] | '0' | '0' | '0' | '' | '{}' | '' | 'null' | '' | 'undefined' | 'NaN' | 'NaN' | 'a' | 'Infinity' | '1' | '1' | '1' |
undefined | NaN | 'undefined0' | 'undefined0' | 'undefined' | 'undefined{}' | 'undefined' | NaN | 'undefined' | NaN | NaN | 'undefinedNaN' | 'undefineda' | NaN | NaN | 'undefined1' | 'undefined1' |
NaN | NaN | 'NaN0' | 'NaN0' | 'NaN' | 'NaN{}' | 'NaN' | NaN | 'NaN' | NaN | NaN | 'NaNNaN' | 'NaNa' | NaN | NaN | 'NaN1' | 'NaN1' |
[NaN] | 'NaN0' | 'NaN0' | 'NaN0' | 'NaN' | 'NaN{}' | 'NaN' | 'NaNnull' | 'NaN' | 'NaNundefined' | 'NaNNaN' | 'NaNNaN' | 'NaNa' | 'NaNInfinity' | 'NaN1' | 'NaN1' | 'NaN1' |
'a' | 'a0' | 'a0' | 'a0' | 'a' | 'a{}' | 'a' | 'anull' | 'a' | 'aundefined' | 'aNaN' | 'aNaN' | 'aa' | 'aInfinity' | 'a1' | 'a1' | 'a1' |
Infinity | Infinity | 'Infinity0' | 'Infinity0' | 'Infinity' | 'Infinity{}' | 'Infinity' | Infinity | 'Infinity' | NaN | NaN | 'InfinityNaN' | 'Infinitya' | Infinity | Infinity | 'Infinity1' | 'Infinity1' |
1 | 1 | '10' | '10' | '1' | '1{}' | '1' | 1 | '1' | NaN | NaN | '1NaN' | '1a' | Infinity | 2 | '11' | '11' |
'1' | '10' | '10' | '10' | '1' | '1{}' | '1' | '1null' | '1' | '1undefined' | '1NaN' | '1NaN' | '1a' | '1Infinity' | '11' | '11' | '11' |
[1] | '10' | '10' | '10' | '1' | '1{}' | '1' | '1null' | '1' | '1undefined' | '1NaN' | '1NaN' | '1a' | '1Infinity' | '11' | '11' | '11' |
* | 0 | '0' | [0] | [] | {} | '' | null | [null] | undefined | NaN | [NaN] | 'a' | Infinity | 1 | '1' | [1] |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | NaN | 0 | 0 | 0 | NaN | NaN | NaN | NaN | NaN | 0 | 0 | 0 |
'0' | 0 | 0 | 0 | 0 | NaN | 0 | 0 | 0 | NaN | NaN | NaN | NaN | NaN | 0 | 0 | 0 |
[0] | 0 | 0 | 0 | 0 | NaN | 0 | 0 | 0 | NaN | NaN | NaN | NaN | NaN | 0 | 0 | 0 |
[] | 0 | 0 | 0 | 0 | NaN | 0 | 0 | 0 | NaN | NaN | NaN | NaN | NaN | 0 | 0 | 0 |
{} | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
'' | 0 | 0 | 0 | 0 | NaN | 0 | 0 | 0 | NaN | NaN | NaN | NaN | NaN | 0 | 0 | 0 |
null | 0 | 0 | 0 | 0 | NaN | 0 | 0 | 0 | NaN | NaN | NaN | NaN | NaN | 0 | 0 | 0 |
[null] | 0 | 0 | 0 | 0 | NaN | 0 | 0 | 0 | NaN | NaN | NaN | NaN | NaN | 0 | 0 | 0 |
undefined | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
[NaN] | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
'a' | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
Infinity | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | Infinity | Infinity | Infinity | Infinity |
1 | 0 | 0 | 0 | 0 | NaN | 0 | 0 | 0 | NaN | NaN | NaN | NaN | Infinity | 1 | 1 | 1 |
'1' | 0 | 0 | 0 | 0 | NaN | 0 | 0 | 0 | NaN | NaN | NaN | NaN | Infinity | 1 | 1 | 1 |
[1] | 0 | 0 | 0 | 0 | NaN | 0 | 0 | 0 | NaN | NaN | NaN | NaN | Infinity | 1 | 1 | 1 |