¿Qué es lo mejor que aprendiste recientemente en JavaScript?

Componentes web , utilizando el componente webcomponent-lite shim en polymer-project.org. Su uso reemplaza en gran medida la funcionalidad de los marcos principales como Dojo, Ember o Angular, utilizando estándares estándares de JavaScript y web, y haciendo que su código sea mucho más seguro para el futuro, sin apoyarse en las convenciones de las bibliotecas que quedarán obsoletas.

Fábricas (o constructores de objetos) que devuelven una instancia en lugar de constructores con la nueva palabra clave. Proveniente de Dojo, que usaba en exceso las clases y la herencia de Java, dependía excesivamente del uso de objetos nuevos , pero envolver Object.create en un cierre fácilmente le brinda características como propiedades y métodos privados. Una fábrica permite pasar las opciones y la inicialización que Object.create no proporciona. Descubrí que estaba luchando la batalla equivocada cuando los componentes web no funcionaban muy bien con los constructores.

Composición sobre herencia. Nuevamente, viniendo de Dojo, tenía la mala costumbre de usar la herencia profunda. La composición ha hecho que mi código sea más sencillo, más legible y fácil de mantener, y sigue más de cerca los principios de diseño de SOLID para JavaScript. Los sistemas de complementos también son mucho más fáciles de implementar.

Mi cosa súper simple favorita es cómo ES6 te permite recorrer un objeto como una matriz con forEach usando Object.values ​​(objeto).

sea ​​obj = {a: 1, b: 2, c: 3};

Object.values ​​(obj) .forEach (value => {

console.log (valor)

})

// logs 1, 2, 3

(O puede usar Object.keys o Object.entries para obtener tanto la clave como los valores)

Mi concepto favorito en general es probablemente los cierres (Closed Over Variable Environment). Normalmente, una vez que JS termina de ejecutar un bloque de código y deja un contexto, pierde esas variables locales ya que ya no son necesarias. Un cierre es un alcance persistente que se mantiene en las variables locales incluso después de que la ejecución del código se haya movido fuera de ese bloque. Un ejemplo de esto podría ser si solo quisiera permitir que una función se ejecute una vez. Podría mantener un contador que contara cada vez que ingresara a la función. Un cierre le permitiría mantener esa variable de contador, de modo que la próxima vez que ya estuviera en una, la función no se ejecutaría.

Originalmente aprendí este concepto en un evento de reunión llamado Javascript, las partes duras, donde el orador te muestra cómo los motores de Javascript ejecutan el código línea por línea. Ver la acción detrás de la escena ayuda a proporcionar una comprensión muy sólida de lo que está sucediendo y, lo que es más importante, por qué está sucediendo (… lo que es muy útil para cuando se está depurando el código).

(Manhattan) JavaScript – Las partes difíciles: cierre, alcance y contexto de ejecución

Hicieron un montón de otras reuniones para temas avanzados de JS:

https://www.codesmith.io/events

Para mí, todo en Javascript orientado a objetos era lo suficientemente bueno, me interesé de inmediato y me sumergí rápidamente en el tema cuando comencé a estudiarlo. Esto se debe a que todo es muy diferente en Javascript en comparación con otros lenguajes orientados a objetos. Esto se debe al hecho de que se creó para ejecutarse específicamente en el navegador.

Algunos de los conceptos más geniales para aprender son:

1. Funciones como objetos – Sí, las funciones son objetos en Javascript.

2. Ámbitos de aplicación : nuevamente, se implementan de manera muy diferente en comparación con otros idiomas.

3. Cierres – Una de las características más potentes. Conserva el estado de una variable local fuera de su ámbito léxico.

4. esto : una de las palabras clave más incomprendidas.

5. Prototipos : interpretados de manera falsa como una forma de imitar clases en Javascript, que es un patrón de diseño completamente incorrecto.

6. Promesas (ES2015) : un salvador de la vida para evitar que caigas en el infierno de la devolución de llamadas.

7. Generadores (ES2015) y Clase (ES2015) : no los hemos probado todavía, pero se están volviendo rápidamente populares entre los desarrolladores.

Le recomiendo que eche un vistazo a este libro:

getify / You-Dont-Know-JS

Además, hay un buen curso sobre Udacity en Javascript orientado a objetos. Aquí:

JavaScript orientado a objetos

¡Disfrutar!

