Shorthand 反转布尔值的赋值运算符
Shorthand assignment operator for inverting boolean
基本算术运算符有shorthand个运算符,如:
x = x+2;
x += 2;
或
y = y*2;
y *= 2;
但是,我想知道是否有任何这样的运算符可以简单地反转布尔值。
例如,假设 z = true
,是否有更短的等价于:
z = !z;
我知道它不能只是 !z
,因为那样它只会 return z
的相反值,但它不会改变它的值。
我知道我有点懒,但我在我的代码中经常使用它,并且正在尝试尽可能地优化它。我会尽量避免重复变量名,以保持它更干净、更优雅。
此外,我正在 JavaScript 编码。
就我个人而言,我会以你的方式否定这件事。但如果它对你来说真的很重要,并且你可以放弃 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
基本算术运算符有shorthand个运算符,如:
x = x+2;
x += 2;
或
y = y*2;
y *= 2;
但是,我想知道是否有任何这样的运算符可以简单地反转布尔值。
例如,假设 z = true
,是否有更短的等价于:
z = !z;
我知道它不能只是 !z
,因为那样它只会 return z
的相反值,但它不会改变它的值。
我知道我有点懒,但我在我的代码中经常使用它,并且正在尝试尽可能地优化它。我会尽量避免重复变量名,以保持它更干净、更优雅。
此外,我正在 JavaScript 编码。
就我个人而言,我会以你的方式否定这件事。但如果它对你来说真的很重要,并且你可以放弃 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