Ir al contenido principal

Nuevas Características de Javascript

ECMASCRIPT 2018


La nueva forma de hacer Javascript

En esta ocasión hablaremos de una de las cosas más recientes en cuanto a Javascript se refiere, porque ha llegado ECMASCRIPT 2018, o ES2018 cómo a algunos les gusta llamarlo.
Echaremos una hojeada a todo lo nuevo que podemos hacer con el lenguaje que todos podrían amar, o cualquiera podría odiar.

Rest/Spread Propierties

Sintaxis:

 const input = { x: 1, y: 2, a: 3, b:4 }
 const { x, y, ...z } = input

 console.log(x)
 console.log(y)
 console.log(z)

Si has entrado aquí sólo por curiosidad y no sabes que significa lo anterior, no te preocupes, aquí te lo explico, desde ECMAESCRIPT 5 se utilizan una nueva forma de declarar las variables, las cuales son let y const, cada una tiene un scope ó ámbito diferente, let representa un ámbito de bloque, es decir, que mantiene su valor en el bloque que fue declarada, y con const representa un único valor de la variable y también en un ámbito de bloque, está no puede cambiar su valor en tiempo de ejecución, lo contrario si se declara con let.
Después tenemos el Object destructuring, que muchos lo recordaremos por hacer esto:

 var n = object.n,
     p = object.p,
     z = object.z;

Pues en ES2015, se ideó una forma corta de hacerlo:

 const { n, p, z } = object

Todo declarado en una sola línea, y se entiende mucho mejor.
Después está el operador de propagación (...) que fue agregado en la especificación de ES2015, que básicamente es usado para crear una copia de objeto, porque cómo muchos sabrán, hacer esto:

 
 const object = { n: 4, p: 6, z: 9 }
 const objectCopy = object
 
 objectCopy.n = 87

 console.log(objectCopy.n)
 console.log(object.n)
 //Ambos muestran 87

Esto sucede porque el lugar de hacer una copia del objeto original lo que guarda en la variable es una referencia del objeto original, y cualquier cambio en alguna de sus referencias cambia el objeto original. Para esto entra en acción el objeto de propagación.

 
 const object = { n: 4, p: 6, z: 9 }
 const objectCopy = {...object}
 
 objectCopy.n = 87

 console.log(objectCopy.n) //Muestra 87
 console.log(object.n)     //Muestra 4

Bien una vez explicado todo esto, sigamos con el Rest/Spread Propieties si juntamos el Object destructuring y el operador de propagación, tenemos cómo ya te lo habrás imaginado, un objeto con las propiedades que no hemos sacado del objeto original, retomando el ejemplo obtendríamos:

 const input = { x: 1, y: 2, a: 3, b:4 }
 const { x, y, ...z } = input

 console.log(x) // 1
 console.log(y) // 2
 console.log(z) // { a: 3, b: 4 }


Asynchronous Iteration

Sintaxis:

 for await( const line of readLines(filePath) ){
  console.log( line )
 }

Iteraciones asincrónicas, con esta sintaxis podremos hacer llamadas a API, que necesiten de una salida asincrónica, sin bloquear a los demás, porque el iterador lo que devolvería es una Promesa, y cada vez que llamemos a next() nos traerá el resultado de la promesa que se ha resuelto.

RegExp related features

En total son 4 nuevas carácteristicas para las RegExp o Expresiones Regulares
  • La bandera s ( dotAll ) para los caracteres únicode. En las algunas ocasiones el interpreté no reconocía algo cómo esto 'foo\nbar', que al testearlo con /foo.bar/ nos arrojaba falso, con está bandera, no sucederá más.

  • RegExp named capture groups (capturado de nombres de grupo). Por ejemplo, cuando utilizabamos una expresión regular para validar una fecha en formato 0000-00-00,utilizabamos algo cómo esto /(\d{4})-(\d{2})-(\d{2})/, pero es que así no se vuelve muy legible, y con la nueva característica se utilizaría algo cómo esto: /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/u.

  • LookBehind assertions, imaginemos una condicional en una expresión regular, bueno con está carácteristica es totalmente posible, sólo se utiliza dentro de la expresión regular los carácteres "?<=" para hacer coincidir con nuestro match positivamente y los carácteres "?<!" para hacerlo coincidir negativamente.

  • Unicode Propertity Escapes: un soporte para Expresiones Regulares con carácteres únicode de diferentes idiomas.
Muchas de estas características ya están soportadas por babel en el stage-3 de sus presets, puedes echarle una hojeada en la siguiente liga, desde su compilador en línea.


Y también puedes consultar la documentación oficial de las nuevas características en las siguientes direcciones.


Comentarios

Publicar un comentario

Entradas populares de este blog

Reset de almohadillas  para impresora Canon PIXMA MG3510 Para cuando se produce los siguientes errores 5B02, 5B03, 5B04, 5B05, 5B12, 5B13, 5B14, 5B15. Esto se puede deber a que la impresora haya alcanzado su  límite de impresiones; sucede por varias razones (las hojas a color o impresiones fotográficas: estas pueden contar el triple, según su tamaño en el contador de impresiones).  Y aún más cuando a este modelo de impresoras se le adapto un sistema de tinta continua la vida de las almohadillas suele ser más corto cunado dicho sistema tienen goteos de tinta sin que el usuario se dé cuenta de ello .  Pasos a seguir: 1.- pasos solo en la impresora si el programa aun abierto 1.          Apagar la impresora para entrar en  modo mantenimiento o servicio 2.        Mantenemos pulsado el botón  Stop / Reset 3.        Pulsamos el botón  Power 4.        Soltamos el botón  Stop / Reset 5.        Sin soltar el botón de  Power  presionamos el  bo

Resetear contador almohadillas en Epson L210

Resetear contador almohadillas en Epson L210 ¿Que son las almohadillas de la impresora Epson? las Almohadillas de las impresoras Epson Stylus son bloques de diferentes tamaños (dependiendo del modelo de la impresora) que están fabricadas de un material fibroso y absorbente. Todas las impresoras Epson Stylus las tienen, estas están ubicadas en un contenedor dentro de la impresora, algunos las tienen en la parte baja y otros en la parte posterior de la impresora en el cual se va acumulando la tinta que el cabezal va botando cada vez que se enciende la impresora o cuando realiza una limpieza de sus inyectores o cabezal y cuando va realizando una impresión. Cuando se llenan estas almohadillas, la impresora tienen en su tarjeta principal un contador electrónico llamado memoria EEprom que contabiliza cuanta tinta es acumulada dentro de la impresora. Una vez que la memoria EEProm llega a su cuenta límite establecido simplemente bloquea la impresora evitando que la tinta de des

Resetear contador almohadillas en Epson L3150

Resetear contador almohadillas en EpsonL3150 ¿Que son las almohadillas de la impresora Epson? las Almohadillas de las impresoras Epson  son bloques de diferentes tamaños (dependiendo del modelo de la impresora) que están fabricadas de un material fibroso y absorbente. Todas las impresoras Epson las tienen, estas están ubicadas en un contenedor dentro de la impresora, algunos las tienen en la parte baja y otros en la parte posterior de la impresora en el cual se va acumulando la tinta que el cabezal va botando cada vez que se enciende la impresora o cuando realiza una limpieza de sus inyectores o cabezal y cuando va realizando una impresión. Cuando se llenan estas almohadillas, la impresora tienen en su tarjeta principal un contador electrónico llamado memoria EEprom que contabiliza cuanta tinta es acumulada dentro de la impresora. Una vez que la memoria EEProm llega a su cuenta límite establecido simplemente bloquea la impresora evitand