关于javascript:如何切换布尔值?

How to toggle a boolean?

在javascript中是否有一种真正简单的方法来切换布尔值?

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

1
bool = bool ? false : true;

1
bool = !bool;

这在大多数语言中都适用。


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

1
bool ^= true;   //- toggle value.

如果使用长的描述性布尔名称,例如:

1
2
3
4
var inDynamicEditMode   = true;     // Value is: true (boolean)
inDynamicEditMode      ^= true;     // Value is: 0 (number)
inDynamicEditMode      ^= true;     // Value is: 1 (number)
inDynamicEditMode      ^= true;     // Value is: 0 (number)

这比在每行中重复变量更容易扫描。

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


1
bool = bool != true;

其中一个案例。


让我们看看它的作用:

1
2
3
4
5
6
7
8
9
var b = true;

console.log(b); // true

b = !b;
console.log(b); // false

b = !b;
console.log(b); // true

不管怎样,没有比现在更短的方法了。


我在寻找一种切换方法,除nullundefined的初始值外,其他方法都是一样的,它应该变成false

这里是:

1
booly = !(booly != false)

1
bool === tool ? bool : tool

如果希望值保持为真,则如果tool(另一个布尔值)具有相同的值