我有一个问题请帮帮我
我在我的教学程序中有代码:
alert(user.address ? user.address.street ? user.address.street.name : null : null);
但我不明白,为什么他在代码的末尾用了两次“null”?
我理解如果user.adress
-存在,则检查user.address.street
是否存在,如果user.address.street
-存在,则检查user.address.street.name exist
是否存在,如果不存在,则检查null
。
但他为什么要写第二个null
呢?
2条答案
按热度按时间0s0u357o1#
运算符是if-else赋值的简写。
是以下内容的缩写形式:
在javascript中,还有一个“可选的链接操作符”,这可能是你想要的:
如果对象的属性不为空,则只访问它们,否则返回空。
m1m5dgzv2#
这里是用户地址?是具有两个操作数条件语句。第一个是完整的
如果条件为真,我们将深入到这个语句,它是一个条件语句,并且再次有两个操作数:第一个是
user.address.street.name
(如果嵌套条件是true
),第二个是null
(如果嵌套条件是false
)。最后一个null是user.address ?
的第二个操作数,如果它是false
。