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

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

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

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

【问题讨论】:

  • 这其实很聪明。没想到
  • 奇怪,考虑到foo++ 存在。不能有foo!!什么的吗?

标签: javascript boolean flip shorthand


【解决方案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。

【讨论】:

  • 不,我需要在其中存储相反的值。
猜你喜欢
  • 2010-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-16
  • 2011-03-30
  • 1970-01-01
  • 1970-01-01
  • 2019-11-10
相关资源
最近更新 更多