我是 javascript 的新手,我正在努力理解它。
以下 JavaScript 代码片段来自文件 vishEditor.js项目简介Vish ,整个文件有3万多行,所以我把神奇的部分切成了一个小文件magic-javascript.js .
eval(function(p, a, c, k, e, r) {
e = function(c) {
return (c < a ? "" : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36))
};
.......
}
return p
}("(D($){8($.1s.1v){H}$.1s.6i=$.1s.1v=D(u,w){8(1l.S==0){18(J,'6j 55 6k 1j \"'+1l.4o+'\".');H 1l}8(1l.S>1){H 1l.1W(D(){$(1l).1v(u,w)})}F y=1l,$12=1l[0],56=L;8(y.1q('57')){56=y.1P('3o','4p');y.T('3o',['4q',J])}F z={};z.59=D(o,a,b ......
我有两个问题:
(1) 当我运行项目 vish
时,函数 eval(function(p, a, c,k,e,r){}();
被调用了,但我不知道该函数的具体目标,为了测试,我删除了这个函数并重新启动它,它似乎工作正常。我很困惑这个神奇的函数是用来做什么的?
(2) 中有一个以 ("(D($){8($.1s.1v){H}$.1s.6i=$.
开头的非常大的魔法代码here,它的含义是什么以及如何创建这样一个神奇的代码?
欢迎留言!
最佳答案
这是经过缩小和混淆的文件。你不能(或者这样调试非常非常困难)。在这里阅读更多相关信息:
http://www.programmerinterview.com/index.php/javascript/minification-vs-obfuscation/
关于javascript - 如此神奇的 JavaScript 代码有何用途以及它是如何创建的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29252369/