数组 length 为 0 时访问元素

设置数组 length 为 0 后访问元素的返回值

问题

将数组的 length 设置为 0 后,访问第一个元素会返回什么?

解答

设置 length = 0 会清空数组,此时访问任何索引位置的元素都会返回 undefined

const arr = [1, 2, 3, 4, 5];
console.log(arr[0]); // 1

arr.length = 0;
console.log(arr[0]); // undefined
console.log(arr);    // []

这是因为设置 length 为 0 会删除数组中的所有元素,数组变成空数组。访问不存在的索引位置时,JavaScript 返回 undefined

const arr = ['a', 'b', 'c'];
arr.length = 0;

console.log(arr.length); // 0
console.log(arr[0]);     // undefined
console.log(arr[1]);     // undefined

关键点

  • 设置 length = 0 会清空数组的所有元素
  • 访问空数组的任何索引都返回 undefined
  • 这是一种快速清空数组的方法