错误“无法在未定义时调用 toString”但变量已定义
2011-07-13
15238
在这段 Javascript 中
creds = cp[0];
data[creds.toString()] = cp[1]; // data is an object
Chrome 在第二行向我提供了错误
TypeError: Cannot call method toString of undefined
。但是,我已通过调试器验证
creds
的值此时是数字
1400
。
发生了什么?
2个回答
使用
for in
循环对数组进行操作时应非常谨慎。请改用普通循环。
数组
cpl
不仅包含数据,还包含函数,因此循环中的第三个
cp
是函数。这就是
creds
变为未定义的原因。
此链接有很好的解释: 为什么在数组迭代中使用“for...in”是个坏主意?
Sanghyun Lee
2011-07-13
Javascript 不需要变量类型,因此可以通过删除
toString()
来实现。
顺便说一句,我不确定您是否可以在原始类型上调用
toString()
作为
int
mastaH
2011-07-13