Javascript语法:a!= b&& (c = b)

时间:2013-01-23 11:00:51

标签: javascript syntax

我不是JavaScript中的大师。 我看到了这种语法: a != b && (c = b); 有人可以向我解释一下吗?

提前致谢

5 个答案:

答案 0 :(得分:3)

如果a != b,请将b分配给c,如果c真实,则返回c

答案 1 :(得分:2)

如果a不等于b,请将b分配给c

此处右侧不会评估左侧是否为true

答案 2 :(得分:1)

在您的示例中,结果将是a != b,然后将b分配给c。不处理c是否真实的评估(在此示例中)。

由于操作员短路,此语句的作用类似于简短的if语句。

当使用逻辑AND &&时,这意味着如果AND的左侧是false,那么AND的右侧将不会被评估。因此,可以滥用逻辑AND来形成一种简短的if语句。对于逻辑OR,这也会发生相反的情况,如果左侧评估为true,则不会评估右侧(因为它不会改变整体结果)。你会发现这个运算符在C,JavaScript和Java等语言中短路怪癖。

答案 3 :(得分:0)

如果变量a不等于变量b,请将变量b分配给变量c

答案 4 :(得分:0)

应该写成:

if (a != b) {
  c = b;
}

代码使用&&运算符的短路进行流控制(即表达式的第二部分仅在第一部分为真时进行求值),然后使用赋值也是表达式的事实能够在表达式中进行赋值,并忽略表达式的值。