[μΉμ± μ μμΌλ‘ λ°°μ보λ Vue.js, ES6, Vuex] ES6 of Vue.js (1)
ES6?
μ΅μ Front-end FrameworkμΈ React, Angular, Vueμμ κΆκ³ νλ μΈμ΄ νμ
ES5μ λΉν΄ λ¬Έλ²μ΄ κ°κ²°ν΄μ Έμ μ΅μν΄μ§λ©΄ μ½λ©μ ν¨μ¬ νΈνκ² ν μ μμ
const & let - μλ‘μ΄ λ³μ μ μΈ λ°©μ
- λΈλ‘ λ¨μ {}λ‘ λ³μμ λ²μκ° μ νλμμ
- const : νλ² μ μΈν κ°μ λν΄ λ³κ²½ν μ μμ(μμ κ°λ )
- let : νλ² μ μΈν κ°μ λν΄μ λ€μ μ μΈν μ μμ(μ¬ν λΉμ κ°λ₯ν¨)
! const
νμ§λ§, κ°μ²΄λ λ°°μ΄μ λ΄λΆλ λ³κ²½ν μ μλ€.
const a = 10;
a = 20; //Uncaught TypeError : Assignment to constant variable
const a = {};
a.num = 10;
console.log(a); //{num:10}
const a = [];
a.push(20);
console.log(a); //[20]
λ³μ μ€μ½ν
κΈ°μ‘΄ ES5 : κΈ°μ‘΄ μλ°μ€ν¬λ¦½νΈ(ES5)λ {}μ μκ΄μμ΄ μ€μ½νκ° μ€μ λ¨
var sum = 0;
for (var i=1; i<=5; i++) {
sum = sum + i;
}
console.log(sum) //15
console.log(i) //6
ES6 : {} λ¨μλ‘ λ³μμ λ²μκ° μ νλμ΄μ§
let sum = 0;
for (var i=1; i<=5; i++) {
sum = sum + i;
}
console.log(sum) //10
console.log(i) //Uncaught ReferenceError : i is not defined
νΈμ΄μ€ν
κΈ°μ‘΄ ES5 : μ μΈν ν¨μμ λ³μλ₯Ό ν΄μκΈ°κ° κ°μ₯ μλ¨μ μλ κ² μ²λΌ μΈμνλ€
function willBeOveridden() {
return 10;
}
willBeOveridden(); //5
function willBeOveridden() {
return 5;
}
Arrow Function - νμ΄ν ν¨μ
//ES5
var sum = function(a, b) {
return a + b;
};
//ES6
var sum = (a, b) => {
return a + b;
};
sum(10, 20);
//ES5
var arr = ["a", "b", "c"];
arr.forEach(function(value) {
console.log(value); // a, b, c
});
//ES6
var arr = ["a", "b", "c"];
arr.forEach(value => console.log(value)); // a, b, c
ν₯μλ κ°μ²΄ 리ν°λ΄ - Enhanced Object Literals
- κ°μ²΄μ μμ±μ λ©μλλ‘ μ¬μ©ν λ function μμ½μ΄λ₯Ό μλ΅νκ³ μμ± κ°λ₯
var directionary = {
words : 100,
//ES5
lookup : function() {
console.log("find words");
},
//ES6
lookup() {
console.log("find words");
}
};
directionary.lookup();
μμ±λͺ μ μΆμ½
- κ°μ²΄μ μμ±λͺ κ³Ό κ° λͺ μ΄ λμΌν λ μλμ κ°μ΄ μΆμ½ κ°λ₯
var figures = 10;
var dictionary = {
//figures : figures;
figures
};