JS ! 逻辑非 运算符
🌙
手机阅读
本文目录结构
逻辑非(!)
下面的代码是 ! (逻辑非) 运算符的示例。
n1 = !true // !t 返回 false
n2 = !false // !f 返回 true
n3 = !'' // !f 返回 true
n4 = !'Cat' // !t 返回 false
双重非(!!)运算符
可能使用双重非运算符的一个场景,是显式地将任意值强制转换为其对应的布尔值。
这种转换是基于被转换值的 “truthyness” 和 “falsyness"的(参见 truthy 和 falsy)。
同样的转换可以通过 Boolean 函数完成。
n1 = !!true // !!truthy 返回 true
n2 = !!{} // !!truthy 返回 true: 任何 对象都是 truthy 的…
n3 = !!(new Boolean(false)) // …甚至 .valueOf() 返回 false 的布尔值对象也是!
n4 = !!false // !!falsy 返回 false
n5 = !!"" // !!falsy 返回 false
n6 = !!Boolean(false) // !!falsy 返回 false