逻辑非(!)
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
逻辑非(!
,逻辑连接取反)运算符将真值或假值转换为对应的相反值,经常用于布尔(逻辑)值。当与非布尔值使用时,如果其操作数可以转化为 true
,则返回 false
,否则返回 true
。
尝试一下
语法
js
!expr
描述
示例
使用非运算符
下列代码展示了 !
(逻辑非)运算符的用法。
js
!true; // !t returns false
!false; // !f returns true
!""; // !f returns true
!"Cat"; // !t returns false
双非运算符(!!
)
可以使用几个非运算符串联起来,明确地强制将任何值转换为相应的布尔基本类型。这种转换是基于值的“真实性”或“虚假性”(详见真值和假值)。
也可以使用 Boolean
函数完成转换。
js
!!true; // !!truthy returns true
!!{}; // !!truthy returns true: any object is truthy...
!!new Boolean(false); // ...even Boolean objects with a false .valueOf()!
!!false; // !!falsy returns false
!!""; // !!falsy returns false
!!Boolean(false); // !!falsy returns false
非运算符转换
下述涉及到布尔值的运算:
js
!!bCondition
总是与此表达式相同:
js
bCondition
规范
Specification |
---|
ECMAScript Language Specification # sec-logical-not-operator |
浏览器兼容性
BCD tables only load in the browser