forEach的语法是javascript,这有什么具体原因吗?

forEach的语法是javascript,这有什么具体原因吗?,javascript,function,foreach,Javascript,Function,Foreach,JavaScriptNoob警报!!! 我们使用[]括号表示函数的参数有什么具体原因吗 forEach函数的语法如下所示 arr.forEach(function callback(currentValue [, index [, array]]) { //your iterator }[, thisArg]); 这就是它在MDN上的表示方式 为什么我们要按原样而不是简单地表示语法 arr.forEach(function callback(currentValue , index ,

JavaScriptNoob警报!!! 我们使用[]括号表示函数的参数有什么具体原因吗

forEach函数的语法如下所示

arr.forEach(function callback(currentValue [, index [, array]]) {
    //your iterator
}[, thisArg]);
这就是它在MDN上的表示方式

为什么我们要按原样而不是简单地表示语法

arr.forEach(function callback(currentValue , index , array) {
    //your iterator
};

还有什么是[,thisArg]

此语法通常表示函数执行其主要任务不需要的可选函数参数。对于
arr.forEach()
,回调执行其任务并不总是需要索引和原始数组


这实际上是在其他语言中使用的一种常见语法(我知道PHP在其文档中也使用这种语法)。

它表明索引数组是可选参数

它是可选的。因此,[,thisArg]是表示附加参数的方式,即“This”(引用对象)。但为什么他们使用这种参数表示来显示可选的[括号内]参数呢?这使得文档可以是纯文本,而不依赖颜色或字体来暗示含义。您可以复制/粘贴此文档,但它仍然表明参数是可选的。它们添加了递归括号,以指示在不首先添加索引参数的情况下,我无法使用“array”参数。现在一切都有道理了,这解释了很多。谢谢@Informagician