div attribute javascript

javascript - attribute - title html



¡Qué hace la doble exclamación! operador significa? (1)

Posible duplicado:
Cuál es el !! operador en JavaScript?
Que hace !! (doble signo de exclamación) significa?

Estoy revisando un código JavaScript personalizado en mi lugar de trabajo y no puedo entender el siguiente constructo.

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

Entiendo todo en la línea de arriba 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 ?

¿Puede alguien ayudarme, por favor, a entender lo que está sucediendo en la línea de código anterior?


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

javascript:alert("foo") -> foo

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

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

javascript:alert(!!null) -> false

Hacen esto para asegurarse de que $(''row'') no sea nulo.

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