gpt4 book ai didi

Javascript 逻辑或和对象

转载 作者:行者123 更新时间:2023-11-29 21:48:08 24 4
gpt4 key购买 nike

谁能用这样的语句解释发生的一切:

POJO.someProperty = POJO.someProperty || {}

这是检查 undefined 然后在 undefined = true 时简单地分配一个空对象吗?

最佳答案

logical operators在 javasript 中可以返回非 bool 值。 Logical OR运算符将返回第一个 truthy它在操作数中找到的值。逻辑与将返回第一个 falsy值,如果所有其他操作数都是 truhty,则为最后一个操作数.

Logical operators are typically used with Boolean (logical) values. When they are, they return a Boolean value. However, the && and || operators actually return the value of one of the specified operands, so if these operators are used with non-Boolean values, they may return a non-Boolean value.

  • 1 || 0 -> 1
  • 1 && '' -> ''

因此,当您的代码被评估时,如果 POJO.someProperty 未定义,则运算符将处理第二个运算符,它是一个空对象(这是一个真值),以便返回并分配值回到 someProperty

为什么用,一般是用来逃避property not defined的错误。假设您正在尝试访问 POJO.someProperty 的属性,例如 POJO.someProperty.somekey 但是如果 POJO.someProperty 未定义,那么您会得到一个错误。但是在这里,如果它是未定义的,那么我们将分配一个空对象,因此 POJO.someProperty.somekey 将返回未定义而不是错误。

关于Javascript 逻辑或和对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30387869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com