El impacto de la doble negación
La semana pasada, en un curso de JavaScript (ese querido lenguaje… jeje), estábamos analizando las librerías de diferentes frameworks (por encima).
Entre ellos, como no, echamos el ojo a la de MooTools y vimos esto:
function $chk(obj){
return !!(obj || obj === 0);
};
Lo que más nos extrañó fue la doble negación (el “===” triple igual se usa cuando quieres comparar valor y tipo de la variable), e indagando sucedió esto:
Pusimos en el firebug
alert(undefined) Salió Undefined
alert(!undefined) Salió True
alert(!!undefined) Tachán… salió False.
En resumen, lo pusieron para evitar que les saliera un “undefined” como una casa dependiendo del valor que le entrara a la función $chk(obj) .
Ya sabemos una cosa más… “!!undefined = False ”
Saludos!
