Airton Vancin Junior
Blog Plugins Projetos Sobre Contato Zero Downtime
Airton Vancin Junior
Blog Plugins Projetos Sobre Contato Zero Downtime

JavaScript - ES6: let, const, arrow function

A nova versão do JavaScript, conhecida também como ECMAScript 6, vamos falar sobre let, const e arrow function.

4 de ago. de 2020 · 3 min de leitura

A nova versão do JavaScript, conhecida também como ECMAScript 6 ou apenas ES6, vamos falar sobre let, const e arrow function.

Let

Declara uma variável local no escopo do bloco atual, opcionalmente iniciando-a com um valor. O let é o substituto para var, pois ele será descontinuado futuramente. Por que ele se comporta como o esperado de uma variável.

Exemplo usando var:

nome = "Airton";
var nome;
console.log(nome); // Airton

Se fizermos o mesmo, substituindo por let, o que vai acontecer:

nome = "Airton";
let nome;
console.log(nome); // undefined

Vai dar erro, pois o let suporta somente o modo estrito, o famoso 'use strict', a blz então só adicionar no começo do arquivo:

"use strict";
nome = "Airton";
let nome;
console.log(nome); // undefined

Também não vai funcionar :disappointed: , pois o let obriga você a sempre declarar as variáveis antes de ser chamada, então como que vai ficar?

"use strict";
let nome;
nome = "Airton";
console.log(nome); // Airton

Você pode ver aqui sobre Hoisting para entender melhor isso.

Const

Como o próprio nome diz são constantes, então:

  • O valor de uma constante não pode ser alterado;
  • É obrigatório que um valor seja atribuido à constante em sua declaração;
  • Uma constante não deve compartilhar o nome com uma função ou variável em um mesmo escopo.

Isso quer dizer que uma vez declarada você não consegue mais alterar o valor dela, certo? sim esse é o propósito, mas existe uma marotagem para poder alterar esse valor.

Então se você declarar uma const, ex:

const nome = "Airton";

O valor da const nome nesse exemplo sempre vai ser Airton, agora se você tentar redeclarar ela com outro valor, o que acontece?

const nome = "Airton";
const nome = "Junior";

Isso vai dar erro dizendo que essa const já foi declarada:

TypeError: Identifier 'nome' has already been declared

E se eu tentar reescrever assim:

const nome = "Airton";
nome = "Junior";
console.log(nome); // Airton

Não vai dar erro, mas quando você for imprimir a const nome ele vai imprimir Airton.

Const também funciona com objetos:

const user = { name: "Airton" };
console.log(user); // { name: 'Airton' }

Entretanto, atributos de objetos não estão protegidos, logo a seguinte instrução é executada sem problemas:

const user = { name: "Airton" };
user.name = "Junior";
console.log(user); // { name: 'Junior' }

Arrow Function

É uma função que possui uma sintaxe mais curta, e elas sempre são funções anônimas (IIFE), vinculando o valor de this de maneira léxica, quando ela é criada o valor de this sempre será o mesmo.

// Função normal
function (name) { return name; }

// Arrow Function
(name) => name;

Função nomeada não é possível fazer com arrow function:

// Função normal
function sayName(name) { return name; }

// Arrow Function
sayName(name) => name; // <-- ISSO NÃO EXISTE

O que fazer então? vamos estanciar ela como uma constante:

// Arrow Function
const sayName = (name) => name; // Ae agora sim

Vamos ver um exemplo de uma função que retorna a média de dois números:

// ES5
const media = (function (num1, num2) {
  return (num1 + num2) / 2;
})(10, 50); // passando os valores 10  e 50 como parâmetros

console.log(media); // 30

// --------------------------------

// ES6
const media = ((num1, num2) => {
  return (num1 + num2) / 2;
})(10, 50);

console.log(media); // 30

// OU MAIS SIMPLES

const media = ((num1, num2) => (num1 + num2) / 2)(10, 50);
console.log(media); // 30
Compartilhar:

Posts Relacionados

WordPress and Nextcloud SSO: A Practical Guide to Single Sign-On

en

Two ways to wire single sign-on between WordPress and Nextcloud: a shared SAML provider, or WordPress as the OIDC provider. When to pick which, and the traps.

Como Melhorei a Performance do Meu Site Astro com Pequenas Melhorias

Um guia prático mostrando como otimizei o First Contentful Paint (FCP) e outras métricas de performance no meu site Astro com ajustes simples como preload de imagens, otimização de JavaScript e o uso do componente Image do Astro.

Lições de Arquitetura que Aprendi em 15 Anos de Carreira

De padrões de projeto complexos à busca pela simplicidade. Uma reflexão sobre o que realmente importa na hora de desenhar um software sustentável.

Comentários

Front End Zero Downtime

Garanta que suas aplicações Web estejam sempre disponíveis, sem interrupções, sem perda de receita.

Disponível por tempo limitado.

Airton Vancin

Desenvolvedor de software com mais de 15 anos de experiência, construindo produtos web modernos e escaláveis.

GitHub LinkedIn WordPress Email Substack

Mapa do Site

  • Home
  • Blog
  • Prévias
  • Sobre
  • Contato
  • Zero Downtime
Projetos
  • Balancewise.io
  • Timberoad
  • Pablo Escobar Ipsum
Plugins WP
  • Video Destacado
  • Manage User Roles
  • Nudge SEO AI
  • SSO Connector for JumpCloud
  • Notria AI Suite

© 2026 Airton Vancin. Todos os direitos reservados.

Termos de Uso Políticas de Privacidade