¿Recuerdas cuando estabas aprendiendo JavaScript? ¿Cuál fue el momento en que de repente lo "entendiste"? (Por ejemplo, mi momento aha de CSS fue cuando aprendí sobre el modelo de caja ...)
La razón por la que pregunto es que estoy aprendiendo JS durante 6 semanas, pero todavía lo encuentro bastante confuso. Aquí hay una cita de algo que leí recientemente en SO:
"... las funciones actúan de manera similar a los valores, ya que el método es una propiedad del objeto que tiene el valor de una función (que también es un objeto)".
Tengo curiosidad por saber si también estabas confundido al principio y qué fue lo que te hizo entenderlo.
(Estoy leyendo los puntos del sitio "Simplemente JavaScript", el libro "JavaScript elocuente" y siguiendo el tutorial de JavaScript esencial de Lynda. No tengo experiencia en programación y era terrible en matemáticas;)
¡Gracias!
Respuestas:
Creo que el momento más grande de "AHA" para mí fue cuando comprendí completamente lo siguiente:
Los valores variables pueden ser cualquier cosa, incluidas las funciones
fuente
Para mí fue cuando entendí que el contexto (lo que
this
señala) de una función se puede cambiar arbitrariamentehttp://www.digital-web.com/articles/scope_in_javascript/
fuente
Estoy de acuerdo con lo que algunas de las otras respuestas han tocado; El momento A-ha para mí fue cuando entendí lo que era un cierre .
Publiqué una respuesta a la pregunta ¿Qué es un cierre? para ayudar a explicar esto.
Sin comprender los cierres, Javascript es un lenguaje bastante limitado, con algunas características agradables de sintaxis abreviada como
[]
para matrices y JSON ({}
para objetos), y en el contexto del navegador, el DOM (window
/document
).Sin embargo, una vez que entiendes los cierres, mucha comprensión entra en juego :
Recursos
fuente
Creo que el lenguaje más esencial 'Ajá para mí en Javascript era
Para todos estos temas, debe encontrar muchos recursos en la web.
(Y no piense que todo se volverá totalmente lógico: JavaScript es confuso)
fuente
javascript fue difícil para mí cuando comencé a aprenderlo hace algunos años porque comencé a aprender desarrollo web desde el lado del servidor (php y perl).
No fue tanto la sintaxis o la OOP o cualquier cosa que me eludió, más aún la vida y el desarrollo de eventos de javascript, pasando de "hacer esto y esto y esto y servirlo y listo" para "hacer esto y esto y esto y luego estamos en un estado constante de esperar que algo suceda y responder hasta que el usuario abandone la página ". Eso realmente me dejó sin aliento.
No creo que pueda nombrar nada en particular que realmente lo haya hundido (ningún momento definitivo "¡ajá!" - si tuviera que nombrar un momento específico, diría que cuando estaba aprendiendo AJAX para un script de sugerencia de búsqueda, pero en mi opinión eso es arbitrario), pero cuando finalmente comprendí la diferencia, todo se volvió mucho más fácil a partir de ahí :)
fuente
Cuando finalmente entendí la idea de que puedo redefinir cualquier parte del lenguaje a la basura que quiera. A este respecto, es aún más poderoso que C. Por ejemplo, si no me gusta la
toString()
función estándar , implementaré la mía propia:fuente
Cuando me di cuenta de que podía establecer una propiedad en un objeto de función.
También cuando finalmente entendí cuál era el prototipo.
fuente
Y el momento a-ha cuando finalmente captas estos resultados.
fuente
Aha momento # 1, para mí: darse cuenta de que JavaScript, el lenguaje, es distinto de su uso principal: HTML dinámico y programación web del lado del cliente. Me sentiría frustrado con JavaScript, cuando realmente estaba frustrado con el DOM y las incompatibilidades del navegador.
Aha momento # 2: Comprender que la herencia se puede ejecutar de muchas maneras. La herencia típica basada en clases es solo una. Hay otros, a saber, basados en prototipos (el estilo utilizado en JavaScript).
Con respecto al n. ° 1, no puedo resistirme a recomendar JavaScript: The Good Parts . Trata JavaScript como un buen lenguaje por derecho propio.
fuente
Sin bloque de alcance y elevación.
fuente
Es solo Scheme con sintaxis.
Ese fue el grande para mí.
fuente
jQuery fue básicamente el momento 'a-ha' para mí. La sintaxis se sintió familiar después de tener mucha experiencia con la sintaxis LINQ / lambda en C #.
fuente