What does var = var && "*" mean in Javascr

What does var = var && "*" mean in Javascript

本文关键字:quot amp var in Javascr mean does What      更新时间:2023-09-26

我试图通过阅读它来解决一些混乱的代码,我做得很好,直到我遇到这个:

a = a && "*"

现在我对Javascript还是个新手,这些简短的不常见的Javascript代码对我来说还是很陌生的,这是我第一次遇到它们。

有人知道这是做什么的吗?我在javascript代码测试器中尝试过,它只是返回*,所以我不知道。

还有,如果有人知道我在哪里可以找到这些不常见的代码行做什么,那将非常有帮助。它们都被缩短了,就像这样和

a = a || b

(我知道那个人是干什么的)

但是如果有某种类型的javascript的名称或参考,我可以看,这将是非常有用的,我已经搜索谷歌几个小时了。

谢谢

如果a为真,则将"*"分配给a

如果a为false,则保持不变。


&&具有短路语义:复合表达式(e1) && (e2) —其中e1e2本身是任意表达式;—求值为

  • e1,如果e1在布尔上下文中计算为false;不e2
  • e2如果e1在布尔上下文中求值为真

不是 意味着e1e2以及整个表达式(e1) && (e2)需要求值为真或假!

在布尔上下文中,根据规范,以下值计算为false :

  • 定义
  • ± 0
  • 空字符串

所有1其他值被认为是true

以上值被简洁地称为"假",其他值为"真"。

应用于您的示例: a = a && "*"

根据上述&&的短路求值规则,如果a false ,则表达式求值为a,然后将其赋值给a,即语句简化为a = a

如果a 为真值,则右边的表达式求值为*,然后将其赋值给a


关于你的第二个问题: (e1) || (e2)有类似的语义:

整个表达式的计算结果为:

  • e1如果e1为真
  • e2如果e1是假的

<一口> <一口> 1>