2011-05-30 7 views
6
diferencias

posible duplicado:
What is the !! operator in JavaScript?Javascript! y !!

¿Cuál es la diferencia entre estos dos operadores? Hace !! tiene un significado especial, o simplemente significa que estás haciendo dos '!' operaciones. Sé que hay conceptos de "Verdad" y "Verdad" en Javascript, ¡pero no estoy seguro si! es para "Verdad"

Respuesta

7

Escribir !! es una forma común de convertir un o "Falsey-" variable "Truthy" en un verdadero valor booleano .

Por ejemplo:

var foo = null; 

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

Después de la primera ! se aplica a foo, el valor devuelto es true. Observando que el valor nuevamente lo hace false, lo que significa que no se ingresa el código dentro del bloque if.

+3

@Para mayor claridad, quizás "en un * valor booleano * genuino". '! 0' es, por supuesto, un * booleano * false value ... – lonesomeday

+0

@lonesomeday: Buena captura, gracias. –

+0

¿Por qué no simplemente hacer 'if (foo) {}'? ¿No haría esto lo mismo? –

8

!! es solo el doble!

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

!! es una forma común de echar algo a valor booleano

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