for in的坑
来源:互联网 发布:容声冰箱 知乎 编辑:程序博客网 时间:2024/06/05 04:29
很多时候为了方便都会直接用for ..in代替for循环,但是一不小心可能就被出卖了
1.for..in 遍历不一定按照顺序遍历,所以可能得到的和预期的数据不匹配
2.for..in可以遍历出在原型上修改的属性,比如:Array.prototype.name='test'; var aa=[1,2]; for(var i in aa) console.log(i); //1 ,2 , name;
ps:当然,如果要区分for in的属性是自身属性还是原型链上的属性可以用hasOwnproperty方法来判断,hasOwnproperty是唯一一个处理属性而不查找原型链的方法,但是
hasOwnproperty并不是被JavaScript保护的一个属性,如果刚好有一个属性和它同名,那只能用其他对象里的hasOwnproperty方法,并且指定所需对象为上下文:
({}).hasOwnproperty.call("被检测属性所属对象","被检测的属性");
以上两个就是使用for。。in最容易踩的坑,最近比较懒,好久都没写博客了,抽几分钟来凑个数吧
0 0
- for in的坑
- for in数组遍历的坑
- for in的缺陷
- for in的缺陷
- javascript的for...in
- for in的使用
- for....in的用法
- Lua的for in
- for in的理解
- json&Array&for..in&for的介绍
- for in 与 一般for 的区别
- for,for-in和enumerateObjectsUsingBlock的比较
- js for 和 for in的区别
- for...of与for...in的区别
- for和for in的区别
- for in、for of、forEach的区别
- for in 和 for of 的区别
- for in 和 for of的区别
- @ModelAttribute注解的作用
- 数据结构实验之查找七:线性之哈希表
- JavaScript 判断系统
- Java中的ReentrantLock和synchronized两种锁定机制的对比
- SAP单页面应用
- for in的坑
- Java系列(一)Annotation(注解)
- 算法#17--无向图的深度优先搜索和广度优先搜索
- Android 自定义手势解锁控件
- 微信分享中的回调处理-OnResp
- 使用jQuery和CSS自定义HTML5 Video 控件
- 删除单链表的第i个位置的结点
- 同时学习多种编程语言其实很容易
- Transmitting Network Data Using Volley 之Sending a Simple Request