Javascript 哪些真实值没有属性?
我正在尝试编写最短的可读代码,以访问我没有任何信息的变量的属性,但我希望此属性访问是安全的:Javascript 哪些真实值没有属性?,javascript,null,undefined,optional-chaining,Javascript,Null,Undefined,Optional Chaining,我正在尝试编写最短的可读代码,以访问我没有任何信息的变量的属性,但我希望此属性访问是安全的: const x=getXSomehow(); 常数y=x.z;//1. 常数y=x?.z;//2. 常数y=x!=null&&x.z;//3. 常数y=x&&x.z;//4. 如果x为null或未定义 这将是完美的,但我不能使用可选链接(由于某些原因超出了这个问题的范围) Works&其他库(如lodash和coffeescript)使用它以空安全的方式访问道具,但读起来很难看 我想使用它,但是如果J
const x=getXSomehow();
常数y=x.z;//1.
常数y=x?.z;//2.
常数y=x!=null&&x.z;//3.
常数y=x&&x.z;//4.
x
为null
或未定义
null
和未定义的,但可能存在一个奇特的JS值,它既真实又对属性访问有影响
const obj={
获取道具(){
抛出新错误();
}
};
控制台日志(对象道具)代码>我会仔细看看2。如果浏览器兼容性是个问题,您能否将Babel集成到您的构建过程中(无论如何,它应该已经存在于一个相当专业的项目IMO中),然后使用可选链接,并将其传输到ES5/ES2015进行生产?(如果不是,好吧,但我会这么做)不,这是babel+jest+istanbul的问题,它不处理可选链接,我的意思是理论上可以,但我们的团队集体认为这项工作成本太高!但如果不是因为这个细节,我会同意的