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 |
不管怎样,没有比现在更短的方法了。
我在寻找一种切换方法,除
这里是:
1 | booly = !(booly != false) |
1 | bool === tool ? bool : tool |
如果希望值保持为真,则如果