在 ES5 中,每当我想要获取某些属性时,我需要首先检查它是否存在,如下所示:
if (typeof floob.flib !== 'undefined') {
// do something
}
更糟糕的是,对于嵌套属性,您必须手动检查虚线路径上的每个属性是否存在。
在 ES2015 中是否有更好的方法来做到这一点?
最佳答案
如果它只是单个深度属性名称 - 您不需要
typeof
,您只需将该值与undefined
进行比较即可。您的解决方案很容易出现误报:它可能认为不存在具有给定名称的属性,而实际上有一个。示例:
var o = { foo: undefined };
如果您需要检查嵌套对象中是否存在路径 - 您仍然需要实现递归/循环/或使用任何可以为您执行任一操作的库。
ES2015 没有带来任何新功能来更轻松地解决这个问题。
关于javascript - ES2015中有没有一种方法可以直接访问对象属性而不检查未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37871716/