如何切换布尔值?

有没有一种真正简单的方法来切换javascript中的布尔值

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

bool = bool ? false : true;
Itachi2020/04/03 11:22:16

我正在寻找一种执行相同操作的切换方法,但初始值nullundefined应该变为false

这里是:

booly = !(booly != false)
斯丁前端2020/04/03 11:22:16

让我们来看一下实际情况:

var b = true;

console.log(b); // true

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

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

无论如何,没有比您现在拥有的方法更短的方法了。

卡卡西Near2020/04/03 11:22:16
bool = bool != true;

其中一种情况。

小胖Gil2020/04/03 11:22:16
bool === tool ? bool : tool

如果您希望值在tool另一个布尔值相同的情况下保持true

Itachi2020/04/03 11:22:16

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

bool ^= true;   //- toggle value.


如果使用长的描述性布尔名称E​​G,则特别好:

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)

对于我来说,这比在每一行中重复变量要容易得多。

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

樱Near2020/04/03 11:22:16
bool = !bool;

在大多数语言中都适用。