Null合并运算符Javascript

Jas*_*ojo 12 javascript

如何以更好的方式做这件事.

this.state.updateItem?this.state.updateItem.unit:'Unit';
Run Code Online (Sandbox Code Playgroud)

我试过过this.state.updateItem.unit || 'Unit',但它发现它会产生错误,因为this.state.updateItem为NULL然后它找不到unit的任何属性.

如何以更好的方式做到这一点?

Fau*_*ust 19

现在你必须这样做:

(this.state.updateItem || {}).unit || 'Unit'
Run Code Online (Sandbox Code Playgroud)

ES(JavaScript)有一个关于可选链接的第一阶段提议,我们(最终希望)能够做到这样的事情:

this.state.updateItem?.unit || 'Unit'
Run Code Online (Sandbox Code Playgroud)

如果你正在做babel,你现在可以使用它!:https:
//www.npmjs.com/package/babel-plugin-transform-optional-chaining


mic*_*ckl 5

您可以尝试将空对象设置为默认值:

(this.state.updateItem || {}).unit || 'Unit'
Run Code Online (Sandbox Code Playgroud)

单位总是有价值或未定义.