var obj = {
name:'Mike',
age:18,
sex: 'male',
hobby:'reading'
}
for(var prop in obj){
// console.log(prop)//name age sex hobby
// console.log(typeof prop)//string
// console.log(obj.prop)//打印结果为4个undefined
// console.log(obj[prop])//Mike 18 male reading
}
// obj.prop-->obj['prop'] 系统就会误以为prop不是一个变量、而是一个属性,因此一直在obj里面找prop这个属性,找不到,所以打印undefined
//obj['prop'] 与 obj[prop] 区别在于后面prop是一个变量,变量里面的值都是string类型,前面只是obj内一个属性
//obj['prop'] 与 obj[prop] [string],[]里面必须是字符串,后面这种写法,prop本身就是一个变量,被传进来,并且变量值都为字符串类型,而前面一种写法,在原本就是变量的prop上加上引号,就会导致变量不再是变量,而只是被当做一个属性
JS for in 枚举容易出错地方
最新推荐文章于 2024-04-25 22:54:56 发布