关于for in
遍历出来的K值是属性名,要使用person[p]才能读取属性值,p不用加引号。而直接用属性名读取属性值的时候一定要加引号才能读取person["name"],不用引号person[name]反而报underfine,为什么?
正在回答
同学你好,问题解答如下:
1. k不加引号是因为它是一个变量,如下:
2.name不加引号,会被当成一个变量。正常情况下,没有定义这个变量,是要报错的。而这里之所以没有报错,是因为name它本身就是window上的属性,window的属性等同于一个变量,所以输出的是undefined。(这里也要注意,不要用name作为变量名。)
示例:
换一个变量名,因为变量没有定义会报错。
当定义了这个变量,就能获取到age的属性值
获取直接加引号去获取对应的属性值:
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
附代码
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
</head>
<body>
<script type="text/javascript">
var person={
name:"Tom",
age:18,
sex:"man"
}
for(var k in person){
console.log(k);
console.log(person[k]);
}
console.log(person[name]);
</script>
</body>
</html>
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星