JavaScript:语法示例中参数左括号后的逗号

JavaScript: comma after opening bracket of parameter in syntax example

Array.prototype.indexOf() 等方法的语法如下所示:

arr.indexOf(searchElement[, fromIndex = 0])

[, ...]是什么意思,为什么括号里面是逗号?

括号本身表示“可选”,如果您决定省略该参数,= 0 会给出默认值。逗号在括号内的原因是因为它构成了可选位的一部分——如果省略第二个参数,则逗号也被省略。

换句话说,您只能将 indexOf searchElement 一起使用,在这种情况下,fromIndex 被假定为零。或者,如果您不想从元素编号零开始搜索,则可以为 fromIndex 指定 own 值。

所以下面的前两个是等价的,而第三个将从数组中的不同点开始搜索:

x = haystack.indexOf (needle);
x = haystack.indexOf (needle, 0);
x = haystack.indexOf (needle, 42);

Mozilla 开发者网络 this 就此事发表意见(我强调):

fromIndex: The index to start the search at.

If the index is greater than or equal to the array's length, -1 is returned, which means the array will not be searched. If the provided index value is a negative number, it is taken as the offset from the end of the array.

Note: if the provided index is negative, the array is still searched from front to back. If the calculated index is less than 0, then the whole array will be searched.

Default: 0 (entire array is searched).

arr.indexOf(searchElement[, fromIndex = 0])

括号用于表示可选使用。逗号用于分隔参数。

例如。你同时使用两者然后你会这样做:

arr.indexOf(searchElement, fromIndex)

或者,

//omitting fromIndex use the default to 0
arr.indexOf(searchElement)//As fromIndex is optional to use

这是为了表示多个函数签名。 [] 里面的是可选参数。所以这意味着您可以像这样调用它:

arr.indexOf(searchElement) // in such case fromIndex is 0 by default

或者,您可以使用两个参数调用:

arr.indexOf(searchElement, fromIndex)