错误“无法在未定义时调用toString”,但定义了变量

时间:2011-07-13 10:01:17

标签: javascript undefined tostring typeerror

在这篇Javascript中

creds = cp[0];
data[creds.toString()] = cp[1]; // data is an object

Chrome在第二行显示错误TypeError: Cannot call method toString of undefined。不过,我已经通过调试器验证了creds的值是1400的数字。

发生了什么事?

2 个答案:

答案 0 :(得分:1)

使用for in循环到数组时应该非常谨慎。改为使用普通循环。

数组cpl不仅包含数据,还包含函数,因此循环中的第三个cp是函数。这就是creds转向未定义的原因。

此链接有很好的解释:Why is using "for...in" with array iteration a bad idea?

答案 1 :(得分:0)

Javascript不需要变量类型,因此请删除toString()

btw我不确定你可以在基本类型上调用toString() int