Bienvenido JavaScript 2.0

JavaScript domina la web, y ECMAScript, el núcleo del lenguaje, está madurando. La nueva especificación (ES6 o JS2), prevista para mediados de año, trae consigo numerosas innovaciones que ya se pueden probar. Firefox ofrece actualmente la mejor compatibilidad , pero también es posible usar polyfills mediante transpiladores como Google Traceur . A continuación, se presenta un breve resumen de las nuevas características de ES6.


La nueva palabra clave let hace muchas cosas mejor que var : el alcance ahora se comporta exactamente como en otros lenguajes (C/C++, Java), razón por la cual los bloques ahora también tienen su propio alcance. También se solucionará el levantamiento, es decir, la priorización de declaraciones de variables (no asignaciones de valor) dentro del ámbito respectivo.:

console.log(x);
var x = 'foo'; 
// undefined

console.log(y);
let y = 'bar';
// not initialized

El número de otras innovaciones es grande: constantes (const), valores predeterminados para funciones (function pow(a,b=2) { return Math.pow(a,b); }), una nueva notación para funciones (let pow = (a,b=2) => Math.pow(a,b);), una variedad de funciones nuevas (repeat(), contiene(), comienzaCon(), find(), findIndex()), la nueva construcción de bucle para... de.

También vale la pena mencionar los nuevos tipos de datos Conjunto, Mapa, Proxy y Símbolo, la capacidad de importar (partes de otros) archivos JavaScript con importación y una nueva sintaxis intuitiva para clases y herencia. Pero a menudo también hay cosas pequeñas pero muy esperadas, como la posibilidad de saltos de línea en cadenas literales (tenga en cuenta las comillas especiales).:

`foo

bar`

JavaScript ha sido durante mucho tiempo mucho más que una simple herramienta para pequeños trucos web: se utiliza para crear aplicaciones web potentes y de alto rendimiento, tan buenas como sus versiones de escritorio. Gracias a la gran cantidad de nuevas funciones útiles y al soporte existente para ES6, programar es el doble de placentero.

¿Quién no siempre ha querido comprobar la igualdad de dos números con la ayuda de la nueva constante Number.EPSILON , cuyo valor es la diferencia entre 1 y el siguiente valor de punto flotante más alto?

let cmp = (a,b) => Math.abs(a-b) < Number.EPSILON;
Atrás