javascript - !0 和 !1 比 1 和 0 好吗?

标签 javascript

我注意到 Closure Compiler 将 true 和 false(或 1 和 0)编译为 !0 和 !1。这对我来说没有意义,因为它的字符数是 1 和 0 的两倍。这是有原因的吗?有什么好处吗?

谢谢。

最佳答案

1 !== true0 !== false,但是 !0 === true!1 = == 错误。编译器只是确保类型保持 bool 值。

考虑这个例子:

var a = true;

if( a === true ) {
    console.log( 'True!' );
}

if( a === 1 ) {
    console.log( 'You should never see this.' );
}

如果将第一行更改为 var a = 1;,第一个条件将为假,第二个为真。使用 var a = !0; 脚本仍然可以正常工作。

关于javascript - !0 和 !1 比 1 和 0 好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15446749/

相关文章:

javascript - 不同分支上的组件如何互相更新

javascript - 使用 TypeScript 接口(interface)在 JS 代码中进行运行时验证

javascript - express.js - session 访问中间件不工作

javascript - Css 转换无法正常工作

javascript - 将快照中的所有 Firestore 时间戳转换为 JS 日期的方法?

javascript - 下拉菜单不与 Slick Gallery 重叠

javascript - 无法从浏览器调试 Node js 应用程序

javascript match 获取所有带有数字的类名

javascript - PrimeNg 编辑器未显示 - Angular

javascript - 禁用提交按钮,直到至少选中一个复选框