题目如图
选项如图
这是一道js逻辑题,我们先看代码,首先声明了一个对象person,然后又定义了一个空变量,之后使用了for-in循环遍历这个对象,循环体为一个累加结构,txt=txt + person[x];,最后在页面上alert结果。这是题面,接着我们分析代码逻辑。
要想做对这道题,必须明白for-in循环遍历的执行逻辑,for-in语句,用来枚举person对象的属性,for in 中 x代表key值,所以取出的值为value 。所以结果中一定是value值,而不包含key值,其实明白这里再去看选项也能排除出来a了。
下面举个例子来理解for-in循环,在数组和对象中是有区别的:
数组中:
var arr = ['曹操','曹植','曹丕']
for(i in arr){
console.log(i) //0 1 2
console.log(arr[i]) //曹操 曹植 曹丕
}
对象中
var obj = new Object();
obj = {
father:'曹操',
son:'曹植'
}
for(i in obj){
console.log(i) ; //代表key值 father son
console.log(obj[i]) ; //代表vulue值 曹操 曹植
}
如上图所示,在数组和对象中for-in循环的输出值,要注意的是,在对象中遍历对象所得的i是key值,也就是属性,而obj [i] 值是value值。
所以这道题答案也就很明了啦,最后输出结果相当于拼接一个空字符串,那么结果就是a啦!有不明白的欢迎留言!