我在代码中有一个 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 语句。请有人解释为什么会发生这种情况?