【发布时间】:2018-12-13 07:10:50
【问题描述】:
我需要查看 Javascript 中的数组索引是否有条目,this answer 说要使用(基本上我将它从 === 更改为 !==):
if(typeof arrayName[index] !== 'undefined')
IIUC 这和 `arrayName[index] !== 'undefined' 一样吗?
我尝试过它并且它有效,但我想确保我没有遗漏任何边缘情况?
更新
要清除 WRT 给出的一些答案(在节点 9.11.2 上运行):
let undefined = "Hello";
console.log(undefined);
let arrayName = [];
if(arrayName[0] !== undefined) {
console.log("Test passes");
console.log("undefined is: ", undefined);
console.log("arrayName[0] is: ", arrayName[0]);
}
打印出来:
Hello
Test passes
undefined is: Hello
arrayName[0] is: undefined
所以看起来答案是“有时不能重新定义未定义......”......最好坚持使用typeof array[index] === 'undefined',但正如一些人所指出的,未定义不能在全球范围内重新定义,所以它应该是公平的可以安全地使用较短的版本。
【问题讨论】:
-
如果您担心
undefined在某处被重新定义,请坚持使用void 0。
标签: javascript arrays node.js typescript v8