缘何JavaScript要有null?(翻译)

初稿地址

原作地址

JavaScript有如十草芥特别和难以精通的地方。个中null&
undefined就比较好玩。既然有了干吗JavaScript还要弄一个null?

JavaScript有许多怪癖和难以掌握的地点。当中null&
undefined就相比较好玩。既然有了为啥JavaScript还要弄二个null?

等于相比

也正是相比

让我们开首由拥有看看上边的相比较探索null和undefined:

让我们开始由拥有看看下边包车型客车相比较探索null和undefined:

null >= 0; //true 

null <= 0; //true 

null == 0; //false 

null > 0; //false 

null < 0; //false
null >= 0; //true 

null <= 0; //true 

null == 0; //false 

null > 0; //false 

null < 0; //false

图片 1

图片 2

null怎样能既大于或等于零,又小于或等于零,但又不等于零?(是还是不是发端难以置信总结机了,也不是很严峻么)

null怎样能既大于或等于零,又小于或等于零,但又不等于零?(是还是不是发端疑忌总括机了,也不是很严刻么)

 

 

要精晓那点,首先供给通晓JavaScript怎么样处理那个比较。在地点的例证中利用了三种不一样类型的运算符:
相等运算符[Equality Operators](==,===,!=
and!===)和事关运算符[Relational Operators](>,<,>
=和<=)。 两者的办事章程分裂。

要明白这或多或少,首先要求精通JavaScript怎样处理那些相比。在地方的例证中动用了二种分歧类其余运算符:
相等运算符[Equality Operators](==,===,!=
and!===)和关联运算符[Relational Operators](>,<,>
=和<=)。 两者的劳作方法不相同。

 

 

等于运算符在对象范围实行比较。
假如多少个操作数,运算符左右的东西是见仁见智的连串,则使用严厉的比较(===或!==)。
因为null是贰个目标,0是二个数字,它们不对等。

等于运算符在对象范围开展相比。
若是多个操作数,运算符左右的事物是不相同的体系,则应用严厉的可比(===或!==)。
因为null是叁个对象,0是1个数字,它们不对等。

 

 

在涉及运算符的情况下,八个操作数都转移为同一的花色。
在例子中给二个数字。当前景况下,JavaScript正在执行以下操作:

在涉及运算符的意况下,几个操作数都转移为同样的项目。
在例子中给3个数字。当前意况下,JavaScript正在执行以下操作:

Number(null) &gt;= 0; //true
Number(null) &gt;= 0; //true

更进一步解释一下. Number(null) 重回值 0 ,然后0 等于 0.

尤为解释一下. Number(null) 重临值 0 ,然后0 等于 0.

 

 

咱俩来用undefined试下同样的例子:

小编们来用undefined试下同样的例子:

undefined >= 0;//false 

undefined <= 0;//false 

undefined == 0;//false 

undefined < 0;//false 

undefined > 0;//false
undefined >= 0;//false 

undefined <= 0;//false 

undefined == 0;//false 

undefined < 0;//false 

undefined > 0;//false

图片 3

图片 4

 

 

第2向觉想到,那应当会是平等的结果。
即便JavaScript是一模1样的,但结果却再也是差异等的。JavaScript先将undefined
转换为三个数字, 但Number(undefined )不是0而是NaN
JavaScript规范中明确,与NaN
的各种比较都会是false,甚至与 NaN拓展相比也是。

先是直觉想到,那应当会是平等的结果。
纵然JavaScript是壹模一样的,但结果却再度是不雷同的。JavaScript先将undefined
转换为1个数字, 但Number(undefined )不是0而是NaN
JavaScript规范中明确,与NaN
的各样比较都会是false,甚至与 NaN进展比较也是。

 

 

本来算法上或许还是有广大差异,当前的解释也能证爱他美些难点

理所当然算法上或然依旧有不可胜道不等,当前的诠释也能表明部分题材

 

 

 

 

为啥存在null?

怎么存在null?

JavaScript必要二个空值吗?
尽管能够编写整个应用程序而不采纳null,但平时它是有3个null的地点。
使用的分别是企图。
3个空值是丰裕中性的,在那之中贰个undefined值平常是无心的,只是暗许值。

JavaScript要求二个空值吗?
就算能够编写制定整个应用程序而不使用null,但普通它是有一个null的地方。
使用的界别是打算。
三个空值是十一分中性的,当中三个undefined值平常是无心的,只是暗中认可值。

 

 

比如在检索一条数据的函数中。
当该多少不设有时,此函数重临null。不然重返数据。
通过那种措施,能够判定该函数重回的值是或不是被设置为null,也许隐含结果的变量根本不安装。

比如说在探寻一条数据的函数中。
当该数据不设有时,此函数重回null。不然重返数据。
通过那种办法,能够断定该函数重返的值是不是被设置为null,可能隐含结果的变量根本不设置。

 

 

换句话说: null !== undefined

换句话说: null !== undefined

相关文章