JavaScript 逻辑非运算符(!)

示例

逻辑NOT(!)运算符对表达式执行逻辑取反。

语法:

!expression

返回值:

  • 一个Boolean。

描述

逻辑NOT(!)运算符对表达式执行逻辑取反。

布尔值只需取反即可:!true === false和!false === true。
非布尔值首先转换为布尔值,然后取反。

这意味着可以使用双逻辑NOT(!!)将任何值强制转换为布尔值:

!!"FooBar" === true
!!1 === true
!!0 === false

这些都等于!true:

!'true' === !new Boolean('true');
!'false' === !new Boolean('false');
!'FooBar' === !new Boolean('FooBar');
![] === !new Boolean([]);
!{} === !new Boolean({});

这些都等于!false:

!0 === !new Boolean(0);
!'' === !new Boolean('');
!NaN === !new Boolean(NaN);
!null === !new Boolean(null);
!undefined === !new Boolean(undefined);

例子:

!true         // 假
!-1           // 假
!"-1"         // 假
!42           // 假
!"42"         // 假
!"foo"        // 假
!"true"       // 假
!"false"      // 假
!{}           // 假
![]           // 假
!function(){} // 假

!false        // 真正
!null         // 真正
!undefined    // 真正
!NaN          // 真正
!0            // 真正
!""           // 真正