js的 for 跟for in 循环它们之间的区别?

  • 遍历数组时的异同: for循环 数组下标的typeof类型: number,;for in 循环数组下标的typeof类型: string。

代码如下:

var southSu = ['苏南','深圳','16','男'];
for(var i =0 ;i < southSu.length;i++){
console.log(typeof i);    //number
console.log(southSu[i]);  //苏南 , 深圳 , 16 ,男
}


var arr = ['苏南','深圳','16','男','帅气','前端高级工程师'];
for(var k in arr){
console.log(typeof k);   //string
console.log(arr[k]);     //苏南, 深圳, 16, 男,  帅气,  前端高级工程师
}
  •  遍历对象时的异同: for循环 无法用于循环对象,获取不到obj.length; for in 循环遍历对象的属性时,原型链上的所有属性都将被访问,解决方案:使用 hasOwnProperty方法过滤或Object.keys会返回自身可枚举属性组成的数组

Object.prototype.test = '原型链上的属性,文本由前端高级工程师-苏南分享'
var southSu = [name:'苏南',address:'深圳',age:'16',sex:'男',heigth:176];
for(var i =0 ;i < southSu.length;i++){
console.log(typeof i);    //空
console.log(southSu[i]);  //空
}


for(var k in arr){
console.log(typeof k);   //string
console.log(arr[k]);     //苏南, 深圳, 16, 男,  176,  原型链上的属性,文本由前端高级工程师-苏南分享

}

猜你喜欢

转载自blog.csdn.net/m0_37686205/article/details/88377658
今日推荐