parâmetros padrão em ES6
em ES6, podemos colocar os valores padrão bem na assinatura das funções.
var calculateArea = function(height = 50, width = 80) {
// write logic
...
}
In ES5, we were using logic OR operator.
var calculateArea = function(height, width) {
height = height || 50;
width = width || 80;
// write logic
...
}
Template Literals in ES6
In ES6, we can use a new syntax ${PARAMETER}
inside of the back-ticked string.
var name = `Your name is ${firstName} ${lastName}.`
em ES5, temos de quebrar a cadeia de caracteres como abaixo.
var name = 'Your name is ' + firstName + ' ' + lastName + '.'
multi-line Strings in ES6
In ES6, it is very simple., Usa só carraças.
let poemData = `Johny Johny Yes Papa,
Eating sugar? No, papa!
Telling lies? No, papa!
Open your mouth Ah, ah, ah!`
In ES5, we had to use below approach.
var poemData = 'Johny Johny Yes Papa,\n'
+ 'Eating sugar? No, papa!\n'
+ 'Telling lies? No, papa!\n'
+ 'Open your mouth Ah, ah, ah!'
Desestruturação de Atribuição em ES6
A desestruturação de atribuição de sintaxe é uma expressão JavaScript que torna possível descompactar valores a partir de matrizes, ou propriedades de objetos, em diferentes variáveis.
var o = {p: 42, q: true};
var {p, q} = o;
console.log(p); // 42
console.log(q); // true
In ES5, we had to use below approach.
var o = {p: 42, q: true};
var p = o.p;
var q = o.q;
console.log(p); // 42
console.log(q); // true
literais de objectos melhorados em ES6
literais de objectos tornam mais fácil criar rapidamente objectos com propriedades dentro dos chavões encaracolados.,
function getLaptop(make, model, year) {
return {
make,
model,
year
}
}
getLaptop("Apple", "MacBook", "2015");
In ES5, we had to follow below syntax.
function getLaptop(make, model, year) {
return {
make: make,
model: model,
year: year
}
}
getLaptop("Apple", "MacBook", "2015");
Para mais informações: https://dev.to/sarah_chima/enhanced-object-literals-in-es6-a9d
Seta Funções em ES6
A gordura setas são impressionantes, pois eles fariam o this
comportar-se corretamente, isto é, this
vai ter o mesmo valor no contexto da função— ele não vai se transformar.
$('.btn').click((event) => {
this.doSomething()
});
In ES5, we had to use _this = this or .bind (this).,
var _this = this;
$('.btn').click(function(event){
_this.doSomething();
});
Para mais informações: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions
Promessas em ES6
as Promessas são utilizados para a execução assíncrona. Na ES6, podemos usar a promessa com a função seta mostrada abaixo.
var asyncCall = new Promise((resolve, reject) => {
// do something async
resolve();
}).then(()=> {
console.log('Yay!');
})
Em ES5, precisamos usar setTimeout().
setTimeout(function(){
console.log('Yay!');
}, 1000);
Para mais informações: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
Bloco de Escopo de Construções e Const
let
é um novo var
, que permite o escopo da variável para os blocos.,Assim, a principal diferença entre let e var é, var
escopo é o mais próximo do bloco de funções e let
escopo é o mais próximo delimitador de bloco, que pode ser menor do que um bloco de função.
In ES6,
In ES5,
When it comes to const
, it’s just an immutable and it’s also block-scoped like let
.
Classes em ES6
podemos criar classe em ES6 usando a palavra-chave “classe”. A criação e uso de Classes na ES5 foi uma dor na retaguarda, porque não havia uma classe de palavras-chave.,
Eu não vou mostrar-lhe exemplo de criação de classe ES5, porque há muitos sabores.
Módulos em ES6
Em ES6, existem módulos com import
e export
operandos.
export var userID = 10;
export function getName(name) {
...
};
podemos importar variável userID e método getName usando declaração de importação .
import {userID, getName} from 'module';
console.log(userID); // 10
Leave a Reply