- 遍历数组时的异同:
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, 原型链上的属性,文本由前端高级工程师-苏南分享
}