我开始使用null作为可选函数参数的默认值。 (显然,除非其他事情更合适)
似乎有道理 - (来自ECMA规范)“空值 - 表示故意缺少任何对象值的原始值“并且在第一次读取该函数时立即清除该参数是可选的。
一个硬核,在我工作的羊毛JS家伙染色了,但是当我推他时,他的理由都有点......未定义(!)
我知道这主要是假的,但是有人能给我一个不合理的理由吗?
初步评论后的详细说明
想象一下像这样的函数
complicatedFunc(arg 1, arg2, arg3, arg4) {
long func
}
就目前而言,它并没有告诉第二个用户任何关于什么参数是必需的/可选的。
相同功能
const complicatedFunc = (arg 1, arg2, arg3 = null, arg4 = null) => {
long func...
}
即文档(从未编写过)将是
complexFunc(arg1,arg2,[arg3,arg4])....
很明显,第二个版本更清晰,不太可能被错误使用
正如我上面所说,如果另一个默认值不合适,你只会使用null。
我能想到好的专业人士,但不是真的有任何缺点吗?
有什么想法吗?