这非常简单,但我想知道为什么事情就是这样。我正在尽力为我的应用程序编写js文档,所以我使用jsDoc约定并引用MDN作为指南和bla bla bla,但我的问题是关于如何在MDN参考上编写文档。
采用两种简单的方法:console.log()
和Math.min()
以及它们在MDN上记录的语法
console.log(obj1 [, obj2, ..., objN]);
console.log(msg [, subst1, ..., substN]);
Math.min([value1[, value2[, ...]]])
如果我理解正确console.log
说,我需要第一个参数,其余的是可选的。可选参数用括号+逗号“[,
”表示,而必需参数用逗号“,
”表示。
另外,要引用许多参数,文档编写为“subst1, ..., substN
”。
看看Math.min
这是非常相似和明显不同,但为什么呢?我理解Math.min
中的第一个arg是可选的(返回Infinity
),而在console.log中它不是可选的(你会得到undefined
)。如果我正确理解语法,Math.min
的语法可以写成,
Math.min([value1, ..., valueN])
声明所有参数都是可选的,并且该方法接受零个或多个参数,但我们在每个参数周围都有括号。
是否有理由说明文档的编写方式,如果是,请解释这些差异是什么。
实际上我总是相信语法fn(a, [b, c, d])
意味着你只能使用fn(a)
或fn(a, b, c, d)
。
但无论如何,console.log
和Math.min
表现完全相同 - 他们处理所有的论点。如果为任一函数提供零参数,则没有错误。这是我在控制台中得到的:
> Math.min()
Infinity
> console.log()
(nothing to output)
此外,console.log
的返回值独立于参数 - 总是undefined
:
console.log()==console.log(666) //true