No realmente en JavaScript como idioma, se trata más de crear aplicaciones web en JavaScript.

React.js y la programación reactiva funcional aplicada a la implementación de interfaces de usuario: una biblioteca de JavaScript para crear interfaces de usuario | React, basado en la arquitectura de aplicaciones Flux – Flux | Arquitectura de aplicación para crear interfaces de usuario, optimizely / nuclear-js, utilizando datos inmutables como representación del estado de la aplicación – Immutable.js.

Las siguientes características volaron mi mente

  1. Modelos de eventos-Burbujeando y capturando.
  2. Cierres
  3. Levantamiento
  4. Ajax
  5. Delegación de eventos
  6. Declarando cualquier variable solo usando var
  7. Marcos supercool – React, Angular, Dojo, etc.

Y muchos otros- Love JS

Creo que el “cool” comienza después de que hayas aprendido el idioma y hayas logrado crear algo significativo al usarlo. En mi experiencia personal, cuando trabajaba en mi sitio web educativo Unizor, conseguí crear una estructura de datos jerárquica multinivel patentada en el front-end JavaScript, la transmití a una cadena de caracteres ASCII, enviada a un servidor que ejecutaba C # y desentrañó una cadena para una estructura jerárquica de C # equivalente. También funcionó en la dirección opuesta también. Me sentí eufórico.

Lo primero que hay que aprender sobre JS es que, poco después de comenzar a aprender JS, nos damos cuenta de que JS es el lenguaje de programación más genial que existe. Sí, esto es realmente genial porque los problemas que tiene en mente durante el período de WTF en el aprendizaje de JS comienzan a establecerse y su confianza crece y crece. Esto es muy genial.

Por ejemplo, mira esta belleza.

var a = 1;
función fn () {
console.log (a);
var a = 2;
}
fn (); // oh hombre, ¿cómo? más WTF

Apuesto a que muchos de ustedes han pensado que imprimiría “1” en la consola, ya que var a no se declara dentro del alcance de la función en el momento de console.log, por lo que JS obtiene mejor la variedad de alcance externo que ya está definida y es accesible. a las reglas de alcance. Si le digo “No, está mal”, entonces probablemente diría “Bien … OK, entonces es” 2 “en la salida debido a la elevación de var a = 2; se mueve a la parte superior del alcance de la función”. Ningún hombre … la respuesta es undefined . La clave es saber levantar bien. El izamiento mueve las declaraciones a la parte superior, pero no las definiciones ni las inicializaciones. Entonces nuestra var a = 1; La oración en realidad se vuelve así.

var a = 1;
función fn () {
var a
console.log (a);
a = 2;
}
fn (); // indefinido. Oh JS es tan genial ..!

Lo mejor que me ha gustado en JavaScript es la manipulación de Dom usando jquery.

  1. Literalmente, puede cambiar el tamaño, la forma y la posición de los elementos, básicamente la manipulación de CSS. El motor de Js tenía la capacidad de manipular la respuesta del motor de CSS enviándole valores manipulados, engañando a su salida cada vez que manipulas.
  2. API, como la API de Google, que le brinda el tiempo de espera de un escritorio usando la ubicación del enrutador más cercana sin usar gps.
  3. Dado que el motor de JavaScript es ligero, se usa como código móvil, es decir, cualquiera que sea la consulta que realice en mongodb en la interfaz, volverá a la base de datos en formato js y luego se convertirá y ejecutará en c ++ y devolverá los datos a la interfaz en formato json.
  4. Muchas cosas interesantes como el script de acción y otras bases de datos se originaron desde JavaScript.
  5. Si no fuera por JavaScript, no habría una pila de MEAN hoy, lo que sería muy triste.

Babel: es un compilador que me permite aprovechar al máximo las funciones nuevas y futuras de JavaScript. Mejor aún, se integra bien con mis herramientas actuales. Yo lo uso a través del paquete de paquete de Webpack a mí mismo.

Puede sonar divertido, pero document.createElement:

Puedes crear cosas asombrosas con javascript simple de vainilla sin escribir una sola línea de HTML:
http://eloquentjavascript.net/15

Nodemon (remy / nodemon): observa los archivos en el directorio donde se inicia y, si hay cambios, reinicia automáticamente la aplicación del nodo.
Perfecto para fines de desarrollo.

Podría ayudarlo a comprender la herencia de JavaScript con ejemplo en vivo

DOM