JavaScript ES6

O que é ECMAScript 6?

ECMAScript 6 também é chamado de ES6 e ECMAScript 2015.

Alguns a chamam de JavaScript 6.

Este capítulo introduz algumas novas funcionalidades do ES6.

  • JavaScript let
  • JavaScript const
  • Potência (**)
  • Valores padrão de parâmetros
  • Array.find()
  • Array.findIndex()

Suporte de navegadores para ES6 (ECMAScript 2015)

Safari 10 e Edge 14 foram os primeiros navegadores a suportar completamente o ES6:

Chrome 58 Edge 14 Firefox 54 Safari 10 Opera 55
Jan 2017 Aug 2016 Mar 2017 Jul 2016 Aug 2018

JavaScript let

A instrução let permite que você declare variáveis com escopo de bloco.

Exemplo

var x = 10;
// Aqui x é 10
{ 
  let x = 2;
  // Aqui x é 2
}
// Aqui x é 10

Experimente você mesmo

JavaScript const

const A instrução permite que você declare constantes (variáveis JavaScript com valores constantes).

Constantes são semelhantes a let Variáveis, mas não podem mudar de valor.

Exemplo

var x = 10;
// Aqui x é 10
{ 
  const x = 2;
  // Aqui x é 2
}
// Aqui x é 10

Experimente você mesmo

em nossa JavaScript Let / Const Leia mais sobre let e const do conteúdo.

operador de exponenciação

O operador de exponenciação (**A elevada (**) a primeira operando à potência da segunda operando.

Exemplo

var x = 5;
var z = x ** 2;          // O resultado é 25

Experimente você mesmo

x ** y o resultado é Math.pow(x,y) Igual:

Exemplo

var x = 5;
var z = Math.pow(x,2);   // O resultado é 25

Experimente você mesmo

Valores padrão de parâmetros

ES6 Permite que os parâmetros da função tenham valores padrão.

Exemplo

function myFunction(x, y = 10) {
  // y é 10 se não for passado ou undefined
  return x + y;
}
myFunction(5); // Retornará 15

Experimente você mesmo

Array.find()

find() O método retorna o valor do primeiro elemento do array passado pelo teste da função.

Neste exemplo, busca (retorna) o primeiro elemento (valor) maior que 18:

Exemplo

var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

Experimente você mesmo

Atenção, esta função aceita 3 parâmetros:

  • Valor do item
  • Índice do item
  • O próprio array

Array.findIndex()

findIndex() O método retorna o índice do primeiro elemento do array passado pelo teste da função.

Este exemplo determina o índice do primeiro elemento maior que 18:

Exemplo

var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

Experimente você mesmo

Atenção, esta função aceita 3 parâmetros:

  • Valor do item
  • Índice do item
  • O próprio array

Nova propriedade de número

ES6 adicionou as seguintes propriedades ao objeto Number:

  • EPSILON
  • MIN_SAFE_INTEGER
  • MAX_SAFE_INTEGER

Exemplo

var x = Number.EPSILON;

Experimente você mesmo

Exemplo

var x = Number.MIN_SAFE_INTEGER;

Experimente você mesmo

Exemplo

var x = Number.MAX_SAFE_INTEGER;

Experimente você mesmo

Novo método de número

ES6 adicionou 2 novos métodos ao objeto Number:

  • Number.isInteger()
  • Number.isSafeInteger()

Método Number.isInteger()

Se o parâmetro for um inteiro, então Number.isInteger() O método retorna verdadeiro.

Exemplo

Number.isInteger(10);        // Retorna true
Number.isInteger(10.5);      // Retorna false

Experimente você mesmo

Método Number.isSafeInteger()

Inteiros seguros podem ser representados com precisão como números de precisão dupla.

Se o parâmetro for um inteiro seguro, então Number.isSafeInteger() O método retorna verdadeiro.

Exemplo

Number.isSafeInteger(10);    // Retorna true
Number.isSafeInteger(12345678901234567890);  // Retorna false

Experimente você mesmo

Inteiros seguros são todos os inteiros de -(253 - 1) a +(253 - 1).

Isso é seguro: 9007199254740991. Isso não é seguro: 9007199254740992.

Novo método global

ES6 adicionou 2 novos métodos globais de número:

  • isFinite()
  • isNaN()

Método isFinite()

Se o parâmetro for Infinity ou NaNentão global isFinite() O método retorna false.

Caso contrário, retorna true:

Exemplo

isFinite(10/0);       // Retorna false
isFinite(10/1);       // Retorna true

Experimente você mesmo

Método isNaN()

se o parâmetro for NaNentão global isNaN() O método retorna verdadeiro. Caso contrário, retorna falso:

Exemplo

isNaN("Hello");       // Retorna true

Experimente você mesmo

Função de Seta (Arrow Function)

As funções de seta permitem usar uma sintaxe mais curta para escrever expressões de função.

Você não precisa function Palavras-chave,return Palavras-chave eChaves.

Exemplo

// ES5
var x = function(x, y) {
   return x * y;
}
// ES6
const x = (x, y) => x * y;

Experimente você mesmo

As funções de seta não têm o próprio this. Eles não são apropriados para definirMétodos de objeto.

As funções de seta não são promovidas. Elas devem ser usadasAntespara definir.

usar const em vez de usar var Mais seguro, pois a expressão de função sempre é um valor constante.

Se a função é uma única instrução, ela pode ser omitida return Palavras-chave e chaves. Portanto, manter elas pode ser um bom hábito:

Exemplo

const x = (x, y) => { return x * y };

Experimente você mesmo