我不是JavaScript中的大师。
我看到了这种语法:
a != b && (c = b);
有人可以向我解释一下吗?
提前致谢
答案 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;
}
代码使用&&
运算符的短路进行流控制(即表达式的第二部分仅在第一部分为真时进行求值),然后使用赋值也是表达式的事实能够在表达式中进行赋值,并忽略表达式的值。