javascript - 避免在默认值中分配虚假值的陷阱?

标签 javascript

我们是否可以处理 || 中的虚假值?惰性求值的运算符?

因此,例如,如果我们有:

function isOldEnough(age) {
   age = age || 18;
   return age;
}

isOldEnough(0) // returns 18 because 0 is falsy

在 ES6 中,你可以像这样简单地声明它

function isOldEnough(age = 18) { ... }

我们可以在 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

可以通过检查年龄是否等于或大于零等进一步改进

关于javascript - 避免在默认值中分配虚假值的陷阱?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34414173/

相关文章:

javascript - 单击按钮时如何打开同一个选项卡

javascript - 滑动菜单主体不会折叠

javascript - 检索 JSON 中的所有项目,而不仅仅是通过索引

php - 为什么我的页面中的 AJAX 请求只能运行一次

javascript - Mongo在插入后查找文档

javascript - 下载jsp项目

javascript - nodejs与mysql,无法从数据库获取数据

javascript - 如何在 JavaScript 中查找集合的所有子集? (数组的幂集)

javascript - 嵌入事件列表代码占据整页

javascript - 从 Angular $mdDialog 中访问表单