标签相关的文章

js中for in碰到Array.prototype的问题

分类:Javascript 评论:No Comments 作者:小A 发布时间:2023-04-12 阅读:148

最近一个js项目中使用了for(let i in arr) {} 循环,for in的好处就是被遍历的对象可以是数组,可以是对象,就算是null和undefined都没有问题,不会报错,所以被大量使用,而且当一个无序的数组中更是不会遍历空数据。如下:

let a = [];
a[5] = 5;
console.log(a);
// [empty × 5, 5]
for (let i in a) {
    console.log(i);
}
// 5

可是当客户在使用时使用了一个第三方插件,插件中使用了Array.prototype自定义方法,结果项目开始报错,最后发现问题出现在for in的时候会遍历枚举对象属性,包括prototype中的enumerable为true的对象属性,所以就出现问题了。

阅读剩余部分...