Web BizarroWeb Bizarro

Suscríbete a nuestro Newsletter

X

Únete a nuestra lista de correos para recibir semanalmente actualizaciones de nuestro contenido.

JavaScript vete a casa, estas borracho

JavaScript vete a casa, estas borracho 14.MAY.14

Alvaro José Rios Ch
Fundador WebBizarro

JavaScript es un lenguaje que se ha popularizado mucho actualmente, actualmente muchos de los sitios web en internet usan JavaScript de alguna manera. Los avances en los motores como V8 pusieron a JavaScript del lado del servidor permitiendo crear aplicaciones en tiempo real con NodeJS, pero la verdad es que JavaScript es como ese amigo loco que se emborracha en las fiestas y tienes que llevarlo a casa destruido.

Hay muchas cosas en el lenguaje que te hacen pensar ¿Cómo este lenguaje ha llegado hasta aquí?, una simple comparación que debería tener un resultado obvio te da una respuesta que te hace dudar.

NaN === NaN

Lo lógico es que esto sea true, pero hay cosas que simplemente no son lógicas para JavaScript NaN y NaN son diferentes, sin embargo JavaScript no esta mal, el estandar IEEE 754 para el manejo de números con punto flotante especifica que dos NaN no pueden ser iguales.

Otra cosa extraña con la que debemos tener cuidado es la siguiente

var date = new Date();
date.setYear(2014);
date.setMonth(5);
date.setDate(13);

Si pones esto la respuesta esperada es 13 Jun 2014 (recuerda que los meses se cuentan desde 0), sin embargo hay un caso particular aquí, si hacemos esto un día 31 de cualquier mes el resultado sera 13 Jul 2014.

La razón muy simple cuando asignamos el mes sin el número del día el objeto Date toma como el número del día la fecha actual y el 31 de Junio no existe por lo que se salta al mes siguiente en el que la fecha exista.

Si quieren aprender más de JavaScript y no ser sorprendidos con algún comportamiento extraño entonces pueden ver este sitio donde encontraran problemas en JavaScript con respuestas que los pueden sorprender.