JavaScript中为什么null==0为false而null>=0为true

工作中我们在不停的编写代码,写着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
时间: 2024-09-28 03:12:00

JavaScript中为什么null==0为false而null>=0为true的相关文章

JavaScript中为什么null==0为false而null大于=0为true(个人研究)_javascript技巧

生活中我们在不停的编写代码,写着JavaScript,很少有时间进行概念上的研究.我呢,今天闲来没啥事,研究了一下有关"null"和"0"的关系.希望大家看完了能有所收获. 复制代码 代码如下: alert(null>=0) 复制代码 代码如下: 上面的代码会弹出什么来呢?False?True?其实是true.那么是为什么呢?为什么"null>=0"为true呢?null>=0的时候,强转为数字类型.在进行null>=0比

php中0,null,empty,空,false,字符串关系的详细介绍_php技巧

在一个项目中遇到了一个奇怪的问题,耗费了我不少时间都没有解决,最终调试发现是判断的问题--关于0和 ' ' (空单引号,为好看清我加了个空格)的判断,我发现 0==" 居然成立,郁闷的同时决定写个简单页面测试,发誓要将0,null,empty,空,false的关系搞的一清二楚.因为这很可能在一些关键地方使我们编写的程序,网站存在bug.特别是可能影响到登陆等特殊地方的安全性和逻辑正确性,虽然这是很基础的知识点,但很多人,包括一些高手都可能对0,null,empty,空,false的关系很模糊.所

JavaScript中document.forms[0]与getElementByName区别_javascript技巧

首先我们来看个示例: 复制代码 代码如下: <form name="buyerForm" method="post" action="/mysport/control/user/list.do"> <input type="checkbox" id="usernames" value="testtest" >testtest<br> <input

JavaScript中Null与Undefined的区别解析

  这篇文章主要介绍了JavaScript中Null与Undefined的区别解析,本文给出了多个代码实例讲解它们之间的区别,需要的朋友可以参考下 在JavaScript中存在这样两种原始类型:Null与Undefined.这两种类型常常会使JavaScript的开发人员产生疑惑,在什么时候是Null,什么时候又是Undefined? Undefined类型只有一个值,即undefined.当声明的变量还未被初始化时,变量的默认值为undefined. Null类型也只有一个值,即null.nu

区别Javascript中的Null与Undefined

在JavaScript中存在这样两种原始类型:Null与Undefined.这两种类型常常会使JavaScript的开发人员产生疑惑,在什么时候是Null,什么时候又是Undefined? Undefined类型只有一个值,即undefined.当声明的变量还未被初始化时,变量的默认值为undefined. Null类型也只有一个值,即null.null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象. js 代码 var oValue; alert(oValue == undef

JavaScript中Null与Undefined的区别解析_javascript技巧

在JavaScript中存在这样两种原始类型:Null与Undefined.这两种类型常常会使JavaScript的开发人员产生疑惑,在什么时候是Null,什么时候又是Undefined? Undefined类型只有一个值,即undefined.当声明的变量还未被初始化时,变量的默认值为undefined. Null类型也只有一个值,即null.null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象. 复制代码 代码如下: var oValue;  alert(oValue ==

javascript中的面向对象(object-oriented)编程

本文原发于我的个人博客,经多次修改放到csdn上,主要是做备份用,为了更好的阅读体验,请到我的个人博客上阅读. 最近工作一直在用nodejs做开发,有了nodejs,前端.后端.脚本全都可以用javascript搞定,很是方便.但是javascript的很多语法,比如对象,就和我们常用的面向对象的编程语言不同:看某个javascript开源项目,也经常会看到使用this关键字,而这个this关键字在javascript中因上下文不同而意义不同:还有让人奇怪的原型链.这些零零碎碎的东西加起来就很容

全面解析JavaScript中“&amp;&amp;”和“||”操作符(总结篇)_javascript技巧

1.||(逻辑或), 从字面上来说,只有前后都是false的时候才返回false,否则返回true. alert(true||false); // true alert(false||true); // true alert(true||true); // true alert(false||false); // false 这个傻子都知道~~ 但是,从深层意义上来说的话,却有另一番天地,试下面代码 alert(0||1);//1 显然,我们知道,前面0意味着false,而后面1意味着true,

详解JavaScript中void语句的使用

  这篇文章主要介绍了详解JavaScript中void语句的使用,是JS入门学习中的基础知识,需要的朋友可以参考下 void是在JavaScript中的一个重要的关键字可被用作其单操作数之前出现一元运算符,其可以是任何类型. 此运算符指定不需要返回值,进行计算的表达式.它的语法可能是下列之一: ? 1 2 3 4 5 <head> <script type="text/javascript"> <!-- void func() javascript:vo