哪种方法代表JavaScript中空对象引用的最佳实践,null或undefined?

时间:2014-12-15 09:48:36

标签: javascript

var p = new Person("xyz");

已经完成了一些工作。现在p应该指向什么。

p = undefined;

p = null;

哪种方法代表空对象引用的最佳实践?

3 个答案:

答案 0 :(得分:2)

这是一个解释问题,但是null理性上是一个更好的选择

你真的在问这个变量是否应该定义为:

  • 已声明但尚未分配值的变量,即undefined

  • 作为无价值表示的分配值,即null

专业JS For Web Developers(Wrox)一书中的引用适用于此:

  

您可能想知道为什么typeof运算符为null值返回'object'。这实际上是原始JavaScript实现中的错误,然后在ECMAScript中复制。今天,合理化将null视为对象的占位符,即使从技术上讲,它也是一个原始值。“

结论:

使用null是合理的,因为它被视为对象的占位符,但只要您的系统与它一致,使用undefined就没有错。 / p>

答案 1 :(得分:0)

您可以根据您的要求使用两者。查看这篇文章,了解两个What is the difference between null and undefined in JavaScript?之间究竟有什么区别。

未定义表示已声明变量但没有值:

var item;
alert(item); //undefined
alert(typeof item); //undefined

Null是一项任务:

var item= null;
alert(item); //null
alert(typeof item); //object

答案 2 :(得分:-2)

正确的是:

p = null;

undefined保留用于未初始化变量或空承诺时。