gpt4 book ai didi

javascript - 如何在不使用 eval() 的情况下以 Base62 编码压缩 JavaScript 代码?

转载 作者:行者123 更新时间:2023-11-28 02:26:13 25 4
gpt4 key购买 nike

我用了this javascript compressor并选中“Base62 编码”。我注意到它所做的第一件事是将所有内容都包含在 eval() 函数中(这是有道理的),但我真的想避免使用它。还有其他选择吗?就像立即调用的函数表达式一样?

编辑:

我想压缩我的代码,因为有大量用于特征检测的条件if。 (我不使用 Modernizr 的原因是因为我不想为我正在做的事情加载整个库),并且 if 很丑陋。 (另外我是 javascript 的新手,我宁愿学习 javascript 比学习 Modernizr)。

最佳答案

您可以将 eval(...) 替换为 new Function(...)(),如下所示:

new Function(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('2(a.6){3.4("5")[0].1+=" 6"}2(b.7){3.4("5")[0].1+=" 7"}2(8.9){3.4("5")[0].1+=" 9"}2(8.c){3.4("5")[0].1+=" d"}',14,14,'|className|if|document|getElementsByTagName|html|opacity|touch|html5|webworkers|css3|has|audio|html5audio'.split('|'),0,{}))()

这并不是真正的改进,但它避免了使用 eval。

关于javascript - 如何在不使用 eval() 的情况下以 Base62 编码压缩 JavaScript 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14898951/

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