Introducción a ES6

ES6 o ECMAScript 2015 es la sexta versión del lenguaje de programación ECMAScript. ECMAScript es la estandarización de Javascript que se lanzó en 2015 y, posteriormente, se renombró como ECMAScript 2015.
ECMAScript y Javascript son de naturaleza diferente.
 

ECMAScript frente a Javascript

ECMAScript: Es la especificación definida en ECMA-262 para crear un lenguaje de secuencias de comandos de propósito general. En términos simples, es una estandarización para crear un lenguaje de secuencias de comandos. Fue presentado por Ecma International y es básicamente una implementación con la que aprendemos cómo crear un lenguaje de scripting. 
 Javascript: un lenguaje de secuencias de comandos de propósito general que cumple con la especificación ECMAScript. Es básicamente una implementación que nos dice cómo usar un lenguaje de secuencias de comandos.

ES6

Javascript ES6 existe desde hace algunos años y nos permite escribir código de una manera inteligente, lo que básicamente hace que el código sea más moderno y más legible. Es justo decir que con el uso de las funciones de ES6 escribimos menos y hacemos más, por lo tanto, el término «escribir menos, hacer más» definitivamente se adapta a ES6. 
ES6 introdujo varias características clave como const, let, funciones de flecha, literales de plantilla, parámetros predeterminados y mucho más. Echemos un vistazo a ellos uno por uno.
«const» y «let» 
Antes de ES6 principalmente utilizábamos la palabra clave var cuando queríamos declarar una variable. Pero tenía algunos problemas graves, además, no era el favorito de los desarrolladores, por lo que en la versión ES6, se nos presentó a const y dejamos palabras clave que nos permiten almacenar variables. Ambos tienen su propia forma de almacenar variables.
 

const : la palabra clave const se usa principalmente para almacenar esa variable cuyo valor no se va a cambiar. Considere un ejemplo en el que está creando una aplicación web en la que desea almacenar una variable cuyo valor no va a cambiar, entonces const es definitivamente la mejor opción para almacenar esa variable. En javascript, const se considera más poderoso que var. Una vez que se usa para almacenar una variable, no se puede reasignar. En palabras simples, es una variable inmutable , excepto cuando se usa con objetos.
Ejemplo :

javascript

// Const 
const name = 'Mukul';
console.log(name); // Will print 'Mukul' to the console.
  
// Trying to reassign a const variable
name = 'Rahul';
console.log(name); // Will give TypeError.

Salida:
en el código anterior, declaramos un nombre de variable con la palabra clave const y luego consola. Regístrelo, lo que funciona bien, pero reasignarlo con algún otro valor dará un error. Ahora veamos un ejemplo donde declaramos un objeto usando la palabra clave const .
 

javascript

// Object using const
const person ={
    name:'Mukul Latiyan',
    age:'21',
    isPlaced:true
};
  
console.log(person.name); // 'Mukul Latiyan'
person.name = 'Mayank';
  
console.log(person.name); //'Mayank'

Salida:
Las propiedades de los objetos declarados usando las palabras clave const son mutables, como en el código anterior declaramos un objeto de persona con algunas propiedades como nombre, edad, isPlaced . Cuando intentamos acceder a las propiedades, todo funciona bien, también cuando cambiamos la propiedad del nombre, también funciona bien. Por lo tanto, llegamos a la conclusión de que las propiedades del objeto son mutables incluso cuando se declaran con la palabra clave const. 
let : en el caso de la palabra clave let, las variables declaradas serán mutables, es decir, sus valores se pueden cambiar. Funciona de manera similar a la palabra clave var con algunas diferencias clave, como el alcance, lo que la convierte en una mejor opción en comparación con var.

javascript

// let
let name = 'Mukul';
console.log(name); // Mukul
  
name = 'Rahul';
console.log(name); // Rahul

Salida:
los objetos también son mutables. Me gusta: 

javascript

// Object using let
let bike = {
    name : 'Ninja ZX-10R',
    engine:'998cc',
    abs : 'dual channel'
};
  
console.log(bike.engine); // 998cc
  
bike.engine = '789cc';
console.log(bike.engine); // 789cc

Producción: 
 

Funciones de flecha

Las funciones de flecha (también conocidas como «funciones de flecha gruesa») son una sintaxis más concisa para escribir expresiones de función. Presentadas en ES6, las funciones de flecha son definitivamente uno de los cambios más impactantes en javascript. Estas expresiones de función hacen que su código sea más legible, más moderno. 
 

javascript

// ES5
function printName(name){
    console.log('Hello '+name);
}
  
printName('Mukul'); // Hello Mukul

Producción:

En lugar de usar esto, use el siguiente código: 
 

javascript

// ES6
const printName = name =>{
    return `Hi ${name}`; // using template literals
}
console.log(printName('Mukul')); // Hi Mukul
  
// We can also write the above code without 
// the return statement
const printName1 = name => `Hi ${name}`;
  
console.log(printName1('Mukul')); // Hi Mukul

Producción: 
 

Plantilla literal

Los literales de plantilla son una característica de ES6 que nos permite trabajar con strings de una mejor manera en comparación con ES5 y versiones anteriores. Simplemente usando literales de plantilla, podemos mejorar la legibilidad del código. Antes de ES6, usábamos el operador ‘+’ cada vez que queríamos concatenar strings y también cuando queríamos usar una variable dentro de una string, lo que definitivamente no es un método recomendado. Los literales de plantilla usan comillas invertidas («) en lugar de las comillas simples o dobles que hemos usado con strings regulares.

javascript

// ES5
var name = 'Mukul Latiyan';
console.log('My name is '+ name); 
  
