无论如何我们可以处理||中的虚假值经过懒惰评估的运营商?
所以,例如,如果我们有:
function isOldEnough(age) {
age = age || 18;
return age;
}
isOldEnough(0) // returns 18 because 0 is falsy
在ES6中,您可以简单地将其声明为
function isOldEnough(age = 18) { ... }
我们可以在ES5中做些什么来避免这个问题吗?
答案 0 :(得分:3)
类似的东西(如果我理解正确的话):
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
可以通过检查年龄是否等于或大于零等进一步改进