javascript - ES2015中有没有一种方法可以直接访问对象属性而不检查未定义?

标签 javascript ecmascript-6

在 ES5 中,每当我想要获取某些属性时,我需要首先检查它是否存在,如下所示:

if (typeof floob.flib !== 'undefined') {
    // do something
}

更糟糕的是,对于嵌套属性,您必须手动检查虚线路径上的每个属性是否存在。

在 ES2015 中是否有更好的方法来做到这一点?

最佳答案

  1. 如果它只是单个深度属性名称 - 您不需要 typeof,您只需将该值与 undefined 进行比较即可。

  2. 您的解决方案很容易出现误报:它可能认为不存在具有给定名称的属性,而实际上有一个。示例:var o = { foo: undefined };

  3. 如果您需要检查嵌套对象中是否存在路径 - 您仍然需要实现递归/循环/或使用任何可以为您执行任一操作的库。

  4. ES2015 没有带来任何新功能来更轻松地解决这个问题。

关于javascript - ES2015中有没有一种方法可以直接访问对象属性而不检查未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37871716/

相关文章:

javascript - JavaScript 中的结构类型检查

javascript - 你如何在 ES6 中做 forEach?

javascript - 更好的方式 “loop” promises

javascript - 如何在一行中默认导出命名导入?

javascript - 在 Node js 后端使用 FormData 和 XmlHttpRequest 上传文件并使用 Formidable 显示空文件、字段

javascript - 如何在 asp.net 中更改 javascript 警告框的标题?

javascript - 未捕获的类型错误 : Cannot read property 'network' of undefined in Chrome Extension

javascript - 当通过 window.location.hash 选择元素时,我的 JavaScript 在变量中显示 'undefined'

javascript - 单击链接时关闭导航覆盖(一个寻呼机)

java - 在服务器响应之前如何显示进度指示器?