// ES6
const name1 = 'Mukul Latiyan';
console.log(`My name is ${name1}`); 

Producción: 
 

Destrucción de objetos y arrays

Destruir en javascript básicamente significa descomponer una estructura compleja (objetos o arrays) en partes más simples. Con la asignación de destrucción, podemos ‘descomprimir’ objetos de array en un montón de variables.
 

Destrucción de objetos

javascript

// ES5
const college = {
    name : 'DTU',
    established : '1941',
    isPrivate : false
};
  
let name = college.name;
let established = college.established;
let isPrivate = college.isPrivate;
  
console.log(name); // DTU
console.log(established); // 1941
console.log(isPrivate); // false

Producción: 
 

La nueva forma de hacer esto usando ES6 es: 
 

javascript

// ES6
const college = {
    name : 'DTU',
    established : '1941',
    isPrivate : false
};
  
let{name,established,isPrivate} = college;
  
console.log(name); // DTU
console.log(established); // 1941
console.log(isPrivate); // false

Producción: 
 

Entonces, en lugar de declarar variables por separado para cada propiedad de un objeto, solo ponemos nuestros valores entre corchetes para obtener cualquier propiedad del objeto.
 

destrucción de array

En caso de destrucción de arrays, simplemente podemos reemplazar los corchetes con corchetes. 
Me gusta: 
 

javascript

// ES6
const arr = ['lionel','messi','barcelona'];
  
let[value1,value2,value3] = arr;
  
console.log(value1); // lionel
console.log(value2); // messi
console.log(value3); // barcelona

Producción: 
 

Parámetros predeterminados

Los parámetros predeterminados le permiten definir un parámetro por adelantado, lo que puede ser útil en ciertos escenarios. En javascript, el parámetro de función predeterminado es indefinido. Sin embargo, es útil establecer un valor predeterminado diferente. Antes de ES6, la forma en que solíamos definir los parámetros predeterminados era probando el valor de los parámetros en el cuerpo de la función predeterminada y asignando un valor si no están definidos. 
 

javascript

// ES5
function fun(a,b){
    return a+b;
}
  
console.log(fun(2,1)); // 3
console.log(fun(2)); // 2 + undefined is NaN(not-a-number)

Producción: 
 

Eliminamos este error de parámetro predeterminado como este: 
 

javascript

// ES5(improved)
function fun(a,b){
    b = (typeof b!=='undefined')?b:1;
    return a + b;
}
  
console.log(fun(2,1)); // 3
console.log(fun(2)); // 3

Producción: 
 

Después de ES6, simplemente podemos escribir: 
 

javascript

// ES6
function fun(a,b=1){
    return a + b;
}
  
console.log(fun(2,1)); // 3
console.log(fun(2)); // 3

Producción: 
 

Clases

Las clases son el núcleo de la programación orientada a objetos (POO). ES6 introdujo clases en javascript. Las clases en javascript se pueden usar para crear nuevos objetos con la ayuda de un constructor, cada clase solo puede tener un constructor dentro. 
 

javascript

// classes in ES6
class Vehicle{
    constructor(name,engine){
        this.name = name;
        this.engine = engine;
    }
}
  
const bike1 = new Vehicle('Ninja ZX-10R','998cc');
const bike2 = new Vehicle('Duke','390cc');
  
console.log(bike1.name); // Ninja ZX-10R
console.log(bike2.name); // Duke

Producción:

Parámetro de reposo y operador de propagación

  • Parámetro de descanso : La sintaxis del parámetro de descanso nos permite representar un número indefinido de argumentos como una array. Con la ayuda de un parámetro de descanso, se puede llamar a una función con cualquier número de argumentos, sin importar cómo se haya definido. 
     

    javascript

    // simple function
    function fun(a,b){
        return a + b;
    }
      
    console.log(fun(1,2)); // 3
    console.log(fun(1,2,3,4,5)); // 3 

    Salida:

    en el código anterior, no se generará ningún error incluso cuando pasemos más argumentos que los parámetros, pero solo se evaluarán los dos primeros argumentos. Es diferente en el caso del parámetro de descanso.

    javascript

    // ES6 rest parameter
    function fun(...input){
        let sum = 0;
        for(let i of input){
            sum+=i;
        }
        return sum;
    }
      
    console.log(fun(1,2)); // 3
    console.log(fun(1,2,3)); // 6 
    console.log(fun(1,2,3,4,5)); // 15

    Salida: Operador de extensión : el operador de extensión es otro operador proporcionado por ES6 que nos permite el privilegio de obtener una lista de parámetros de una array. Considere un ejemplo en el que tenemos una lista de números y devolvemos el número mínimo de esa lista. Algo como:

    javascript

    console.log(Math.min(1,2,3,-1)); // -1 

    Salida:

    ahora considere que tenemos una array en lugar de una lista, este método de objeto matemático anterior no funcionará y devolverá NaN, como: 

    javascript

    // Without spread 
    let arr = [1,2,3,-1];
      
    console.log(Math.min(arr)); // NaN

    Salida: cuando se usa …arr en la llamada de función, “expande” un objeto iterable arr en la lista de argumentos.
    Para evitar esta salida de NaN, podemos usar el operador de propagación, como: 
     

    javascript

    // Spread operator
    let arr = [1,2,3,-1];
      
    console.log(Math.min(...arr)); // -1

    Producción:

    Tanto el operador spread como el rest hacen uso de puntos triples (…), ya veces es difícil diferenciar cuál es el resto o el spread. Simplemente recuerda que:

    Cuando… está al final del parámetro de función, es el parámetro de descanso.

  • Cuando … ocurre en una llamada de función o similar, se llama operador de propagación.

Publicación traducida automáticamente

Artículo escrito por immukul y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *