某些行的JS逻辑解释

时间:2013-05-28 15:51:53

标签: javascript minify deobfuscation

有人可以解释一下这些线背后的逻辑吗?

这是一个onkeyup事件。我不知道r的价值。

return $("#commentText").val() ?
(0==r&&(r=!0,setTimeout( function(){r=!1},1e4),socket.emit('status', connectiondetails)),void 0)
: !1

独立r=!0有什么作用? function(){r!=1}做了什么?

什么是!1作为返回值?

!1 == false

1 个答案:

答案 0 :(得分:1)

这看起来是混淆或缩小的代码。

return $("#commentText").val() ?
(0==r&&(r=!0,setTimeout( function(){r=!1},1e4),socket.emit('status', connectiondetails)),void 0)
: !1

成为(尽我所能):

if ($("#commentText").val()) {
    if(0==r) {
        r = true;
        setTimeout( 
            function(){ r = false},1000
        );
        socket.emit('status', connectiondetails)
    }
}
else {
    return false;
}

使用了一些映射:

true        -> !0     (saves 2 characters)
false       -> !1     (saves 3 characters)
if(x) { y } -> x && y (saves 5 characters)
1000        -> 1e4    (saves 1 character)