【问题标题】:Not clear on what this variable setting does: var a = !1 [duplicate]不清楚此变量设置的作用:var a = !1 [重复]
【发布时间】:2026-02-10 19:30:01
【问题描述】:

我看到了类似 b = !b 的解释。但我对它的理解还不够好,无法转换为这种用法。

做什么

var a = !1;    

做吗?

【问题讨论】:

  • 表示a就是false,其实没什么用。也许1 正在从服务器端输出?那么它可能有一些意义。
  • @bfavaretto 已保存 3 个字节。英雄。
  • 谢谢,我一直在尝试剖析代码以尝试更好地理解不同的编程方法,并且我已经看到很多 sn-ps 被证明是令人费解的方式做简单的事情。
  • ! 是一个逻辑非(!! 是一个否定运算符),所以如果你把 ! 放在一个值的前面,它将被“否定”到它的相反布尔值。 !true == false!!true == true!false == true 等。1 评估为布尔值true,所以!1 == false。当您需要某个非布尔表达式的布尔值时,它会更有用。

标签: javascript


【解决方案1】:

a = !1a = false 的简写方式。这通常在尝试压缩(缩小)JavaScript 时使用,因为它节省了三个字节。

如果您在普通的未缩小的 JS 中看到这一点,那么可能是有人懒惰或混淆了。

【讨论】:

  • 不仅节省了 3 个字节,还节省了 3 次击键。时间 === 金钱,有人很聪明! sarcastic-face.gif
  • @WesleyMurch:让其他开发人员不得不让 * 弄清楚你的两个字节是不明智的。
  • 也许我们被人控制了。
  • 别忘了!花费你一个额外的 Shift 键击。所以只保存了两次击键。
【解决方案2】:

在 chrome 开发工具中运行它,看看你会得到什么。

a 评估为 false,因为 1 是 javascript 中的 truthy 值,因此否定它会产生 false

也许读这个http://james.padolsey.com/javascript/truthy-falsey/。这很有趣:)

【讨论】:

    【解决方案3】:

    通常! 将反转其操作数的布尔值。

    所以如果afalse,那么!a 将是true,或者如果atrue,它将是false

    希望有帮助:)

    【讨论】:

      【解决方案4】:

      !not 运算符。因此! true 等于false。结果将是truefalse

      JavaScript 中的所有值要么是“真”,要么是“假”。这描述了它们在预期 booleantruefalse)的上下文中的解释。

      “真实”值示例:true、1、[]、{}、“文本”

      “假”值示例:false、0、“”

      !1 是一个真值的否定,它会被评估为假。 b = !btoggler,它会将值从 truthy 更改为 falsy,反之亦然。

      【讨论】:

        【解决方案5】:

        ! 运算符称为Logical NOT 运算符。

        简而言之,如果后面的值为 'truthy',则返回 false,否则返回 true

        由于1 是“真实的”,因此您的示例!1 读取为NOT 1,它将返回false

        【讨论】: