es6-箭头功能 - 没有重复的命名参数

时间:2016-06-28 09:48:02

标签: arguments ecmascript-6 arrow-functions

enter image description here

我无法理解箭头功能的最后方式:

  

没有重复的命名参数 - 箭头函数不能重复   以非严格或非严格模式命名参数   仅在严格中不能具有重复命名参数的函数   模式。

以上段落摘自Nicholas C. Zakas在“功能”一章中所写的“理解ECMAScript 6”一书。

根据上面的描述,我知道箭头函数没有像其他函数那样的参数。

我能很好地理解一半前的句子,但另一半从“而不是......”开始。

这意味着“仅在严格模式下不能具有重复命名参数的非箭头函数”。

实际上,严格模式下的函数也有参数。我不知道作者的意思。

1 个答案:

答案 0 :(得分:3)

这意味着以下内容是有效的JavaScript:

'use strict';
function bar(foo, foo){}
// SyntaxError: duplicate formal argument foo

但是,使用严格模式时不是这样:

(foo, foo) => {}
// SyntaxError: duplicate argument names not allowed in this context

使用箭头函数时,无论严格模式还是非严格模式,重复的命名参数始终无效。

{{1}}
  

根据上面的描述,我知道箭头函数没有像其他函数那样的参数。

不确定您是否正确理解这一点。箭头函数可以有参数,它没有arguments