0

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

这是一个 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吗?

4

1 回答 1

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)
于 2013-05-28T15:59:36.100 回答