Javascript ES6

A especificação ES6 trás ao Javascript várias funcionalidades, entre elas a realização das lógicas mais utilizadas com uma syntax mais simples e mais fácil de interpretar, o que reduz a possível ocorrência de erros.

Variáveis const e let

Na especificação ES6 as variáveis passaram a ser declaradas como let em vez de var, e agora é possível declarar constantes.

Além disso o scope das mesmas sofreu algumas alterações, tornando a sua utilização um pouco diferente, vejamos o seguinte exemplo:

  • Neste exemplo declaramos 3 variáveis, dentro da condição alteramos o valor da variável adulto para true
const nome = 'maria';
let idade = 20;
let adulto = false;

if(idade >= 18){
    adulto = true;
}

console.log(adulto) // true
  • Caso uma variável seja declarada no interior da condição esta não se encontra acessível fora do scope da condição, como mostra o seguinte exemplo:
const nome = 'maria';
let idade = 20;
let adulto = false;

if(idade >= 18){
    let adulto = true;
}

console.log(adulto) // false
  • Além disso não é possível alterar o valor das constantes, nem voltar a declarar a mesma variável no mesmo scope
const nome = 'maria';
let idade = 20;
let adulto = false;

// já declarado anteriormente
let idade = 17; // erro

if(idade >= 18){
    adulto = true;
    // constante não pode sofrer alteração
    nome = 'pedro'; // erro
}

console.log(adulto) // true

Outra grande novidade na declaração de variáveis passar por atribuir valores a variareis pelo método de destructuring, como podem ver no exemplo:

let arr = [1, 2, 3]

let [a, b, c] = arr

console.log(a, b, c) // 1 2 3

Funções e Classes

As funções também sofreram algumas alterações, nomeadamente na forma como são declaradas.

No seguinte exemplo podemos ver que a palavra function foi omitida. Esta convenção da lugar a uma escrita e leitura rápida e simples, como no exemplo:

const somar = (a, b) => {
  return a + b
}

somar(1, 3) // 4

Caso a função seja bastante simples, como no exemplo acima, podemos simplificar ainda mais a escrita, como o seguinte exemplo:

const somar = (a, b) => a + b

somar(1, 3) // 4

No caso das classes a utilização do constructor facilita bastante a abstracção no que toca a utilização do this

class Carro {

  constructor(marca){
    this._marca = marca
  }

  get marca(){
    return this._marca
  }

  set marca(marca){
    this._marca = marca
  }
}

const carro = new Carro('mercedes')
console.log(carro.marca) // 'mercedes'
console.log(carro.marca = 'bmw', carro.name) // 'bmw'

Módulos

Os módulos permitem estruturar o nosso protejo em vários ficheiros. Para uma melhor organização do mesmo, como podem ver no seguinte exemplo:

// moduloA.js
export function soma(a, b) {
  return a + b
}


// index.js
import { soma } from 'moduloA'

soma(1, 3) // 4

Este artigo não é, de nenhuma forma, um resumo extenso de todas as novas funcionalidades existentes.

Aconselho lerem com mais atenção o seguinte website: ES6-Features

There are currently no comments.