关于操作符:javascript中!和!!

Javascript ! and !! differences

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
What is the !! operator in JavaScript?

这两个运算符有什么区别?做!!有特殊的意义,还是仅仅意味着你在做两个'!'操作。我知道javascript中有"真"和"真"概念,但我不确定是否存在!!代表"真相"


!!只是双倍!

1
2
!true // -> false
!!true // -> true

!!是将某些内容强制转换为布尔值的常用方法

1
2
!!{}  // -> true
!!null // -> false

编写!!是将"truthy"或"false"变量转换为真正布尔值的常用方法。

例如:

1
2
3
4
5
var foo = null;

if (!!foo === true) {
    // Code if foo was"truthy"
}

第一个!应用于foo后,返回值为true。如果再不输入该值,则会使其成为false,这意味着不输入if块内的代码。