2013-01-23 138 views
-2

我并不是真正的JavaScript专家。 我看到了这样的语法: a != b && (c = b); 有人可以向我解释这个吗?Javascript语法:a!= b &&(c = b)

在此先感谢

+2

最基本的教程会告诉你这个...虽然,它可能是一个typoo? –

+0

对不起,但我的代码有点,我从来没有看到逻辑AND做一个如果...如果你可以链接我一个教程,你找到它,我将不胜感激! – Gadcam

+0

查找'短路评估'。 –

回答

3

如果a != b,则将b指定为c,如果c为真,则返回c

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

该代码使用&&操作者对流动的短路:

+0

感谢您的帮助! (我也感谢其他人......) – Gadcam

2

如果a不等于b,然后分配给bc

这里的右侧将不会评估,如果左侧不是true

0

如果变量a不等于变量b,分配可变b到可变c

0

作为它而应被写入控制(即表达式的第二部分只在第一部分为真时才被评估),然后它使用这样一个事实:赋值也是一个表达式,可以在表达式中进行赋值,并忽略表达式的值。

1

在您的示例中,如果a != b然后将b指定为c,结果将为。没有处理对c是否真的评估(在本例中)。

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

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

相关问题