在Javascript中奇怪地使用"for"循环,请解释

nie*_*te3 3 javascript for-loop cycle

我发现这个奇怪的JavaScript我无法理解.for循环有一个奇怪的语法(很多参数),你能解释一下它是如何工作的吗?谢谢

decode: function(s){
        for(var a, b, i = -1, l = (s = s.split("")).length, o = String.fromCharCode, c = "charCodeAt"; ++i < l;
            ((a = s[i][c](0)) & 0x80) &&
            (s[i] = (a & 0xfc) == 0xc0 && ((b = s[i + 1][c](0)) & 0xc0) == 0x80 ?
            o(((a & 0x03) << 6) + (b & 0x3f)) : o(128), s[++i] = "")
        );
        return s.join("");
    }
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 5

这是一个普通的for循环,但var在第一部分中有一个很长的陈述.

就像

var a, b, c;
Run Code Online (Sandbox Code Playgroud)

for循环中的迭代器语句也包含许多操作,而不是实际拥有主体的循环.

这个函数是由一个可怕的程序员编写的,不考虑可读代码,或者它是故意缩小和混淆的.

  • @SLaks你错了.一个优秀的程序员不会在那里设置所有这些变量.一个优秀的程序员关心可读性. (2认同)