用于以JavaScript
问题描述:
我试图理解JavaScript代码的下列片段环用于以JavaScript
<!DOCTYPE html>
<html>
<body>
<p>Click the button to loop through the properties of an object named "person".</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script type="text/javascript">
function myFunction()
{
var x;
var txt="";
var person={fname:"John",lname:"Doe",age:25};
for (x in person)
{
txt=txt + person[x];
}
document.getElementById("demo").innerHTML=txt;
}
</script>
</body>
</html>
我有些困惑与此线
for (x in person)
{
txt=txt + person[x];
}
正如我猜测它是一个关联数组,与关键 - >价值关系,作为最终结果不应该像这样打印?
fname:"John",lname:"Doe",age:25
? 非常感谢
答
首先,没有在JavaScript副阵列的理念,person
是对象和对象正在使用的for-in
循环迭代。
线:
txt = txt + person[x];
简单地读出person
对象的每个属性而在txt
变量串接的值给出结果:
JohnDoe25
FYI,始终使用for-in
环为对象而正常for
循环为数组。
答
至于说, javascript没有关联数组的概念,最好是做一些关于js的阅读,而不是正常的运行和测试方法,因为有些行为在逻辑上不正确,直到我们学会思考js的方式。
for..in循环检查此https://developer.mozilla.org/en/JavaScript/Reference/Statements/for...in并阅读hasOwnProperty
部分。这让很多人感到困惑。
我建议你阅读http://eloquentjavascript.net/并且每当有任何问题时请继续检查MDN。那里的文档真的很好。
什么是“人物[x]”?对于'x =“fname”'我们有'person [x] =“John”'。结果是“John”+“Doe”+“25”=“JohnDoe25”'。想想看。 :) – freakish
可以帮你玩弄:[jsconsole](http://jsconsole.com/) ' > var txt =“”; > var person = {fname:“John”,lname:“Doe”,年龄:25}; > for(x in person){txt = txt + person [x]; } > x ' –