Índice JavaScript ES6

Una breve historia de JavaScript

JavaScript ES6

EcmaScript es una estandarización de la organización ECMA International para el lenguaje de programación popularmente conocido como JavaScript, a veces abreviado como JS. En 1997 se publicó la primera versión ECMA 262-1st edition. Al inicio de ese documento reseña un breve historial:

This ECMA Standard is based on several originating technologies, the most well known being JavaScript™ (Netscape Communications) and JScript™ (Microsoft Corporation). The development of this Standard has started in November 1996.

Se observa que sobre este lenguaje se habían registrado dos marcas, por un lado el propio JavaScript por parte de Netscape y, por otro lado, JScript de Microsoft. Para evitar esa disyuntiva se denominó al estándar como EcmaScript.

La versión 5 (ES5) es del año 2009, apareciendo la 5.1 en el 2011. En 2015 aparece la versión sexta (ES6), ECMA-262 6th Edition, que marca una importante diferencia de desarrollo con respecto a todo lo anterior. Además ahora el propósito es no dejar pasar tanto tiempo entre versiones e ir incorporando pequeñas mejoras todos los años. Así en el 2016 aparece la séptima y este año 2017 está en curso la octava.

Pero igual que pasó con HTML5 o CSS3, el término ES6 significa algo más que una nueva versión. Es indicativo no sólo de un nuevo JavaScript más potente, sino también de una nueva forma de afrontar los cambios en ese lenguaje.

Esta breve introducción sirve para presentar el siguiente índice de materias relacionadas bajo el epígrafe ES6, pero entendiendo que son todas esas novedades incorporadas en el 2015 y siguientes años. Los temas afrontan además un repaso de todo lo anterior.

