当您在 Javascript 中初始化一个数组时,它没有元素,也就是说,除非您在其中放置任何东西,否则任何位置都不存在任何元素。您唯一拥有的就是length
设置为您指定的数字。
当您通过读取它来访问元素并且什么都没有时,您就会得到undefined
(当您访问不存在的对象的成员时会发生这种情况)。
但是请注意,根本不存在的元素与设置为 的元素并不完全相同undefined
。例如:
var x = new Array(5);
console.log(x[2]); // ==> Output is "undefined"
console.log(x.indexOf(undefined)); // ==> Output is "-1" (not present)
x[2] = undefined;
console.log(x.indexOf(undefined)); // ==> Output now is "2"
如果您只关心true
放置在 an 中的元素是否会被考虑,if
那么该数组首先会出现以包含undefined
该false
上下文中的元素。
但是请注意,即使是Javascriptfalse
中true
的一个非常微妙的概念,尤其是因为自动转换......例如
console.log([] ? 1 : 2); // Output is "1", an empty array is "true"
console.log([] == false); // output is "true" (so it's also equal to false!)