3
function F() {
    w = !0;
    return !1
}

这是设置布尔变量的特殊方法吗?作者为什么这样做?

编辑:上下文:

document.onmousedown = F;
4

7 回答 7

2

这是不必要的能力的一个例子。下面的代码完全相同:

function F() {
    w = true; //w = !0;
    return false //return !1
}

如果您在生产中使用了一个好的缩小工具,那么节省几个字节的聪明编程就变得不必要了。

于 2013-10-02T02:42:59.917 回答
2

w是来自外部范围的变量。!0is truebut 只占用 2 个字节,所以我的猜测是作者想w在回调函数中设置为 true 并想保存字节。

于 2013-10-02T02:35:55.917 回答
1

感叹号是一个逻辑非运算符,它将这些值转换为布尔值并确保布尔类型

所以 w 被赋值为 true

你的回报是假的

于 2013-10-02T02:34:00.580 回答
0

在 Javascript 中,0 是一个假值,任何非零值都是真。!是逻辑“非”,“!0非假”或“真”也是如此,而!1“非真”或“假”也是如此。

至于作者为什么这样做 - 我不知道。

于 2013-10-02T02:33:24.003 回答
0

!是否定运算符。!0 为真。!1 是错误的。

于 2013-10-02T02:33:44.693 回答
0

是的,这是一种设置布尔值的方法。在这种情况下,函数将返回false,因为1可以计算为true,因此它的否定 ( !) 将计算为false

于 2013-10-02T02:33:53.507 回答
-1

!意思是“不”。

你展示的例子没有多大意义,通常你会使用它的地方是这样的:

var visible = false;

$('#link').click(function () {
   visible = !visible;
});

在上面的这种情况下,每次点击都会“切换”变量visible

于 2013-10-02T02:41:04.407 回答