我正在尝试编写最短的可读代码来访问我没有任何信息的变量的属性,但我希望此属性访问是安全的:
const x = getXSomehow();
const y = x.z; // 1
const y = x?.z; // 2
const y = x != null && x.z; // 3
const y = x && x.z; // 4
x
如果是null
或可能会抛出undefined
- 会很完美,但我不能使用可选链接(由于某种原因超出了这个问题的范围)
- Works & 被 lodash 和 coffeescript 等其他库用来以空安全的方式访问道具,但读起来很难看
- 我想使用它,但是如果 JS 中存在不允许您访问其属性的真实内容,这将失败 - 这甚至会发生吗?我能想到的只是
null
andundefined
,但也许存在一个奇异的 JS 值,它既真实又抛出属性访问