08/12/2010, 05:17
|
| Me alejo de Omelas | | Fecha de Ingreso: mayo-2004 Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 6 meses Puntos: 834 | |
Respuesta: No entiendo esta sintaxis Cita:
Iniciado por zerokilled 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! |