【问题标题】:Minify and variable names缩小和变量名
【发布时间】:2012-09-27 22:38:12
【问题描述】:

我知道缩小负责删除:空白字符、换行符、cmets,有时还有块分隔符。不久前我读到它还负责缩短变量名。但我一直认为这是混淆的一部分。我对吗?或者现在缩小库也包含这样的功能?

【问题讨论】:

    标签: javascript obfuscation minify


    【解决方案1】:

    嗯,既然缩小的目的是尽可能地减少代码的大小,重命名变量是一种有效的方法。

    JavaScript 压缩器经常使用的一个技巧是将代码包装在一个立即执行的函数中,并带有很多参数:

    (function(a,b,c,d,e,f,g){/* ... */})();
    

    这使得使用这些变量而不用var 关键字声明它们成为可能,从而将代码的大小减少了三个字节乘以var 关键字的数量。

    现代缩小器使用许多这些高级技巧来减少代码的大小,代码看起来被混淆只是缩小的副产品。

    【讨论】:

    • 我真的不会说三个字节。首先“var”包含 4 个字符,计算空格。其次,我们还必须考虑“功能”和括号以及所有内容。最后,在 javascript 中,我们可以声明多个值,而无需每次都使用 var 关键字,如下所示: var a,b,c;这比你写的方法要短。话虽如此,我还没有真正研究过缩小器。
    • 有什么方法可以让我通过查看 java 脚本文件来判断它是否被缩小或混淆或两者兼而有之?问题是混淆器还会更改变量名称以减小文件大小,例如temp 变为 t。如今,缩小器也在使用同样的技术。所以这让我想知道混淆器提供了哪些额外的功能?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 2015-04-16
    • 1970-01-01
    • 2012-02-07
    相关资源
    最近更新 更多