Javascript 参数的Node.js语法混乱
我正在查看方法Buffer.alloc()的类缓冲区,文档中将其作为方法声明Buffer.alloc(size[,fill[,encoding]]),我对参数应该是什么感到困惑。我来自c++/c/java/c#语法让我很反感我不知道大小[,填充[,编码]]应该代表什么?阵列?逗号是什么意思?为什么这些是嵌套的?为什么有空的插槽?我看了,似乎找不到解释或教程?这是Node.js特有的还是JavaScript的东西?方括号表示法来自,表示所包含的参数是可选的Javascript 参数的Node.js语法混乱,javascript,node.js,Javascript,Node.js,我正在查看方法Buffer.alloc()的类缓冲区,文档中将其作为方法声明Buffer.alloc(size[,fill[,encoding]]),我对参数应该是什么感到困惑。我来自c++/c/java/c#语法让我很反感我不知道大小[,填充[,编码]]应该代表什么?阵列?逗号是什么意思?为什么这些是嵌套的?为什么有空的插槽?我看了,似乎找不到解释或教程?这是Node.js特有的还是JavaScript的东西?方括号表示法来自,表示所包含的参数是可选的 size[,fill[,encoding
size[,fill[,encoding]]
表示需要size
参数,但fill
和encoding
(包括前面的逗号)是可选的。此外,这意味着只有在指定了填充
的情况下才能指定编码。方括号表示法来自,表示所附参数是可选的
size[,fill[,encoding]]
表示需要size
参数,但fill
和encoding
(包括前面的逗号)是可选的。此外,这意味着只有在指定了填充
时才能指定编码。文档中方括号内的参数通常表示“此部分是可选的”。对于Buffer.alloc
,这意味着您可以通过三种方式调用它:
Buffer.alloc(size)
Buffer.alloc(size, fill)
Buffer.alloc(size, fill, encoding)
括号不是实际的JavaScript,但通常用于在文档中描述这一点。文档中方括号中的参数通常表示“此部分是可选的”。对于Buffer.alloc
,这意味着您可以通过三种方式调用它:
Buffer.alloc(size)
Buffer.alloc(size, fill)
Buffer.alloc(size, fill, encoding)
括号不是实际的JavaScript,但通常用于在文档中描述这一点。引用:
方括号意味着它们里面的东西是可选的——要么你有,要么你没有。这是一种列出有效调用表单的简明方法
在您的情况下,方括号表示有3个签名:
Buffer.alloc(size )
Buffer.alloc(size, fill )
Buffer.alloc(size, fill, encoding)
暗示
为了可读性,我所做的示例故意省略了参数。每当你看到像a(b,,)
这样的东西时,想象一下在没有值的逗号之间有一个undefined
或null
,因此a(b,undefined,undefined,undefined,undefined)
简单例子
另一个例子如下所示:
example(alpha, [, beta], [, gamma], delta)
。。。这意味着以下签名将起作用:
example(alpha, , , delta)
example(alpha, , gamma, delta)
example(alpha, beta, , delta)
example(alpha, beta, gamma, delta)
筑巢
在您的情况下,Buffer.alloc(size[,fill[,encoding]])
,只有在提供fill
参数时才必须提供encoding
参数,因为encoding
嵌套在fill
周围的方括号中。因此,以下内容无效:
Buffer.alloc(size, , encoding).
多个嵌套参数
多个参数也可以嵌套在一级括号中:
example2(alpha, [, beta, gamma] [,delta])
。。。这意味着这些调用是有效的:
example2(alpha, beta, gamma, )
example2(alpha, , , )
example2(alpha, beta, gamma, delta)
example2(alpha, , , delta)
example2(alpha, beta, , )
example2(alpha, , gamma, )
example2(alpha, beta, , delta)
example2(alpha, , gamma, delta)
。。。虽然这些是无效的:
example2(alpha, beta, gamma, )
example2(alpha, , , )
example2(alpha, beta, gamma, delta)
example2(alpha, , , delta)
example2(alpha, beta, , )
example2(alpha, , gamma, )
example2(alpha, beta, , delta)
example2(alpha, , gamma, delta)
在哪里可以找到这个符号
正如@cybersam在他的文章中所说,这种符号被称为。它也可以在许多、和许多其他文献中找到。引用:
方括号意味着它们里面的东西是可选的——要么你有,要么你没有。这是一种列出有效调用表单的简明方法
在您的情况下,方括号表示有3个签名:
Buffer.alloc(size )
Buffer.alloc(size, fill )
Buffer.alloc(size, fill, encoding)
暗示
为了可读性,我所做的示例故意省略了参数。每当你看到像a(b,,)
这样的东西时,想象一下在没有值的逗号之间有一个undefined
或null
,因此a(b,undefined,undefined,undefined,undefined)
简单例子
另一个例子如下所示:
example(alpha, [, beta], [, gamma], delta)
。。。这意味着以下签名将起作用:
example(alpha, , , delta)
example(alpha, , gamma, delta)
example(alpha, beta, , delta)
example(alpha, beta, gamma, delta)
筑巢
在您的情况下,Buffer.alloc(size[,fill[,encoding]])
,只有在提供fill
参数时才必须提供encoding
参数,因为encoding
嵌套在fill
周围的方括号中。因此,以下内容无效:
Buffer.alloc(size, , encoding).
多个嵌套参数
多个参数也可以嵌套在一级括号中:
example2(alpha, [, beta, gamma] [,delta])
。。。这意味着这些调用是有效的:
example2(alpha, beta, gamma, )
example2(alpha, , , )
example2(alpha, beta, gamma, delta)
example2(alpha, , , delta)
example2(alpha, beta, , )
example2(alpha, , gamma, )
example2(alpha, beta, , delta)
example2(alpha, , gamma, delta)
。。。虽然这些是无效的:
example2(alpha, beta, gamma, )
example2(alpha, , , )
example2(alpha, beta, gamma, delta)
example2(alpha, , , delta)
example2(alpha, beta, , )
example2(alpha, , gamma, )
example2(alpha, beta, , delta)
example2(alpha, , gamma, delta)
在哪里可以找到这个符号
正如@cybersam在他的文章中所说,这种符号被称为。它也可以在许多、和许多其他文档中找到。在您的简单示例中,当您有[,beta]时,括号内逗号的用途是什么?它是否有特定的含义,或者我可以忽略?这意味着在使用括号中的参数时只需要逗号。在您的简单示例中,当您有[,beta]时,括号中逗号的用途是什么?它是否有特定的含义,或者我可以忽略它?这意味着您在使用括号中的参数时只需要逗号。