【问题标题】:What does !1 and !0 mean in Javascript? [duplicate]!1 和 !0 在 Javascript 中是什么意思? [复制]
【发布时间】:2012-07-18 21:31:02
【问题描述】:

可能重复:
return !1 in javascript

在我今天必须阅读的一个 JavaScript 文件中,有一行变量被声明为阶乘,如下所示:

var myVariable = !1;

然后类似的东西被用作这样的函数中的参数:

return variable.myFunction(!0);

谁能解释一下感叹号在这种情况下的含义,以及为什么这通常用于(好处)?

提前谢谢你!

【问题讨论】:

  • 它不是阶乘,它是一个布尔 negation 运算符。将true 变成false,反之亦然。可能会将其他非零的东西变成零?
  • 那是可怕的代码。它会抛出ViolentPsychopathKnowsWhereYouLiveException吗?
  • 看到这个问题的标题,我忍不住笑了。我不得不点击它。 SMH 给像这样编码的人。
  • 我猜原因是程序员非常关心可以通过这种方式保存的那几个字节——但这不是一个好习惯。

标签: javascript


【解决方案1】:

!是布尔 NOT 运算符。

NOT (!):将语句从 true 切换为 false 或从 false 切换为 true。

!0 = true
!1 = false

This 是对布尔运算符及其在 javascript 中的使用的精彩介绍。

【讨论】:

  • 这是一种缩小真假值的技术
  • 为什么不使用!true!false,因为这样可以节省脚本的下载大小?
  • @Legends,是的,因为 JS 按原样通过网络传输并在客户端运行。
  • 补充说明:为什么不简单地使用01?是否要确保在缩小过程之后仍然清楚它们是boolean 而不是int
  • @don 正确 - 添加 ! 运算符将 0 和 1 从 int 强制转换为 boolean
猜你喜欢
  • 2018-09-25
  • 1970-01-01
  • 1970-01-01
  • 2016-12-03
  • 2015-05-27
  • 2015-07-15
  • 2018-07-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多