JavaScript数组推送匿名函数失败

这是我今天遇到的一件事。

[].push(
  function() {return 1;},
);

not 好

[].push(
  function() {return 1;},
  function() {return 1;},
);

任何人都知道这里发生了什么?

谢谢!

0
额外 编辑
意见: 1
/像评论:-)
额外 作者 Sebas,
什么是错误?
额外 作者 Sebas,
是什么让你觉得第二个不好,但第一个是?
额外 作者 kinakuta,
第一个例子中的额外
额外 作者 Pavel Veller,

1 答案

只要最后一个参数后没有尾随逗号,两者都可以正常工作:

[].push(
  function() {return 1;},
  function() {return 1;}
);
4
额外
@leeoniya:在数组表示法中注意额外的逗号。有些浏览器为了方便而忽略它们,但是IE浏览器不支持(所以这可能是难以发现错误的来源)。
额外 作者 hugomg,
@leeoniya:那么,这只是通过jshint在这种情况下运行代码库的问题,尽管...
额外 作者 hugomg,
哇,应该自己抓住那个。猜我习惯于保留这种数组符号风格的尾随逗号。谢谢。必须早点喝咖啡。
额外 作者 leeoniya,
顺便说一下,在保持这些愚蠢的错误问题上,SO的礼仪是什么?我不认为这值得保留,因为它不会给其他人带来价值。我应该删除这个问题吗?
额外 作者 leeoniya,
@missingno,谢谢我意识到这一点。这个特定的项目不需要在IE中工作,并且需要一个不可能的巨大ie-fallback代码库来完成这个任务 - 这是一个内部工具。
额外 作者 leeoniya,
@leeoniya很高兴我能帮上忙。享用你的咖啡:P
额外 作者 Paulpro,
@leeoniya不,你应该离开它。如果社区决定删除它,那么它将被删除,但它可能会留在以防万一它将来有益于某人。它不会伤害任何剩下的东西。
额外 作者 Paulpro,