为什么Javascript文档将函数的参数定义为语法中的嵌套数组?

时间:2018-03-18 08:13:50

标签: javascript node.js function ecmascript-6 documentation

我不知道如何提出这个问题,但在我学习Javascript或Node.js的文档时,他们正在定义这样的语法。

  

var new_array = old_array.concat(value1 [,value2 [,... [,valueN]]])

此处所有参数(value1[, value2[, ...[, valueN]]])都定义为嵌套数组。

实际意味着什么,

为什么他们不只是定义这样的东西。

  

var new_array = old_array.concat(... values)

OR

  

var new_array = old_array.concat(valueList)

1 个答案:

答案 0 :(得分:3)

它与数组无关(除了你的例子来自数组类型的方法文档)。方括号表示可选参数,这是大多数编程语言和工具中使用的约定。例如,cp命令的帮助:

usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory

...或valueN

...

您的示例意味着该函数至少使用一个参数,并且可以用逗号分隔更多参数。根据{{​​3}},这些值可以是数组和/或值,以连接到新数组。因此,每个{{1}}可以是要添加到返回数组的数组或值。

不使用{{1}}符号的原因可能是因为方括号已经使用了几十年并且很普遍,因此无论主题是什么,读者都会熟悉语法。