gpt4 book ai didi

JavaScript "x in obj": obj. x 未定义?

转载 作者:行者123 更新时间:2023-11-30 06:59:45 25 4
gpt4 key购买 nike

以下代码:

var obj = {uname:"OdO", age:"22"};  
alert(obj.uname);

结果:

OdO 

现在,在 for..in 语句中使用相同的概念:

for (x in obj) {
document.write(obj.x+"<br>");
}

我希望它打印以下内容:

OdO  
22

但它打印:

undefined  
undefined

而要在元素中实现打印循环,应该写成这样的数组元素:

for (x in obj) {
document.write(obj[x]+"<br>");
}

那么,为什么第一个语法不起作用,但它在 for..in 语句之外起作用?

最佳答案

当您编写 obj.x 时,这实际上是在 obj 中查找名为“x”的属性 — 就像 obj.size 一样查找名为“大小”的属性。 x 没有为您的对象定义,所以它什么也没有。正确的写法 — obj[x] — 使用变量 x 来查找对象中的属性。括号语法使用括号内的值来查找属性,而点语法将属性名称转换为字符串。所以这两个是等价的:

obj.x
obj["x"]

因此,当您在 obj. 之后编写 x 时,它会将 x 转换为字符串 — 它不再是变量。

关于JavaScript "x in obj": obj. x 未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10234028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com