小编Nic*_*ick的帖子

在 if 语句中使用时,可选链接会导致意外结果

我在代码中有一个 if 语句,它检查是否定义了一个对象,然后检查其属性之一的相等性。我的 if 语句是这样的:

if(obj && obj.a !== x) { // do something }
Run Code Online (Sandbox Code Playgroud)

但是现在我使用了可选链接并将 if 语句更改为:

if(obj?.a !== x) { // do something }
Run Code Online (Sandbox Code Playgroud)

但是现在我的代码在这种情况下无法正常工作。即使 obj 未定义,代码也会输入 if 语句。请有人解释为什么会发生这种情况?

javascript optional-chaining ecmascript-next

4
推荐指数
1
解决办法
1021
查看次数