[赏金编辑]
当您应该设置/使用 null 时,我正在寻找一个很好的解释。或 undefined以及您需要检查的地方。基本上这两者的常见做法是什么,并且真的可以在通用可维护代码中分别对待它们?
我什么时候可以安全地检查 === null ,安全地检查 === undefined我什么时候需要用 == null 来检查两者
什么时候应该使用关键字undefined什么时候应该使用关键字null
我有各种格式的支票if (someObj == null)或 if (someObj != null)检查 null 和 undefined。我想将所有这些更改为 === undefined或 === null但我不确定如何保证它只会是两者之一,而不是两者之一。
您应该在哪里使用检查 null以及您应该在哪里使用检查 undefined
一个具体的例子:
var List = []; // ordered list contains data at odd indexes.
var getObject = function(id) {
for (var i = 0; i < List.length; i++) {
if (List[i] == null) continue;
if (id === List[i].getId()) {
return List[i];
}
}
return null;
}
var deleteObject = function(id) {
var index = getIndex(id) // pretty obvouis function
// List[index] = null; // should I set it to null?
delete List[index]; // should I set it to undefined?
}
这只是我可以同时使用
null 的一个示例或
undefined我不知道哪个是正确的。
是否有任何情况下您必须同时检查
null和
undefined因为你别无选择?
请您参考如下方法:
函数隐式返回 undefined .数组中未定义的键是 undefined .对象中未定义的属性是 undefined .
function foo () {
};
var bar = [];
var baz = {};
//foo() === undefined && bar[100] === undefined && baz.something === undefined
document.getElementById返回
null如果没有找到元素。
var el = document.getElementById("foo");
// el === null || el instanceof HTMLElement
您永远不必检查
undefined或
null (除非您从可能返回 null 的源和可能返回 undefined 的源中聚合数据)。
我建议你避免
null ;使用
undefined .


