2011-05-30 64 views

回答

7

!!一个常见的方式是转换“truthy”或“falsey”变量为真正布尔值的常用方法。

例如:

var foo = null; 

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

第一!之后被施加到foo,返回的值是true。再次注意该值使其成为false,这意味着不输入if块内的代码。

+3

@为了清楚起见,也许“进入*真正的*布尔值”。 '!! 0'当然是一个* false *布尔值... – lonesomeday 2011-05-30 14:15:45

+0

@lonesomeday:好,赶快,谢谢。 – 2011-05-30 14:16:12

+0

那么为什么不只是'if(foo){}'?这不会也这样做吗? – 2011-05-30 14:18:28

8

!!只是双倍!

!true // -> false 
!!true // -> true 

!!是投东西布尔值

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