在javascript中使用“return!0”有啥意义吗?

Posted

技术标签:

【中文标题】在javascript中使用“return!0”有啥意义吗?【英文标题】:Is there any point of using "return !0" in javascript?在javascript中使用“return!0”有什么意义吗? 【发布时间】:2012-02-03 17:25:38 【问题描述】:

如果您转到 google 结果页面并运行 rwt.toString(),您会看到该函数的返回调用是:

return !0;

我想不出为什么这不总是true。这只是true 的简写,还是这里还有更多内容?

【问题讨论】:

【参考方案1】:

总是如此,但下载布尔值 true 需要 2 个字节(!0 是 2 个字符)而不是 4 个字节。

大多数 javascript 压缩器会将 true 转换为 !0 并将 false 转换为 !1。您可以通过在 Google 的 Closure Compiler 上输入带有 Simple optimizations 的 var y = true; 来查看示例:http://closure-compiler.appspot.com/home

【讨论】:

但是下载1只需要1个字节。返回1;本来也可以的,不是吗?非零,我们都知道你不测试真,你测试不假。 这很有趣。大多数 javascript 实现是否将 !0 和 !1 优化为 true 和 false 而无需计算? @stu return 1; 返回 number 类型。如果有人将返回值与===!== 运算符一起使用,他们将从!0 获得预期结果,但不会从1 获得预期结果。 @Kekoa stu 在说什么(如果我错了,请纠正我,在这里,stu)是一个 minifier 将优化 true!0false!1 以保存带宽。这些表达式由浏览器的 JavaScript 实现内联计算,分别返回布尔值 truefalse,这就是它们通过严格相等 (===) 测试的原因。

以上是关于在javascript中使用“return!0”有啥意义吗?的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 怎么快速声明一个数组,长度为 100,元素全是 0?

不得不说的“return 0;”

倒计时代码

在 C++ 程序的主函数中,`return 0` 是啥意思? [复制]

Javascript 日期格式化 相关操作

函数在`if`的分支中返回与`if`之外,在C++中