Então, o que é ES6?
Vamos dar uma pausa nos posts sobre React e falar um pouco sobre o JavaScript Moderno
JavaScript Moderno
Nos velhos tempos, você podia apenas incluir uma tag <script>
no cabeçalho da sua página, e seu JavaScript rodaria como esperado. Hoje em dia, nós pré-processamos nosso JavaScript para ter acesso a features experimentais e extensões da linguagem como JSX.
Babel
Babel é a principal ferramenta usada para pré-processar JavaScript. Babel é um parser altamente configurável que permite que usemos features experimentais e extensões, compilando de volta para o JavaScript antigo que pode ser suportado em uma ampla quantidade de plataformas. Se uma plataforma não suporta nativamente uma feature ES6 como Map()
, o Babel não será capaz de ajudar completamente — mas em muitos casos ele pode replicar as APIs que faltam para prover essa funcionalidade.
Babel permite o debug do código-fonte incluindo source maps com o JavaScript compilado. Os interpretadores JavaScript executarão o código compilado, mas mapearão o código-fonte no debugger para que você possa debuga-lo em vez do (geralmente muito feio) código compilado.
Configuração do Babel
Você pode configurar o Babel de diversas maneiras. A mais comum é incluir um arquivo .babelrc
na raiz do seu projeto. Esse arquivo deve especificar quais features JS experimentais habilitar e quais plugins usar (JSX).
Então, o que é ES6?
ECMAScript é a especificação usada para implementar a linguagem JavaScript. ES6, ou ECMAScript 6, é a primeira atualização significativa para a linguagem desde ES5 que foi inicialmente lançado em 2009.
Muitos recursos ES6 já estão disponíveis em engines modernos de JavaScript. Usar Babel, no entanto, nos dará acesso a muitos mais recursos, garantindo ao mesmo tempo que nosso JavaScript será executado em mais plataformas.
ES6 Highlights
Vamos dar uma olhada em alguns desses novos recursos da linguagem JavaScript e como eles são compilados pelo Babel. Há uma grande quantidade de recursos de linguagem para percorrer, por isso, vamos ver isso no próximo post.