2011-09-17 24 views
17

Duplicar posible:
What is the !! operator in JavaScript?
What does !! (double exclamation point) mean?¿Qué significa la doble exclamación? ¿significa el operador?

Voy a través de algún código JavaScript personalizado en mi lugar de trabajo y no soy capaz de entender que el siguiente ejemplo.

var myThemeKey = (!!$('row') && $('row').hasClassName('green-theme')) ? 'green' : 'white'; 

entiendo todo en la línea anterior, excepto !! operador. Supongo que es un operador NOT y NOT de NOT es el valor original, pero ¿por qué alguien haría un NOT de NOT?

¿Alguien puede ayudarme a entender qué está sucediendo en la línea de código anterior?

+0

http://stackoverflow.com/questions/784929/what-is-the-operator-in-javascript –

+0

Repetición de http://stackoverflow.com/questions/784929/what-is-the-operator-in -javascript –

+0

http://stackoverflow.com/questions/784929/what-is-the-operator-in-javascript – Josh

Respuesta

44

El !! asegura que el tipo resultante sea un booleano (verdadero o falso).

javascript:alert("foo") ->foo

javascript:alert(!"foo") ->false

javascript:alert(!!"foo") ->true

javascript:alert(!!null) ->false

Ellos hacen esto para asegurarse de que no es $('row') nulo.

Es más corto de escribir que $('row') != null ? true : false.

+1

Gracias ... La respuesta realmente ayuda .. – stirfries