Javascript中未定义和空之间的区别

Javascript中未定义和空之间的区别
大多数计算机语言只有一个值,表示否。

Javascript语言有两个值表示否:未定义的和空的,这是有点奇怪的。

一、相似性
在Javascript中,变量被赋值为未定义的或null,老实说,几乎没有区别
var =未定义;

var = null;

在上面的代码中,变量分别被赋值为未定义的和空的,这两种形式几乎是等价的。

在if语句中,未定义的和空的都自动转换为false,等效操作符甚至报告两个是相等的。
如果(!未定义)
console.log('undefined是虚假的);
是false未定义的

如果(!null)
console.log('null是虚假的);
为false

未定义的=空的
/真

上面的代码显示了两个行为的相似性!
由于未定义和空的含义和用法几乎相同,我们为什么需要同时设置两个值呢这并不是增加Javascript的复杂性,没有任何困难。这是一个麻烦的初学者,眄公司开发的Javascript语言替代飞镖语言是明确定义为空,没有定义!
二、历史原因
最近,当我读到新书说Javascript

原来,这是Javascript的历史有关。当Javascript 1995出生,就像java,只有空是设置为无的价值。

根据C语言的传统,null被设计成自动转换为0。
数字(NULL)
0

5 +空
/ / 5

但布兰登·艾奇,Javascript的设计师,觉得这是不够的,原因有二。
首先,空,如java,被视为一个对象。然而,Javascript的数据类型分为两类:原始类型(原始)和综合型(复杂)。布兰登·艾奇认为无是不是该对象的值。
其次,Javascript的初始版本不包含错误处理机制。当数据类型不匹配,它经常自动转换或失败无声。布兰登·艾奇觉得如果空自动变成0,找到一个错误,这是不容易的。
所以,布兰登·艾奇设计了一个未定义的。
三。原设计
Javascript的原始版本是如此可辨:null是表示否的对象。当它转换为数值时,它是0。未定义是表示否的原始值。
编号(未定义)
5定义
四。目前的使用情况
然而,在实践中,上述差别很快就被证明是不可行的。目前,零和未定义基本上是同义的,只有细微的差别。

NULL表示没有对象的典型用法是:

(1)作为函数参数,函数的参数不是对象。

(2)对象的原型链的结束。
Object.getPrototypeOf(对象。原型)
未定义的意思是缺乏价值,典型用法是:
(1)声明变量,但是当没有赋值时,它等于未定义。

(2)当调用函数时,不提供应该提供的参数,参数等于未定义的参数。

(3)对象没有赋值属性,其值是未定义的。

(4)当函数不返回值时,默认返回未定义。
var i;
未定义的

函数f(x){ console.log(x)}
(f)未定义的

新对象();
OP / /未定义

var = f();
未定义的

这里有一点摘要。

NULL是表示非对象的Javascript关键字。

未定义没有指示值,表示该值不存在或未初始化。
相同点
差异
自主式独特价值
NULL是一个对象,未定义的是一个保留字。
没有属性和方法
在数学运算中,null被转换为0,在数学运算中,未定义的不能转换或转换成。
= =等于,不相等
无效的!=未定义的 /真
所有都是false值,而布尔变量的值是相同的。

NULL是空对象,未定义的是窗口的属性(但不是对象属性)。

警报(typeof null)/对象(类定义警报 / /定义);
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部