【发布时间】:2013-07-23 03:34:48
【问题描述】:
我正在开发 Chrome 的扩展程序,我只是想知道“for..in”在 Javascript 中的用法。让我用一个例子来解释一下我发现的问题:
假设我有一个{prop1: "foo", prop2: "bar", ...} 类型的易失性对象。
我想以某种语法将此对象保存在字符串中,例如"prop1=foo;prop2=bar;..."。这是我使用的代码:
var fun = function(data) {
var str = "";
for (var i in data) {
str += i + "=" + data[i] + ";";
}
return str;
};
log(fun({x:1, y:2}));
fun 返回以下字符串:undefinedx=1;y=2;。
我真的不明白为什么它会遵循这种行为。我知道我可以使用 JSON 来“字符串化”这样的事情,但实际上我只是想了解它为什么会发生。
【问题讨论】:
-
除了两个语法错误(我猜是拼写错误)代码对我有用。
-
@LightStyle 如果您在
fun的初始化结束时计算缺少的;,则为三个,但分号插入掩盖了那个。 ;) -
嗯,这不完全是一个抛出的语法错误:P
-
正确。我认为这是一个错误,就像我认为意外或草率的全局变量使用错误一样。 (当然解析器不会。)
-
考虑使用 JSON.stringify() 而不是手动将对象打包成字符串以备后用...
标签: javascript undefined for-in-loop