js文档里参数说明会出现get(url[, config])或者get(url,[config]),有什么区别呢

空无
  • 1.1k

比如axios的文档里

axios#get(url[, config])

axios#delete(url[, config])

axios#head(url[, config])

get(url[,config]) config参数表示可选
get(url,[config]) 这种config也表示可选,二者有什么区别呢,逗号怎么写在里面
还有逗号在后面的:
jquery:
hover([over,]out)hover([over],out) 有什么区别
这种逗号在后面的,中括号内也是表示可选
这种语法或者说书写规范是在哪定义的,我该怎么查到这种写法的说明呢

回复
阅读 2.6k
2 个回答

没看过axios的文档。

我的理解是:
get(url[, config])这种表示可以写两个参数或一个参数,后一个是可选的;
get(url,[config])这种表示必须写两个参数,后一个config虽然可选,但是没有的时候要传null;
hover([over,]out)这种表示你写两个参数的时候分别作为over和out传进函数,而如果只有一个参数那就是out;
hover([over],out)意义同上:没有over的时候必须传个null进去;

现在一般插件都可以实现参数个数的识别了,所以把逗号写外边、需要传null占位的情况好像已经极少了吧。

快三年了。。自己再解答一下吧。

这种表达方式是BNF表示法,[]在bnf(或各种变体)里表示optional,可选的;逗号写在[]里是因为要表示第n个参数。
还有看着更复杂的:axios.put(url[, data[, config]]),也无非是嵌套了一层而已,表示可选参数里再嵌套可选参数。

参考:

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