js中的控制结构for-in语句
var arr=['赵','钱','孙','李'];
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
var obj={
name:'li',
age:20,
area:'ni' }
for(var k in obj){
console.log(k+'~'+obj[k])
}
for in语句循环会枚举对象的每一个属性
console.log(k)打印的是每一个键,即name,age,area
console.log(k+'~'+obj.k)打印obj.k是对象的k属性,但是我们要把k的值当做obj的属性,这样就产生歧义了,所以打印出来是undefined
console.log(k+'~'+obj[k])打印出来是name~li age~20 area~ni
console.log(k+'~'+obj['k'])如果想要获得obj名称叫做‘k’的属性,就可以这样来写,此时打印出来是undefined,因为obj没有这样的属性值
console.log(k+'~'+obj['age'])因为obj有这样的属性值,因此打印出来是name~20 age~20 area~20
for in语句循环会枚举对象的每一个属性
例如
var window;
for(var k in window){
console.log(k);
}
打印
external
chrome
document
k
speechSynthesis
caches
localStorage
sessionStorage
webkitStorageInfo
indexedDB
webkitIndexedDB
ondeviceorientation
……