首页前端开发正文

聊一聊JavaScript里的undefined

朱绪2021-01-307899

undefined是什么?很多前端程序员对undefined理解得稀里糊涂的,今天我就专门写一篇文章来谈谈我的看法吧。

undefined翻译过来就是“未被定义的/未下定义的”的意思。

初学JavaScript的时候,我们肯定是最先学JavaScript的数据类型的,还有印象吗?

而undefined就是JavaScript的一个数据类型(js的“特殊”的数据类型)。而这个Undefined数据类型仅仅有一个值——undefined。

出现undefined的情况有很多,例如:只是声明了变量但没有赋值。

我简单写一个例子吧:

var a;
console.log(a)

得到undefined

聊一聊JavaScript里的undefined

我们把这个代码改一下,不用var试一试。

111201.png

他会出现一个错误提示是说“a is not defined”。

有的人会认为undefined和not defined是一回事,其实不是的。

它们之间的差别在于:

undefined:已经存在的变量,但因为没有赋值,所以JavaScript会“送”给这个变量一个默认的值:undefined。

not defined:我们不声明一个变量却访问它,就会出现not defined的情况。

注意:一个变量如果没有被声明过,就不会被分配内存空间。如果你还是硬着头皮访问这个变量的话,它就会告诉你“嗨哥们儿,我压根就没在内存中”!