书上说ES5后for-in迭代的对象如果变量值是null,undefined会不执行循环体,但是我测试了一下怎么没有出现这种情况??
function forIn(){
var obj={a:1,b:2,c:null,d:8}
for(var key in obj){
console.log(key)
}
}
forIn()
书上说ES5后for-in迭代的对象如果变量值是null,undefined会不执行循环体,但是我测试了一下怎么没有出现这种情况??
function forIn(){
var obj={a:1,b:2,c:null,d:8}
for(var key in obj){
console.log(key)
}
}
forIn()
其实高3上描述的是 『对象的值』,这个对象是指的 obj = null, 而不是 obj 中的 key 或者 value 为 null/undefined, 不论obj的key或者value为null/undefined, for in 语句都能正常执行。
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
因为for in是循环的key,for of才是循环的value。当key是null或undefined才会。