js中for in碰到Array.prototype的问题
分类:Javascript 评论:No Comments 作者:小A 发布时间:2023-04-12 阅读:2560
最近一个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的对象属性,所以就出现问题了。
最新评论