当我阅读并熟悉一些 ES-6 功能时,我遇到了这个:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/fill
如果您查看示例,第一个示例将显示:
[1, 2, 3].fill(4); // [4, 4, 4] semicolon expected or 'TypeError: [4, 4, 4].fill(...)[3] is undefined' prompt
从参数的语法和描述来看,[1, 2, 3].fill(4)
看起来像是一个完全有效的调用,它将默认参数 start
到 0 和 end
到 3。在我看来,该语句应该完美执行,没有错误,就像其他示例一样。我在控制台中尝试过,Firefox 没有提示。
任何人都可以解释为什么这个例子(可能)引发 TypeError,甚至提示分号?为什么在简单的控制台测试中不会发生错误?
起初我以为这一定是一个打印错误,但我开始认为不是。这是唯一一个据说会引发错误的示例,并且错误消息非常特定于这一行。
最佳答案
每个人都可以编辑 MDN 上的页面。 Someone fixed an issue with the examples and added that comment :
之前的示例末尾没有分号:
[1, 2, 3].fill(4) // [4, 4, 4]
[1, 2, 3].fill(4, 1) // [1, 4, 4]
如果您只是复制并粘贴它们,则会导致错误。
但是,我认为该评论更令人困惑而不是有帮助so I removed it .
关于javascript - 为什么 Array.prototype.fill() 的这个示例会抛出 TypeError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30961139/