我无意中看到这会导致 V8(Chrome、Node.js 等)出现错误:
for (let val of Symbol()) { /*...*/ }
TypeError:符号不是函数或其返回值不可迭代
似乎任何其他不可迭代的值(包括函数)都会导致另一个错误:
for (let val of function () { throw 'never called' }) { /*...*/ }
TypeError:(中间值)不可迭代
正如参考资料所述,该错误特定于 Chrome:
TypeError:“x”不是函数或其返回值不可迭代(Chrome)
...
作为 for...of 的右侧或作为 Promise.all 或 TypedArray.from 等函数的参数给出的值不是可迭代对象。可迭代对象可以是内置的可迭代类型,例如 Array、String 或 Map、生成器结果或实现可迭代协议的对象。
似乎所有列出的东西都不应该接受函数而不是可迭代作为参数,因此不清楚为什么错误强调函数类型。
这个错误有什么意义吗?在某些情况下,is not a function
评论在其上下文中是有意义的吗?