问答详情
源自:5-1 [JavaScript]创建数组、数组操作

老师, 数组delete元素arr[2] 和arr[2]=undefined; 两者的 2 in arr; 结果不同

数组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;

提问者:瞅瞅 2015-03-14 01:51

个回答

  • Bosn
    2015-03-14 11:09:16

    恭喜你已经会自问自答了!

  • 瞅瞅
    2015-03-14 02:17:08

    看了老师稀疏数组的讲解,我的理解为

    delete 是将该数组元素删除,元素已不存在,该数组成为稀疏数组。

    而赋值=undefined,表示该数组元素仍存在,只是值为undefined,该数组不是稀疏数组。