在Javascript中,有代表性信息不存在的2个特殊值:null和未定义的。我认为这两个特殊值之间的差异可以从以下观点来理解:



一个1.null表示一个存储信息的容器(如变量被赋值之前),但容器中的内容是空的。

2.undefined代表一个容器,不存储信息的存在。



在大多数其他编程语言中,Javascript中的null几乎与null相同。它基本上用来表示信息是空的。在Javascript中,在下面的例子中,结果是未定义的。



1。从未被赋值的变量。

2。访问对象不存在的属性值。

三.访问数组中不存在的成员。

4。调用一个没有返回语句的函数。

5。调用返回语句的函数为返回;



事实上,与无穷大和南,定义的是Javascript中的一个全局变量,甚至可以在ECMAscript 3.ecmascript 5给出其他值的误差校正和设置只读变量未定义。



null和未定义的比较,可以使用==操作符。如果使用普通操作符== null,未定义的是等价的:



复制代码代码如下所示:

console.log(空= =不明) / /真实;

console.log(空=定义); / /假





在编程中,如果需要为变量分配空值,通常使用null而不是未定义的:



1.undefined通常被认为是在系统级和错误信息的缺乏。

2.null通常被认为是一个编程水平,和逻辑操作水平的信息价值是空的。



如果在程序中涉及类型转换,当转换为数字类型时,null和未定义的结果是不同的:



对1.undefined转换数的结果是楠。

对2.null转换数的结果是0。



值得一提的是,在转换为数字后空字符串和空数组的结果也为0。

至于为什么在Javascript中设计了两个值,请参见阮一丰的博客文章。



实验



在下面的实验代码中,表达式结果都是未定义的:

复制代码代码如下所示:

VaR;

console.log(一);

函数样本(x){

这个;

}

var =新样本();

console.log(s.x)

console.log(s.notexistvariable);

VaR N = {、};

console.log(N { 8 });

函数测试(){

此函数的返回值

}

console.log(测试());

功能test2(){

返回;

}

console.log(test2());