Javascript 可以信任array.length吗?

Javascript 可以信任array.length吗?,javascript,Javascript,让arr=[]; arr[3]=未定义; console.log('length:',arr.length); 如果(arr.length==0){ //我想来这里 }否则{ //而不是来这里 console.log('>>',arr[0]); console.log('>>',arr[3]); } 该值是一个无符号32位整数,其数值始终大于数组中的最高索引 当您将undefined分配给数组的索引时,该索引将成为所述数组上的现有属性。但是,与任何变量一样,它可以分配任何内容,包括null和un

让arr=[];
arr[3]=未定义;
console.log('length:',arr.length);
如果(arr.length==0){
//我想来这里
}否则{
//而不是来这里
console.log('>>',arr[0]);
console.log('>>',arr[3]);
}

该值是一个无符号32位整数,其数值始终大于数组中的最高索引

当您将
undefined
分配给数组的索引时,该索引将成为所述数组上的现有属性。但是,与任何变量一样,它可以分配任何内容,包括
null
undefined

如果遇到这样的情况(不应该出现这种情况-稀疏数组是个糟糕的主意),可以检查数组的

const arr=[];
arr[3]=未定义;
console.log(Object.keys(arr));//不是空的!
const allerrelmsareundefined=arr=>Object.values(arr.every)(item=>item==undefined);

控制台日志(allArrElmsAreUndefined(arr))
数组的可能重复项。只要
数组
是数组,而不是代理,则始终可以信任长度。