这个感叹号在Javascript中意味着什么?

时间:2013-10-02 02:28:31

标签: javascript

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

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

编辑:上下文:

document.onmousedown = F;

7 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

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

如果你正在使用一个很好的缩小工具,你应该在生产中使用聪明的编程来节省几个字节。

答案 2 :(得分:1)

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

所以w被赋予真实

你的回报是假的

答案 3 :(得分:0)

在Javascript中0是假值,任何非零值都为真。 !是合乎逻辑的“不是”,因此!0是'非假'或'真',而!1是'不正确'或'假'。

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

答案 4 :(得分:0)

!是否定运算符。 !0是真的。 !1是假的。

答案 5 :(得分:0)

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

答案 6 :(得分:-1)

!表示“不是”。

您展示的示例没有多大意义,通常您可以使用此示例:

var visible = false;

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

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