javascript - 为什么 Array.prototype.fill() 的这个示例会抛出 TypeError?

标签 javascript arrays ecmascript-6

当我阅读并熟悉一些 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 :


enter image description here


之前的示例末尾没有分号:

[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/

相关文章:

python - Numpy 从 np 数组中删除一个维度

javascript - 在 Express + NodeJS 应用程序的 Controller 中使用 ES6 类或对象文字

javascript - 类型错误 : divOutput is null

javascript - 打开后关闭切换

javascript - 将我的选择 ID 传递给路由 Controller 并显示给另一个 Blade 文件

java - 从字节数组中的指定位置提取字节

javascript - 为什么 async/await 变量返回未定义?

javascript - 访问列表项的元素 onclick

javascript - ThreeJS,如何使用 CSS3Renderer 和 WebGLRenderer 在同一场景中渲染 2 个对象并让它们重叠?

ios - swift 。继承对象的集合