Indice de temas publicados

  • Variables 26 ENE 2016
    • Variables en JavaScript ES6:

      EcmaScript 2015 (versión 6) o ES6 de forma abreviada ya es estándar desde Junio 2015. Trae avances muy interesantes que potenciarán JavaScript. Una de ellas son las nuevas declaraciones de variables let y const.

  • Destructuring 01 MAY 2016
  • Strings 20 FEB 2016
    • Strings en JavaScript ES6:

      Con JavaScript ES6 vienen algunos cambios importantes en los String. Nuevos métodos como repeat() o includes() usuales en otros lenguajes nos ayudarán a programar más comódamente. Ademas ES6 trae soporte para UNICODE con valores superiores a FFFF.

    • Literales de plantilla en JavaScript ES6:

      Los literales de plantilla de JavaScript ES6 nos permiten incluir texto multilínea tal como lo escribimos en el código. Además podemos insertar código embebido o interpolado a modo de plantilla, de ahí el nombre de esta nueva y funcional característica de ES6.

  • Números 29 ENE 2017
    • Números en JavaScript ES6:

      JavaScript sólo tiene un tipo number para manejar números enteros y fraccionarios. En este tema haremos una introducción básica a la sintaxis relacionada con el tipo number y el objeto Number. Mencionaremos también una lista de dudas que se nos pueden presentar en el manejo de los números en JavaScript.

    • Representación binaria de los números:

      Los números decimales se tienen que representar en binario. Por lo tanto hay que saber al menos como convertir un número decimal en binario y al revés. Comentaremos también las limitaciones en la precisión de las representaciones binarias de decimales.

    • El formato IEEE754:

      El Formato IEEE754 es el que usa JavaScript para representar los números decimales. Se basa en un formato de coma flotante en un registro de 64 bits. Se presenta un convertidor IEEE754 con el que podemos extraer dicho formato de un número decimal y que nos servirá en temas posteriores para resolver dudas sobre ejemplos concretos.

    • La precisión del formato IEEE754:

      La representación binaria de los decimales y el formato IEEE754 que usa JavaScript introducen algunas limitaciones sobre la precisión de los números que debemos conocer.

    • NaN, infinito y enteros en JavaScript ES6:

      Para los valores NaN, Infinity y los enteros en JavaScript existen algunos métodos de Number que nos pueden facilitar su manejo.

    • Otros métodos para números en JavaScript ES6:

      Métodos de JavaScript para aplicar a números como parseFloat(), toFixed(), toExponential, toPrecision(), toString() y toLocaleString()

    • El redondeo de números en JavaScript:

      Entender el redondeo que aplica el formato IEEE754 es imprescindible para saber por qué suceden algunas cosas con los números en JavaScript.

    • El redondeo estándar en JavaScript ES6:

      Los métodos para números de JavaScript como toFixed() no aplican el redondeo estándar. En este tema se analiza el motivo y se busca una función para conseguir esa regla de redondeo.

  • Arrays 08 JUL 2016
    • Los vectores Array en ES6:

      En JavaScript (ES6) un vector se implementa con la estructura de datos Array. Es algo que tiene mucho uso en JavaScript por lo que hay que conocerlos en profundidad. Ademas ES6 trae nuevos y potentes métodos con los que podemos sacarles mayor provecho.

    • El constructor Array() en ES6:

      El constructor de Array en JavaScript es una función que tiene tres métodos estáticos importantes: isArray(), from() y of(). En este tema también veremos si es eficiente usar el constructor para crear nuevos Array.

    • Modificar un Array en ES6:

      Son varios los métodos que en JavaScript modifican el propio Array. Entre ellos encontramos pop(), push(), reverse() y sort() entre otros. En este tema los estudiamos en detalle aplicándolos a ejemplos como implementación de una pila, una cola y ordenar una tabla por columnas.

    • Iterar por un Array en ES6:

      Un método para iterar por un Array en JavaScript nos permitirá consultar sus elementos de forma consecutiva. Los métodos keys(), values() y entries() nos devuelven un objeto con el que podemos iterar por el Array. Por otro lado el método forEach() funciona con un callback con el que también podemos iterar.

    • Crear nuevo Array en ES6:

      Los métodos concat(), map(), slice() y filter() devuelven un nuevo Array de JavaScript no modificando el Array sobre el que se aplican.

    • Buscar en un Array en ES6:

      Los métodos para realizar búsquedas en un Array de JavaScript son indexOf(), lastIndexOf(), findIndex(), find(), every(), some() e includes().

    • Transformar desde un Array en ES6:

      Algunos métodos de un Array devuelven un valor transformado a partir de sus elementos. Devuelven un String los métodos join(), toString() y toLocaleString(). Por otro lado reduce() y reduceRight() funcionan con un callback devolviendo un valor simple tras iterar por el Array.

  • Objetos 12 OCT 2016
    • Objetos en JavaScript ES6:

      JavaScript es un lenguaje basado en objetos que se relacionan mediante prototipos. Por eso es importante conocer como funcionan los objetos, pues son un pilar básico de JavaScript.

    • Métodos básicos de los objetos en JavaScript ES6:

      En este tema comentaremos los métodos básicos del prototipo de Object que serán heredados por todos los objetos. Son toString(), toLocaleString() y valueOf(). También veremos el nuevo método genérico Object.is() que complementa las comparaciones de igualdad

    • Prototipos de objetos JavaScript ES6:

      Entender como funcionan los prototipos en JavaScript es fundamental. Así como conocer los métodos para crear y modificar objetos y prototipos, como create(), getPrototypeOf() o setPrototypeOf().

    • Propiedades de objetos JavaScript ES6:

      Todos los objetos de JavaScript se constituyen con propiedades que son parejas clave-valor. En este tema veremos los métodos para crear y modificar propiedades, como defineProperty(), getOwnPropertyDescriptor(), freeze() y otros.

    • Iterar en objetos JavaScript ES6:

      Los objetos en JavaScript no implementan un método iterador por defecto, pero si tienen un conjunto de métodos con los que podemos iterar por ellos. Métodos como keys(), values(), entries(), getOwnPropertyNames() o getOwnPropertySymbols() nos permitirán recuperar claves y valores de un objeto.

  • Símbolos 22 MAY 2016
    • Los símbolos en ES6:

      Los símbolos (symbol) son un nuevo tipo de datos primitivo de ES6 que actúan como identificadores únicos e inmutables.

    • Los símbolos bien conocidos en ES6:

      Los Símbolos Bien Conocidos (Well-Known Symbols) en ES6 nos permiten cambiar el comportamiento interno de JavaScript. El programador puede acceder a través de un símbolo bien conocido a una característica y modificar su forma predeterminada de actuar.

  • Iterables 30 JUL 2016
    • Iterables en ES6:

      Un objeto en JavaScript es iterable si posee un método iterador. La ejecución de este método devuelve un objeto iterador que nos facilita la iteración.

  • Generadores 21 AGO 2016
    • Generadores en ES6:

      Los generadores de ES6 son funciones cuya ejecución puede detenerse en un momento dado y reanudarse posteriormente.

    • Multitarea con generadores en ES6:

      Con generadores de ES6 podemos simular multitarea en JavaScript. Se trata de ejecutar múltiples procesos haciéndolos avanzar un tramo de ejecución en cada paso

    • Tareas asíncronas con generadores (y promesas):

      Los generadores de ES6 nos permiten escribir el código de tareas asíncronas como si fueran síncronas. Esto conduce a una mayor claridad de código que favorece la depuración de errores, especialmente si los generadores van acompañados de Promesas.

  • Funciones 26 MAR 2016
    • Funciones en JavaScript ES6:

      Las funciones en JavaScript son de primera clase pues pueden pasarse en los argumentos y devolverse desde otra función. Esto junto a características como el anidamiento de funciones o las funciones anónimas confiere a JavaScript como un lenguaje funcional con el que se pueden hacer más cosas de las que pudiéramos suponer en principio.

    • Propiedades y métodos de las funciones en JavaScript ES6:

      Las funciones en JavaScript también son objetos y por tanto pueden tener propiedades y métodos. Con ECMAScript 2015 (ES6) se incorpora la propiedad 'name', los parámetros por defecto y resto de parámetros con sintaxis del nuevo operador de propagación. En modo estricto hay algunas limitaciones con 'arguments', 'caller' y 'callee'. Por último veremos ejemplo de uso de los métodos 'call()', 'apply()' y 'bind()'.

    • Funciones flecha en ES6:

      ECMAScript 2015 (ES6) nos trae las funciones flecha (arrow functions). Son funciones anónimas donde se fija la referencia 'this' de forma estática en la declaración de la función. Con esto evitamos la fijación dinámica que sucede con el resto de funciones. Además las funciones flecha nos pueden ofrecer un código más conciso e intuitivo.