瞅瞅
2015-03-14 01:51
数组delete元素arr[2] 和arr[2]=undefined; 两者的 2 in arr; 为何返回值分别为false和true不同呢?这是跟数组的原型链有关吗
var arr_1=[0,1,2,3,4]; delete arr_1[2]; 2 in arr_1;
和
var arr_2=[0,1,2,3,4]; arr_2[2]=undefined; 2 in arr_2;
恭喜你已经会自问自答了!
看了老师稀疏数组的讲解,我的理解为
delete 是将该数组元素删除,元素已不存在,该数组成为稀疏数组。
而赋值=undefined,表示该数组元素仍存在,只是值为undefined,该数组不是稀疏数组。
JavaScript深入浅出
281112 学习 · 1020 问题
相似问题