O documento apresenta as principais novidades da especificação EcmaScript 6 (ES6). Em 3 frases: Apresenta novos recursos como valores padrão para parâmetros, blocos let e const, funções arrow, operador spread, compreensão de arrays, classes, módulos, destructuring e promises. Explica que grande parte dos recursos já está disponível em versões preliminares de navegadores e Node.js, mas a versão final é esperada para o primeiro semestre de 2016.
6. Globalcode – Open4education
Valores padrão para parâmetros
// ES 5
function inc(x, y) {
y = y || 1;
return x + y;
}
// ES 6
function inc(x, y = 1) {
return x += y;
}
7. Globalcode – Open4education
let
// ES 6
function doSomething() {
let N = 5;
if (someCondition) {
let N = 10;
doSomethingElse(N);
}
console.log(N); // 5
}
10. Globalcode – Open4education
Funções “flecha” =>
// ES 5
[1,2,3].map(function (x) {
return x * x;
});
// ES 6
[1,2,3].map(x => x * x);
let indefinido = () => {};
let um = () => 1;
Cuidado
com o
this!
13. Globalcode – Open4education
Array comprehension
// ES 5
let quadrados = [1, 2].map(function (i) {
return i * I
});
// ES 6
quadrados = [for (i of [1, 2]) i * i];
14. Globalcode – Open4education
Array comprehension (com filtro)
// ES 5
let arrayComUm =[1,5].filter(function(i){
return i < 3;
});
// ES 6
arrayComUm = [for (i of [1,5]) if (i < 3) i];
15. Globalcode – Open4education
Array comprehension (aninhado)
let posicoesXadrez =
[for (x of 'abcdefgh'.split(''))
for (y of '12345678'.split('')) (x+y)];
25. Globalcode – Open4education
Quando?
Hoje (incompleto):
Node 0.11
Chrome Canary
Firefox Nightly
Transpilers diversos
Versão final
Era esperado no fim desse ano, mas...
... tudo indica que fica pronto no primeiro semestre do
ano que vem
... só então devemos ver suporte no Node (uso
imediato), e nos navegadores (mais lento – depende de
adoção)