JavaScript中for循环和for in 循环的区别
2017-07-05 16:48
387 查看
//在遍历数组上的异同
var arr = ['a','b','c']; for(var i = 0;i < arr.length;i++){ console.log(typeof(i));//number console.log(arr[i]);//a,b,c } var att = ['a','b','c']; for(var j in att){ console.log(typeof(j));//string console.log(att[j]);//a,b,c }
for循环和for in循环都可以遍历获取到数组的内容;
for循环获取数组下标的typeof类型为number;
for in 循环获取数组下标的typeof类型为string;
//在遍历对象上的异同
var obj = new Object({ name:"Simon", age:"16", city:"BJ" }); console.log(obj.length);//undefined for(var i = 0;i < obj.length;i++){ console.log(i);//空的 console.log(obj[i]);//空的 } for(var j in obj){ console.log(j);//name,age,city console.log(obj[j]);//simon,16,BJ }
for循环不能用于循环对象,因为for循环无法获取obj.length,所以for循环只能用于数组操作;
for in 循环可以获取对象的键值,可以操作数组,还可操作对象;
-----------------------------------------分割线-----------------------------------------------------------
但是:在操作数组的性能上:for循环的性能要高于for in 循环;
贺师俊老师在知乎说到(链接:https://www.zhihu.com/question/38472789/answer/76649492):
for...in 效率是最低的。这是因为 for...in 有一些特殊的要求,包括:
1. 遍历所有属性,不仅是 own properties 也包括原型链上的所有属性。
2. 忽略 enumerable 为 false 的属性。
3. 必须按特定顺序遍历,先遍历所有数字键,然后按照创建属性的顺序遍历剩下的。
相关文章推荐
- javascript中的for in循环和for循环的使用
- javascript中的for in 循环跟for 循环到底有什么区别啊?
- javascript中的for in循环和for循环的使用
- javascript中的for in循环和for循环的使用
- javascript中的for in循环和for循环的使用
- javascript中的for in循环和for循环的使用
- 对javascript中的for in循环和for循环的深入讨论
- Javascript基础系列之(六)循环语句(for循环)
- 一个例子明白 javascript 中 for 与 for in 的区别
- Effective JavaScript Item 49 对于数组遍历,优先使用for循环,而不是for..in循环
- javascript 循环语句 while、do-while、for-in、for用法区别
- JavaScript 中 for in 循环和数组的问题
- javascript与jquery中跳出循环的区别总结
- javascript与jquery中跳出循环的区别总结
- js的for in循环和java里foreach循环的区别分析
- python读写文件文件中for循环和while循环区别
- javascript 和 jquery 中跳出循环区别
- Java 笔记整理(二)for循环、while循环、do - while循环的区别
- js的for in循环和java里的foreach循环的区别
- javascript中循环语句 while、do-while、for-in、for用法区别