gpt4 book ai didi

javascript - 为什么js压缩器不这样做?

转载 作者:数据小太阳 更新时间:2023-10-29 05:47:05 26 4
gpt4 key购买 nike

我一直想知道为什么 js 压缩器不这样做。假设我有一个像这样的缩小脚本:

(function($){var a=$("a");1<a.length&&10>a.length?alert(a.length):alert($("p").length)})(jQuery);

为什么它不能编译成这样:

(function($,L){var a=$("a");1<a[L]&&10>a[L]?alert(a[L]):alert($("p")[L])})(jQuery,'length');

意思是用[minified key]改变每次出现的.property,并将字符串和arg接收器传递给iife (基本上是我在上面对 .length 所做的)

想象一下,这会将 jQuery 缩小多少 159 个 .length、62 个 .each、15 个 .appendChild 等等。只是 .length 本身就可以节省 600 多个字节!

同样使用上面的示例,当您可以通过声明另一个参数在该函数范围内保留空间时,为什么它会在 var 关键字上浪费空间:

(function($,L,a){a=$("a");1<a[L]&&10>a[L]?alert(a[L]):alert($("p")[L])})(jQuery,'length');

另外,既然我有你在,为什么不将整个 jQuery 放入一个 eval 中并节省另外 572 个 function 关键字 (4.5k)?

最佳答案

我想它不想假设除了属性查找之外您还需要变量查找的费用。

如果您使用 Closure Compiler,如果您手动操作,它实际上会撤消这些类型的引用。

最终,如果您使用 gzip,我认为这些混淆加起来并不多。如果在某些情况下它实际上使您的 gzip 版本更大,我不会感到惊讶。

关于javascript - 为什么js压缩器不这样做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8867274/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com