Are*_*k S 20 javascript minify uglifyjs
我正在使用Enyo2编写一个应用程序,它带有一个基于UglifyJS的缩小工具.我注意到了:
var t = false
Run Code Online (Sandbox Code Playgroud)
被替换为
var t=!1
Run Code Online (Sandbox Code Playgroud)
同样的方式将被替换为!0.我确信有一个很好的解释,我找不到它.任何的想法?
Jas*_*son 17
它是表达价值的最小的非模糊方式.
true在线上使用4个字符并false使用5个字符. !1并 !0使用2个字符.
在JavaScript中,0是一个假值.这意味着0等于false表示为布尔类型时.另一方面是1; 或者任何其他正数,不是假值,而是等同于true.
在这里我们可以设置:
t = 0; // false
t = 1; // true
Run Code Online (Sandbox Code Playgroud)
这个问题是这些值是整数(数字)而不是布尔值(真或假).使用严格的相等检查(===)我们会发现:
t = 0;
t == false; // true
t === false; // false
Run Code Online (Sandbox Code Playgroud)
该!运营商执行的价值逻辑非操作,并且可以作为一种快速的任何值转换为布尔值:
t = !1;
t == false; // true
t === false; // true
Run Code Online (Sandbox Code Playgroud)
性能方面,和之间并没有太大区别,但是在缩小术语中,这会将我们的JavaScript减少7个字节,从而可以更快地下载它.if (!t)if (t == true)
| 归档时间: |
|
| 查看次数: |
4085 次 |
| 最近记录: |