在开发的过程中,遍历是一个经常遇到的。而for循环则是Javascript工具箱里一个好用的,也常用的工具。每个人的习惯不同,for循环的写法也不尽相同。
1、不写声明变量的写法:
for(var i = 0;i<arr.length;i++){}
我们很多时候的写法使这种(做小白不堪回首的那些年),但这种写法,每次都会获取一下数组的长度,这会降低代码的效率。
2、写声明变量的写法:
for(var i = 0,len = arr.length;i < len;i++){}
这样写只获取一次数组的长度,可以解决第一种写法的弊端。
3、for-in循环
for-in 循环主要用于遍历对象,
for()中的格式:for(keys in zhangsan){}
keys表示obj对象的每一个键值对的键!!所有循环中,需要使用obj[keys]来取到每一个值!
for-in 循环,遍历时不仅能读取对象自身上面的成员属性,也能延续原型链遍历出对象的原型属性。
所以,可以使用hasOwnProperty判断一个属性是不是对象自身上的属性。
obj.hasOwnProperty(keys)==true 表示这个属性是对象的成员属性,而不是原先属性。
1 //声明一个Peson类 2 3 function Man(){ 4 5 this.name = "张三"; 6 7 this.age = 14; 8 9 this.func1 = function(){ 10 13 } 14 15 } 16 17 //实例化这个类 19 var zhangsan = new Person(); 20 21 //使用for-in遍历这个对象 22 23 for(keys in zhangsan){ 25 console.log(zhangsan[keys]) 27 }
4、for-of循环
这是ES6新特性,借鉴 C++、Java、C# 和 Python 语言,引入了for...of循环,作为遍历所有数据结构的统一的方法。
一个数据结构只要部署了Symbol.iterator属性,就被视为具有iterator接口,就可以用for...of循环遍历它的成员。也就是说,for...of循环内部调用的是数据结构的Symbol.iterator方法。
for...of循环可以使用的范围包括数组、Set 和 Map 结构、类数组对象(比如arguments对象、DOM NodeList 对象)、Generator 对象,以及字符串。
thit‘s all!
原文地址:https://www.cnblogs.com/zixian/p/for-loop.html