请阅读David Flanagan撰写的Javascript书本案例:
(a = b) == 0
但是我看不出这个的用法。可能是这样的吗?
var b = 0;
var a = b;
if (a == 0) ...
由于
答案 0 :(得分:4)
您的解释是正确的。赋值返回指定的值。
它只是将b
分配给a
。如果b
(因此a
)为0,则条件为真。
答案 1 :(得分:1)
按此顺序评估:
(a = b) == 0
-------
^ assign the value of b to a
------------
Check if the value of a equals 0
它与以下相同:
a = b;
if (a == 0) {
// do something
}
它只是一个较短的版本。不要忘记声明变量,否则它们将被附加到全局命名空间。
答案 2 :(得分:0)
这是简短形式。的意思是:
答案 3 :(得分:0)
(a = b)
将b
分配给a
,并且还是表达式,其新值为a
。
所以(a = b) == 0
是一个表达式,它将b
分配给a
,并将其关系相等性计算为0。
在C和C ++中,您经常会将其视为if (!(a = b))
。有些人发现这种形式是混淆的,因为它是一块石头,远离相当不同的if(!(a == b))
。