JavaScript中对象枚举
在数组中我们可以通过数组的长度来获得每一项的内容,但是在一个对象里面,计算机本身不知道对象的长度,那么要遍历对象的每一个长度就用到了for-in循环。
var obj = {
name:'13',
age: 13,
sex : "male"
}
for (var prop in obj) {
console.log(prop + typeof(prop));
}
其中prop是string类型。循环的时候会把obj每一项的值放到变量prop中。上述打印的结果是属性名加string。那么如果我们想知道obj中每一个属性的属性值应该怎么做呢? 可能第一反应就是obj.prop。但是这样打印出来结果全部是undefined,如果大家不相信可以自己敲一敲。其原因如下:
系统底层obj.name会转换成obj['name']。那么obj.prop就是obj['prop'].系统会认为是在访问prop这个属性,而不是prop这个变量。所以是obj[prop]来表示prop这个变量,代表着不同的字符串。