Login Barrapunto
Los trece errores de JavaScript más comunes
En el blog de Tuenti advierten contra los trece errores más comunes que se cometen al programar en JavaScript. Iterar usando la expresión "for..in", el dimensionamiento de los arrays, el uso de "undefined" al inicializar propiedades, el uso erróneo de las clausuras, el uso de clausuras dentro de los bucles, el querer diferenciar números enteros de números con coma flotante, el uso de cadenas de caracteres o de funciones demasiado pesadas como callbacks de setInterval(), el uso de "undefined" como variable... y los más gordos: los errores al usar "this" y el uso de "eval()" para acceder propiedads dinámicas.
El primero de ellos, el uso de "for..in" para iterar en arrays, parece que es tan malo que hasta lo han corregido en el ejemplo de "qué no hacer". Pero sigue siendo una buena lista.
« Notas sobre equidad, o cómo repartirse la propiedad de una startup | Votación en el Parlamento Europeo para la extensión del copyright de música »

Ta bien
(Puntos:2, Inspirado)errores en los errores
(Puntos:2, Informativo)el puesto numero 1...
(Puntos:2, Divertido)Comillas de los ejemplos
(Puntos:1)Los 13 errores de Javascript
(Puntos:4, Inspirado)1. Llamarlo JavaScript porque estás de novio con Sun
2. Que los programadores luego piensen que es como Java porque tiene {} y ; y se llama Java-algo y lo escriban como si fuera Java (mis ojos...)
3. Ser tan valiente y acertado como para utilizar un modelo de objetos basado en prototipos, pero en el último momento cagarse porque en Java lo que hay son clases y los farmacéuticos, bioquímicos y horticultores que hacen un curso de Java de una semana para trabajar en Accenture sólo habrán oído algo de las clases, y para intentar solucionarlo hacer una ñapa que impide utilizarlo bien, tanto como clases como como prototipos
4. Querer hacer el manejo de tipos de datos "fácil" y acabar cagándola de todas las formas posibles y alguna más que no creíamos posible
5. Cagadas varias con el "todo es un objeto" que lo convierten en un lenguaje de tipo "todo es un objeto pero..."
6. null expone un detalle de implementación muy desagradable y no tendría ni que existir
7. undefined es probablemente la peor idea después de invadir Rusia
8. Operador typeof cutre y propiedad
9. Demasiada caca de hormiga (, y
10. Librería estándar patética y lamentable (ver por ejemplo funciones de cadena, de fechas, bueno, de todo)
11. Que metan prisa al creador del lenguaje para sacarlo antes de probarlo con algo que no sea la función de Fibonacci
12. Pensar que los webmasters van a poder usarlo, y no digamos entenderlo
13. Que Microsoft lo implemente con el objetivo de sabotear una plataforma de desarrollo de aplicaciones que hace que su producto estrella no sea imprescindible
el mas común de todos:
(Puntos:1)( Última bitácora: Martes, 10 Mayo de 2011, 09:25h )
javascript con jquery y un estilo moderno de escritura es casi otro lenguaje de programación.
ejemplo:
tcp/ip://zerror.com:80/bin/chatarrilla/chatarra1.
versus
tcp/ip://zerror.com:80/mods/minecraft/tiles/tiles
esto es un html "tile editor" reescrito en el estilo moderno,.. esta inacabado y tiene bastantes incongruencias, pero también da una idea de lo que comento.
Re:Consejo ERRONEO?
(Puntos:2, Informativo)Dado que en Javascript puedes acceder propiedades de forma dinamica (por ejemplo, p[q] , siendo q="val" y val una propiedad de p), no puedes cargarte (ni parte ni todo) el contexto de la funcion contenedora solo porque en el codigo no este referenciado de forma explicita.
En ese ejemplo concreto, attachEvents() es llamada y la ejecucion termina, por lo que en principio el contexto deberia desaparecer. Sin embargo, no puede ser eliminado porque ahora element.onclick tiene acceso a ese contexto, donde esta definida la variable element. De ahi la necesidad de eliminar las referencias de forma explicita.
Echale un ojo al enlace que dan en el mismo blog [jibbering.com] sobre closures.