使用数组解构,可以通过插入逗号而无需前面的引用来丢弃前导项目:
const [ , two ] = [ 1, 2 ]
函数签名并非如此-以下代码将无法解析,因为签名中的前导逗号是意外的:
function ditchFirstArgument( , second ){}
为什么需要为ES6函数表达式中的前导参数提供引用?
为什么需要为ES6函数表达式中的前导参数提供引用?
因为否则会出现语法错误。不仅在ES6中,而且在任何版本的语言中,您都不能忽略形式参数,因为规范未对此提供规定。
如果您确实想这样做(为什么?),则可以将其写为
function ditchFirstArgument(...[, second]) {}
至少您将能够在将来的ES版本中使用它;或者 参见https://github.com/tc39/ecma262/commit/d322357e6be95bc4bd3e03f5944a736aac55fa50。Chrome似乎已支持此功能。同时,您能做的最好的就是
function ditchFirstArgument(...args) {
const [, second] = args;
但是,为什么规范不允许省略参数?
您必须要问编写它的人,但是他们可能甚至从未考虑过它,或者是否曾经拒绝过它,因为它容易出错,几乎没有必要,并且可以轻松地使用伪正式参数(如)解决_
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句