用于反转布尔值的简写赋值运算符

时间:2016-01-24 02:42:07

标签: javascript assignment-operator shorthand

基本算术运算符有简写运算符,例如:

x = x+2;
x += 2;

y = y*2;
y *= 2;

但是,我想知道是否有任何这样的运算符可以简单地反转布尔值。

例如,假设z = true,是否有更短的等同于:

z = !z;

我知道它不能只是!z,因为它只返回z的相反值,但它不会改变它的值。

我知道我有点懒,但我在代码中使用了很多,并且尽可能地优化它。我会尽量避免重复变量名称,以使其更清晰,更优雅。

另外,我用JavaScript编码。

1 个答案:

答案 0 :(得分:2)

就我个人而言,我会以你的方式否定这件事。但是如果它对你真的很重要,并且你可以放弃boolean类型,只需使用数字内部表示(true == 1,false == 0)和按位运算符来否定它:

z = true;  // z is type boolean
z ^= 1;    // z is now false, but its type is number
           // (z == false) evaluates to true and you can still do things like if (z)...
z ^= 1;    // z is now true again