是否有一个真正简单的方法来切换一个布尔值在javascript?
到目前为止,除了编写自定义函数之外,我得到的最好的方法是三元函数:
bool = bool ? false : true;
是否有一个真正简单的方法来切换一个布尔值在javascript?
到目前为止,除了编写自定义函数之外,我得到的最好的方法是三元函数:
bool = bool ? false : true;
当前回答
这是一个老问题,但我认为ES6的更新会很好。
通常,我们需要一个可以处理所有事情而不破坏代码的切换。
我们可以将null或未定义值的初始值作为false。
const boolToggler = b => !假) 让foo Console.log ('foo:', foo) //未定义 foo = boolToggler(foo) Console.log ('foo:', foo) // true(假设未定义为'false') foo = boolToggler(foo) console.log (foo:, foo);/ /错误 Let fee = null Console.log ('fee:', fee) // null fee = boolToggler(fee) Console.log ('fee:', fee) // true(假设null为'false') Let faa = true Console.log ('faa:', faa) // true faa = boolToggler(faa) console.log (faa:, faa);/ /错误
其他回答
在你可能将true / false存储为字符串的情况下,例如在localStorage中,协议在2009年翻转为多对象存储,然后在2011年才翻转回字符串-你可以使用JSON。解析来解释布尔值:
this.sidebar = !JSON.parse(this.sidebar);
我在寻找一个切换方法,做同样的事情,但“切换”null或未定义的初始值为假。
下面就是:
booly = !(booly != false)
这是一个老问题,但我认为ES6的更新会很好。
通常,我们需要一个可以处理所有事情而不破坏代码的切换。
我们可以将null或未定义值的初始值作为false。
const boolToggler = b => !假) 让foo Console.log ('foo:', foo) //未定义 foo = boolToggler(foo) Console.log ('foo:', foo) // true(假设未定义为'false') foo = boolToggler(foo) console.log (foo:, foo);/ /错误 Let fee = null Console.log ('fee:', fee) // null fee = boolToggler(fee) Console.log ('fee:', fee) // true(假设null为'false') Let faa = true Console.log ('faa:', faa) // true faa = boolToggler(faa) console.log (faa:, faa);/ /错误
让我们来看看实际情况:
Var b = true; console.log (b);/ /正确的 B = ! console.log (b);/ /错误 B = ! console.log (b);/ /正确的
无论如何,没有比你现在拥有的更短的路了。
bool = bool != true;
其中一个案例。