题目描述:写出执行结果,并解释原因
var arr = [0,1];
arr[5] = 5;
var newArr = arr.filter((x)=>{
return x === undefined
})
console.log(newArr.length);
答案:
0
解析:
- 指定 arr[5] = 5后,arr 数组的长度为 6 。arr 只指定了 arr[0] = 0; arr[1] = 1; arr[5] = 5。并没有指定数组的 a[2]、a[3]、a[4]
- 数组中如果没有指定数值,他的值并不是 undefined 而是 empty 。arr 数组值为:[0, 1, empty × 3, 5]
- 但是 typeof arr[2] 的值为 “undefined”
- 所以在 filter 方法中,x===undefined 全为 false