当我遇到这个时,我正在阅读并熟悉一些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,甚至抱怨分号?为什么错误不会在简单的控制台测试中发生?
起初我认为这肯定是一个印刷错误,但我开始想不到。这是唯一可能引发错误的示例,错误消息非常特定于此行。
答案 0 :(得分:2)
每个人都可以在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更令人困惑。