在Chrome/Node(通常是V8),以下内容会显示错误消息:
Uncaught TypeError: f不可迭代
为什么会生成如此模棱两可的错误信息? 我认为这与
例如,在火狐浏览器(spidermonkey)上,我得到了一个可以理解的“未定义的属性”。 如果我使用一个对象(
这可能以前已经被问过了,但我不知道要搜什么 - “function not iterable”会得到大量无关的结果。
PS:作为有趣的事实,显然,如果让
Uncaught TypeError: f不可迭代
function f(){}
f(...undefined);
f
无关?例如,在火狐浏览器(spidermonkey)上,我得到了一个可以理解的“未定义的属性”。 如果我使用一个对象(
let o = {}; f (...o.p);
),我会得到一个更准确的“o.p未定义”的错误。这可能以前已经被问过了,但我不知道要搜什么 - “function not iterable”会得到大量无关的结果。
PS:作为有趣的事实,显然,如果让
f
可迭代,则错误不会消失:f [Symbol.iterator] = function *(){};
。 错误消息似乎是完全错误的。
f()
,在收集参数时遇到了错误,并错误地将错误归因于f
。 - jfriend00undefined
之前,这个问题花费了我5-10分钟的时间。在这种情况下,很难立即清楚错误消息完全无效。如果没有明显地展示其中一个参数是undefined
,我可能仍然会试图修复它。 - Doofus