for in和for循环的区别
2019-11-10 本文已影响0人
Amuer蘃
for的语法结构:
for( 初始值;判断条件;步长值){ code }
for( var i =0;i<5;i++ ){
//i初始值为0;i是否小写5;每次循环后i加1
console.log(i);// 0 1 2 3 4
}
for in的写法:
var man = {
age:24,
name:"赵宇",
sex:"男"
}
console.log(man);
//结果:Object
{age: 24
name: "赵宇"
sex: "男"
__proto__: Object}
for(var attr in man){//attr是属性,attr可以换成任意变量名
console.log(attr);// 输出的是 属性名:age name sex
console.log(wq[attr]);//属性相对应的值 24 赵宇 男
}
for循环就是我们常用的方法用来遍历。for in一般是用来遍历对象的,for 循环可以遍历一个数组,而for in遍历对象,对象有多个属性,各个属性又有各自 的值。在上面的案例里面,想要获取对象的属性相应的值for是遍历不了的,这个时候for in就出场了。
上面的案例中,对象wq里有三个属性和相对应的值,想要获取到这三个属性及相对应的值for是办不到的,只有for in才可以,所以说,for in一般都是用在遍历对象的,另外,for in也可以遍历数组,但是会存在以下几个问题。
1、 for in这种循环i是string类型的,不能直接进行几何运算
2、遍历顺序有可能不是按照实际数组的内部顺序
3、使用for in会遍历数组所有的属性,包括原型。例如上例的原型方法method和name属性
4、简而言之,for-in是为普通对象设计的,你可以遍历得到字符串类型的键,因此不适用于数组遍历。
所以说for in也有他的局限性,因此遍历一般的数组用for比较好,遍历对象就需要for in了