【发布时间】:2012-07-21 05:01:34
【问题描述】:
有没有一种非常简单的方法可以在 javascript 中切换布尔值?
到目前为止,除了编写自定义函数之外,我最好的方法是三元:
bool = bool ? false : true;
【问题讨论】:
标签: javascript boolean toggle
有没有一种非常简单的方法可以在 javascript 中切换布尔值?
到目前为止,除了编写自定义函数之外,我最好的方法是三元:
bool = bool ? false : true;
【问题讨论】:
标签: javascript boolean toggle
bool = !bool;
这适用于大多数语言。
【讨论】:
bool = !bool || true; 以获得默认值。
如果您不介意将布尔值转换为数字(即 0 或 1),则可以使用 the Bitwise XOR Assignment Operator。像这样:
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)
这对我来说比在每一行中重复变量更容易扫描。
此方法适用于所有(主要)浏览器(和大多数编程语言)。
【讨论】:
bool ^= 1
bool === false 或bool === true。它可能会破坏现有代码,所以要小心。
bool = bool != true;
其中一种情况。
【讨论】:
bool === tool ? bool : tool
如果tool(另一个布尔值)具有相同的值,您希望该值保持为真
【讨论】:
让我们看看实际效果:
var b = true;
console.log(b); // true
b = !b;
console.log(b); // false
b = !b;
console.log(b); // true
【讨论】:
我正在寻找一种切换方法,它的作用相同,但它会将初始值 null 或 undefined 切换为 false。
这里是:
booly = !(booly != false)
【讨论】:
如果您可能将 true/false 存储为字符串,例如在 localStorage 中,该协议在 2009 年翻转为多对象存储,然后仅在 2011 年翻转回字符串 - 您可以使用 JSON.parse 来解释动态布尔值:
this.sidebar = !JSON.parse(this.sidebar);
【讨论】:
sidebar = (sidebar == trueValue) falseValue : trueValue;
我一直喜欢布尔值,但现在我使用二进制是为了方便和调试。您可以使用 de consept !key : ++key: --key 进行切换,如果您在任何异步函数中或任何时候发生错误或假真,该值将从 0(零)/ 1(一)泄漏,您可以触发警报以稍后调试。
【讨论】:
bool = !0; //true
bool = !1; //false
【讨论】: