2012-01-05 103 views

回答

44

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

大多数Javascript minifiers会将true转换为!0,并将其转换为!1。您可以通过在Google Closure Compiler上输入var y = true;并进行简单优化来看到一个示例:http://closure-compiler.appspot.com/home

+1

但是,它只需要1个字节即可下载1. return 1;本来会工作的,不是吗?非零,我们都知道你不测试为真,你测试不是错误的。 – stu 2012-01-05 21:34:28

+0

这很有趣。大多数JavaScript实现优化!0和!1为true和false而不计算? – Kekoa 2012-01-05 21:41:34

+5

@stu'return 1;'返回'number'类型。如果有人使用'==='或'!=='运算符的返回值,他们会从'!0'得到预期的结果,但不会从'1'得到预期的结果。 – Paulpro 2012-06-22 16:58:20

相关问题