“使用”有什么意义吗;回来!0“;用javascript?

“使用”有什么意义吗;回来!0“;用javascript?,javascript,minify,Javascript,Minify,如果转到google结果页,并运行rwt.toString(),您将看到此函数的返回调用是: return !0; 我想不出任何理由为什么这不总是正确的。这只是true的简写,还是这里还有更多的内容?这总是正确的,但下载布尔值true需要2个字节(!0是2个字符),而不是4个字节 大多数Javascript迷你程序将true转换为!0和false to!1。您可以通过键入var y=true来查看此示例在谷歌的闭包编译器上进行了简单的优化:但是下载1只需要1个字节。返回1;也会很有效,不是吗?

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

return !0;

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

这总是正确的,但下载布尔值
true
需要2个字节(
!0
是2个字符),而不是4个字节


大多数Javascript迷你程序将
true
转换为
!0
和false to
!1
。您可以通过键入
var y=true来查看此示例在谷歌的闭包编译器上进行了简单的优化:

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