miércoles, 8 de junio de 2011

10 cosas de Javascript que (seguramente) no sabías y te sorprenderán

Javascript, el lenguaje de programación interpretado del lado del cliente más importante de la actualidad. Su potencial es muy grande pero, a su vez, guarda en su interior una serie de sorpresas y curiosidades bastante llamativas. Si quieres profundizar más, date un paseo por el artículo fuente de Smashing Magazine.

  • Null es un objeto (desde luego, paradójico)
alert(typeof null); //alerts 'object'

  • NaN es un número (otra paradoja más y el universo implosiona)
alert(typeof NaN); //alerts 'Number'

  • array() False es True
alert(new Array() == false); //evaluates true

  • La función replace() acepta como parámetro funciones callback
alert('10 13 21 48 52'.replace(/\d+/g, '*')); //replace all numbers with *

  • Las expresiones regulares se pueden testear con test() además de con match()
alert(/\w{3,}/.test('Hello')); //alerts 'true'

  • Puedes falsear el alcance de una variable o función (algo muy útil la verdad)
var animal = 'dog';
function getAnimal(adjective) { alert(adjective+' '+this.animal); }
getAnimal('lovely'); //alerts 'lovely dog';

  • Las funciones se pueden ejecutar a si mismas... y al parecer sin caer en un bucle infinito ni nada
(function() { alert('hello'); })(); //alerts 'hello'

  • Firefox no lee y devuelve los colores en hexadecimal sino en RGB

  • 0.1 + 0.2 ! 0.3 (¿otra paradoja? Boooooommm!!!)

  • Undefined puede ser definido, es decir, que no es una palabra reservada (fail!)
undefined = "I'm not undefined!";
var someVar;
alert(someVar == undefined); //evaluates false!

Sin duda ¡¡¡que curioso!!!

Vía | Smashing Magazine