关于javascript:undefined和null之间有什么区别?

what difference is there between undefined and null?

本问题已经有最佳答案,请猛点这里访问。

大多数博客都说未定义的类型是在内存上分配但没有任何值的状态,而空类型是在具有空值的内存上分配的状态。

不过,我认为对于.js文件来说。

A.JS包括console.log(tmp类型);

而且可能打印未定义。但在.js文件中,没有声明var tmp。所以我猜tmp变量并没有在内存上分配,但显示为未定义。

为什么会这样??


未定义表示变量已声明,但尚未赋值。另一方面,空是一个赋值。它可以被分配给一个变量,作为没有值的表示。此外,undefined和null是两种不同的类型:undefined是类型本身(未定义),而null是对象。未分配的变量由javascript初始化,默认值为Undefined。javascript从不将值设置为空。这必须通过程序来完成。

参考:http://www.ajaymatharu.com/javascript-difference-between-undefined-and-null/