无论如何我们可以处理||中的假值 经过懒惰评估的运营商?
所以,例如,如果我们有:
function isOldEnough(age) {
age = age || 18;
return age;
}
isOldEnough(0) // returns 18 because 0 is falsy
Run Code Online (Sandbox Code Playgroud)
在ES6中,您可以简单地声明它
function isOldEnough(age = 18) { ... }
Run Code Online (Sandbox Code Playgroud)
我们可以在ES5中做些什么来避免这个问题吗?
像这样的东西(如果我理解正确的话):
function isOldEnough(age) {
var age = typeof age === "number" ? arguments[0] : 18;
return age;
}
isOldEnough(null) // returns 18
isOldEnough("") // returns 18
isOldEnough(undefined) // returns 18
isOldEnough(0) // returns 0
Run Code Online (Sandbox Code Playgroud)
可以通过检查年龄是否等于或大于零等进一步改进