(a = b)的含义== 0

时间:2016-07-26 09:49:29

标签: javascript

请阅读David Flanagan撰写的Javascript书本案例:

(a = b) == 0

但是我看不出这个的用法。可能是这样的吗?

var b = 0;
var a = b;
if (a == 0) ... 

由于

4 个答案:

答案 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)

这是简短形式。的意思是:

  1. 将b指定给
  2. 然后比较值。

答案 3 :(得分:0)

(a = b)b分配给a,并且还是表达式,其新值为a

所以(a = b) == 0是一个表达式,它将b分配给a,并将其关系相等性计算为0。

在C和C ++中,您经常会将其视为if (!(a = b))。有些人发现这种形式是混淆的,因为它是一块石头,远离相当不同的if(!(a == b))