在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 而无需计算? @stureturn 1;
返回 number
类型。如果有人将返回值与===
或!==
运算符一起使用,他们将从!0
获得预期结果,但不会从1
获得预期结果。
@Kekoa stu 在说什么(如果我错了,请纠正我,在这里,stu)是一个 minifier 将优化 true
到 !0
和 false
到 !1
以保存带宽。这些表达式由浏览器的 JavaScript 实现内联计算,分别返回布尔值 true
和 false
,这就是它们通过严格相等 (===
) 测试的原因。以上是关于在javascript中使用“return!0”有啥意义吗?的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript 怎么快速声明一个数组,长度为 100,元素全是 0?