Literalmente todo el idioma.
JavaScript está tan lleno de trampas y errores que hacen tropezar a todos. He estado trabajando con JavaScript durante años y todavía me tropiezo con él.
El primer problema que tengo es el alcance. Por defecto, todas las variables son globales, si coloca una var delante de la variable, ahora es local. No importa si coloca var cuando declara por primera vez la variable en el alcance o si la usa la última vez que accede a la variable. ¿Pero adivina que? Es fácil olvidarse de las var. Lo hago todo el tiempo y, como resultado, puedo introducir algunos errores realmente extraños cuando hago eso. Errores que solo pueden aparecer una vez en una luna azul. He mejorado desde que comencé, pero sucede ocasionalmente. Todos cometemos errores.
- ¿Qué tecnologías se usaron para hacer estos sitios?
- ¿Cómo definirás una constante en PHP?
- ¿Crees que Google's Go será el futuro de la programación?
- Cómo conseguir un trabajo en Google, Microsoft o Facebook como desarrollador front-end
- ¿Para qué sirve el HTML?
A continuación, la palabra clave “this”. Es completamente diferente de la mayoría de los otros idiomas, donde “esto” se refiere al objeto actual. ¡No en JavaScript! Es global y apunta al último objeto que también estaba vinculado. Esta es realmente una trampa fácil de caer, como en una solicitud de Ajax. La función de enlace y las nuevas funciones de flecha gruesa generalmente resuelven este problema. No es raro ver este código:
var that = this;
Para arreglar esto.
También está la cuestión de la ejecución del bucle de eventos. Muchas personas se tropiezan con este código:
para (i = 0; i <10; i ++) {
setTimeout (function () {
alerta (i);
}, 2);
}
Que hace eso O cuando el código se ejecuta en JavaScript.
Por último, algunas características de JavaScript no son compatibles con diferentes navegadores web. Todos siguen diferentes especificaciones y ninguno de ellos es el estándar. Es bastante malo Antes de usar una característica oscura, siempre verifico ¿Puedo usar … Tablas de soporte para HTML5, CSS3, etc.
He tratado con esto muchas veces. Me enfrento a la palma más a menudo cuando trato con JavaScript porque me encuentro con errores que conozco todo el tiempo.