从函数foo返回true,并使用OR运算符对其进行结构化。
function foo() {
return true;
}
var [a, b, c] = foo() || [];
为什么会抛出类似foo的错误不是函数。
答案 0 :(得分:2)
实际错误实际上是:
TypeError: foo is not a function or its return value is not iterable
。
这是因为执行将不会到达OR语句,因为foo()
的结果不是false-y(实际上是true)。因此,javascript尝试解构true
,这会给您带来TypeError
答案 1 :(得分:1)
看起来像是V8错误报告中的错误:
('{"requestId":"2ef095c8-cec6-4fb2-a4fc-3c036f9ffaa1"}' | ConvertFrom-Json).requestId
在两种情况下,Firefox均正确报告“不可迭代”。