如何切换布尔值?

2022-08-29 23:04:25

有没有一种非常简单的方法可以在javascript中切换布尔值?

到目前为止,除了编写自定义函数之外,我得到的最好的是三元:

bool = bool ? false : true;

答案 1
bool = !bool;

这在大多数语言中都是如此。


答案 2

如果您不介意将布尔值转换为数字(即 0 或 1),则可以使用按位异或分配运算符。这样:

bool ^= true;   //- toggle value.

如果您使用长的描述性布尔名称,这尤其好,例如:
let inDynamicEditMode   = true;     // Value is: true (boolean)
inDynamicEditMode      ^= true;     // Value is: 0 (number)
inDynamicEditMode      ^= true;     // Value is: 1 (number)
inDynamicEditMode      ^= true;     // Value is: 0 (number)

对我来说,这比在每行中重复变量更容易扫描。

此方法适用于所有(主要)浏览器(和大多数编程语言)。