ES6 e o suporte dos navegadores

A Web teve um início, mas não terá um fim.

ES6 não é suportado por navegadores mais antigos, que foram desenvolvidos antes do seu lançamento. Esses navegadores mais antigos foram desenvolvidos para se adaptar à versão do JavaScript naquela época (que era a ES5.1). Se você tentar rodar seu código ES6 em um navegador antigo, ele não funcionará.

Uma função arrow é executada e causa erro de sintaxe no Safari 9. Fechar
Uma função arrow é executada e causa erro de sintaxe no Safari 9.

Faz sentido que um código que não funcione em navegadores antigos, desenvolvidos em uma época anterior ao ES6, mas existem navegadores desenvolvidos após essa melhoria do JavaScript que também não suportam essa nova sintaxe e funcionalidade ainda.

Tente utilizar uma função arrow em seu código e executá-la em um IE 11. Isso não funcionará. Ocorrerá um erro no console, informando que o navegador não reconhece a sintaxe.

Uma função arrow é executada e causa erro de sintaxe no IE 11.
Uma função arrow é executada e causa erro de sintaxe no IE 11.

A maior parte de nós não pensa muito a respeito do navegador e tudo o que ele pode fazer… até o momento em que ele não funciona! Na verdade, desenvolvedores de navegadores enfrentam um grande desafio. Pense em HTML, CSS e JavaScript – essas linguagems são fluídas e evoluem em uma grande velocidade. Fabricantes de navegadores devem estar atentos a todas essas mudanças.

Mas, como eles sabem dessas mudanças? Eles aprendem (ou constroem eles próprios) as especificações da linguagem!

Assim como o World Wide Web Consortium (W3C) é o responsável pelos padrões de coisas como HTML, CSS e SVG, a Ecma International é uma associação que desenvolve e prevê padrões como JavaScript e JSON. Você pode encontrar as especificações do ES6 aqui.

Mais informações

A Ecma International é uma comunidade importante da indústria, e vale muito a pena conferi-la em detalhes:

A especificação ES6

As especificações (comumente conhecida como “spec”) do ES6 podem ser encontradas aqui. A spec lista o conjunto de regras e orientações de como a linguagem deveria funcionar. A especificação não dá detalhes específicos de como os fabricantes de navegadores deveriam atender a essas especificações, mas contém instruções passo a passo de como a linguagem precisa funcionar.

Honestamente, pode ser um pouco complicado decifrar a terminologia utilizada na especificação. Sempre que você tiver uma dúvida sobre ES6, eu recomendo que utilize a Mozilla Developer Network para pesquisas e revise a especificação oficial.

Como saber quais são as funcionalidades suportadas pelos navegadores?

Com novas especificações na linguagem saindo todos os anos e navegadores sendo atualizados logo em seguida, é um desafio saber qual navegador tem suporte para qual funcionalidade da linguagem. Cada fabricante de navegadores (exceto o Safari) possui um site onde é possível acompanhar seu estágio de desenvolvimento. Acompanhe as atualizações de cada navegador:

OBSERVAÇÃO: o Safari não possui uma página de status, porém, por debaixo dos panos, ele utiliza um mecanismo open source de navegação, o Webkit. O status de desenvolvimento do Webkit e suas funcionalidade podem ser encontrados aqui.

Isso pode ser muita informação para acompanhar. Se você preferir checar uma análise mais completa de todas as funcionalidades e compatibilidades de navegadores com as features do JavaScript, dê uma olhada na Tabela de compatibilidade ECMAScript, contruída por @kangax:

Tabela de compatibilidade de navegadores para as funcionalidades ECMAScript.

Tabela de compatibilidade de navegadores para as funcionalidades ECMAScript.

Você domína Javascript, mas isso não significa que pode relaxar. As novas funcionalidades não podem ser ignoradas e depender só do conhecimento de uma tecnologia agora desatualizada.

Você precisa se mexer, explorar as ferramentas, ler as especificações, seguir alguns tutoriais e talvez até criar alguns.

A web está em constante evolução e você precisa evoluir com ela. Imagine ficar empacado com péssimos equipamentos quando há ferramentas novas e melhores disponíveis.

A Web teve um início, mas não terá um fim. Surgem novas tecnologias, que não serão suportadas por navegadores antigos.

Fonte: Udacity

Publicado por

Ricardo de Carvalho

Webmaster, Coordenador de Programação e Programador PHP, JS e React - certificado pela iMasters Certified Professional - PHP e JS - Boas práticas

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>