Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
哪种方法代表了JavaScript中空对象引用的最佳实践(null还是未定义)?_Javascript - Fatal编程技术网

哪种方法代表了JavaScript中空对象引用的最佳实践(null还是未定义)?

哪种方法代表了JavaScript中空对象引用的最佳实践(null还是未定义)?,javascript,Javascript,一些工作已经完成与p。现在p不应该指向任何东西 var p = new Person("xyz"); 或 哪种方法代表空对象引用的最佳实践?正确的方法是: p = null; 未定义保留用于未初始化变量或空承诺的情况。您可以根据需要使用这两个选项。看看这篇文章,看看两者到底有什么不同 未定义表示变量已声明但没有值: p = null; Null是一个赋值: var item; alert(item); //undefined alert(typeof item); //undefined

一些工作已经完成与p。现在p不应该指向任何东西

var p = new Person("xyz");

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

正确的方法是:

p = null;

未定义
保留用于未初始化变量或空承诺的情况。

您可以根据需要使用这两个选项。看看这篇文章,看看两者到底有什么不同

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

p = null;
Null是一个赋值:

var item;
alert(item); //undefined
alert(typeof item); //undefined
这是一个解释的问题,但从理性上讲,空是一个更好的选择 您实际上是在问变量是否应定义为:

  • 已声明但尚未赋值的变量,即
    未定义

  • 表示无值的赋值,即
    null
以下引用《Web开发者专业JS》(Wrox)一书:

您可能想知道为什么typeof运算符为空值返回“object”。这实际上是原始JavaScript实现中的一个错误,该实现随后被复制到ECMAScript中。如今,null被认为是对象的占位符是合理的,尽管从技术上讲,它是一个原始值。”

结论:
使用
null
是合理的,因为它被认为是对象的占位符,但只要系统与之一致,使用
undefined
也没有错。

恐怕没有明确的答案。我个人认为使用
null
更干净,但这主要是因为两者都有味道行为基本相同。样式应该无关紧要,垃圾收集器会为您处理这些问题,但您必须注意的不是定义全局变量。垃圾收集器不会拾取全局变量。除非您的代码使用与
null
undefined
进行严格比较,否则它不会重要的是,
null
未定义的
在语义上有什么不同?未定义的var不存在,null存在,但值为null。回答基本上是“照你想的做,我更喜欢这种方式”的人,应该以“主要基于意见”的方式结束“相反,你是对的,但我相信我经过编辑的答案与简单的观点相去甚远。
var item;
alert(item); //undefined
alert(typeof item); //undefined
var item= null;
alert(item); //null
alert(typeof item); //object