为啥JavaScript要有null?(翻译)

原来的小说地址

原稿地址

JavaScript有诸多特别和不便知晓的地方。个中null&
undefined就相比有趣。既然有了怎么JavaScript还要弄3个null?

JavaScript有广大怪癖和麻烦驾驭的地方。在那之中null&
undefined就比较好玩。既然有了为啥JavaScript还要弄2个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是三个数字,它们不等于。

 

 

在事关运算符的情景下,多个操作数都转移为同一的品类。
在例子中给3个数字。当前光景下,JavaScript正在履行以下操作:

在涉及运算符的情事下,八个操作数都更换为同样的品类。
在例子中给八个数字。当前场景下,JavaScript正在实施以下操作:

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

更为说美素佳儿(Friso)下. 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

 

 

先是直觉想到,那应当会是相同的结果。
即便JavaScript是同样的,但结果却再一次是差别的。JavaScript先将undefined
转换为2个数字, 但Number(undefined )不是0而是NaN
JavaScript规范中明确,与NaN
的各样比较都会是false,甚至与 NaN实行比较也是。

第平素觉想到,那应当会是一律的结果。
就算JavaScript是一致的,但结果却再一次是区别的。JavaScript先将undefined
转换为2个数字, 但Number(undefined )不是0而是NaN
JavaScript规范中明确,与NaN
的各种比较都会是false,甚至与 NaN进展比较也是。

 

 

本来算法上也许依旧有为数不少两样,当前的解释也能证可瑞康(Karicare)些难题

理所当然算法上或者依旧有众多例外,当前的阐述也能证实有些难题

 

 

 

 

怎么存在null?

为何存在null?

JavaScript必要八个空值吗?
即便能够编写整个应用程序而不使用null,但一般它是有3个null的地点。
使用的分别是打算。
三个空值是足够中性的,在那之中三个undefined值经常是无意的,只是默许值。

JavaScript供给三个空值吗?
固然可以编写整个应用程序而不应用null,但一般它是有3个null的地方。
使用的界别是打算。
贰个空值是不行中性的,在那之中3个undefined值经常是无意的,只是暗中同意值。

 

 

譬如说在追寻一条数据的函数中。
当该数额不设有时,此函数再次来到null。不然再次来到数据。
通过那种形式,能够看清该函数再次回到的值是还是不是棉被服装置为null,大概隐含结果的变量根本不设置。

比如说在查找一条数据的函数中。
当该数量不存在时,此函数重返null。不然重返数据。
通过那种方法,能够判断该函数重临的值是或不是被安装为null,恐怕隐含结果的变量根本不设置。

 

 

换句话说: null !== undefined

换句话说: null !== undefined

相关文章