Ver Mensaje Individual
  #10 (permalink)  
Antiguo 08/12/2010, 05:17
Avatar de Panino5001
Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: No entiendo esta sintaxis

Cita:
Iniciado por zerokilled Ver Mensaje
depende el contexto. false es un boolean mientras que null es un tipo de objeto (si, aunque no lo creas, ver al final). al javascript ser un lenguaje sin declaracion de tipo de variable, los tipos de datos estan sujeto a coercion, o lo mismo que conversion de tipos. esto sucede cuando una instruccion (statement) requiere que el valor sea de un tipo especifico o cuando una expresion tiene que evaluar diferentes tipos de operandos. en este caso particular donde null es la condicion del operador ternario, el operador requiere un boolean, y por tanto null es convertido a false. pero eso no significa que null en si sea false, porque de lo contrario false tambien podria ser null, cosa que no sucede.


"ver para creer"
¿les suena la expresión? null significa nulo, que no tiene valor pese a que es un objeto. curiosamente, null produce un resultado distinto a los objetos cuando se realiza una conversion. eso es porque null es un tipo de objeto especial.
Código:
alert(typeof null); // 'object' ;
alert(Boolean(null)); // false ;
alert(Number(null)); // 0 ;
alert(String(null)); 'null' ;

alert(typeof {}); // 'object' ;
alert(Boolean({})); // true ;
alert(Number({})); // NaN ;
alert(String({})); // '[object Object]' ;
Excelente!