翻转布尔变量的简写

Posted

技术标签:

【中文标题】翻转布尔变量的简写【英文标题】:Shorthand for flipping a boolean variable 【发布时间】:2012-12-08 00:22:12 【问题描述】:

如何在 javascript 中翻转布尔变量的值,而不必两次包含变量名? 所以

foobarthings[foothing][barthing] = !foobarthings[foothing][barthing];

没有写两次foobarthings[foothing][barthing]

【问题讨论】:

这其实很聪明。没想到 奇怪,考虑到foo++ 存在。不能有foo!!什么的吗? 【参考方案1】:

没有比你目前拥有的更短的方法了。

【讨论】:

这不完全正确,有not这样的操作符:ver inverse = return !foo;是完全有效的 @JacobSchneider 您发布的代码在语法上无效,并且 OP 已经展示了 ! 运算符的知识。【参考方案2】:

你可以这样做:

foo ^= 1

但这确实在 0 和 1 之间切换 foo,而不是 true 和 false。

【讨论】:

但是你可以这样做(foo ^= 1) == true(必须是== 不是 ===【参考方案3】:
var value = true;
alert(value);
value ^= true;
alert(value);​

你可以在这里得到 1 或 0

【讨论】:

这算不算短手【参考方案4】:

要在 JS 中翻转布尔变量的值,您需要如下语法:

return !foo;

真的就这么简单……

或者你可以做(foo ^= 1) == true(必须是==而不是===)

【讨论】:

问题是在做赋值和翻转布尔状态时避免重复名称。 我只使用一次变量名 用户想要将翻转后的值分配回相同的变量名,这个答案没有涵盖。【参考方案5】:

您可以在执行它或检查条件的地方只使用 foo 和 !foo。

【讨论】:

不,我需要在其中存储相反的值。

以上是关于翻转布尔变量的简写的主要内容,如果未能解决你的问题,请参考以下文章

翻转布尔值的最简单方法?

JavaScript 中的简写布尔逻辑

布尔逻辑运算符

在单CPU指令中可以在0和1之间翻转位/整数/布尔值的任何可能代码

什么是布尔变量,要如何使用?

布尔型变量是啥?