ES2015(ES6) 2015년에 발표된 자바스크립트 진영의 매우 큰 변화
기존의 자바스크립트는 변수를 var로 선언함.
es6 부터는 let과 const를 사용 할수 있음.
기존의 var는 function scope이지만 let, const 는 block scope임
const는 상수로 선언되므로 한번 선언 후, 다른 값 대입 불가
선언된 변수에 다른 값을 대입하는 경우는 의외로 적으므로, 기본적으로 변수 선언시에는 const를 사용하고, 적절한 경우에만 let을 이용하여 변수 선언을 권장.
// es5
var num1 = 1;
var num2 = 2;
var result = 3;
var string1 = num1 + ' 더하기 ' + num2 + '는 \'' + result + '\'';
console.log(string1); // 1 더하기 2는 '3'
// es6
const num3 = 1;
const num4 = 2;
const result2 = 3;
const string2 = `${num3} 더하기 ${num4}는 '${result2}'`;
console.log(string2); // 1 더하기 2는 '3'
// es5
var sayNode = function() {
console.log('Node');
};
var es = 'ES';
var oldObject = {
sayJS: function() {
console.log('JS');
},
sayNode: sayNode,
};
oldObject[es + 6] = 'Fantastic';
oldObject.sayNode(); // Node
oldObject.sayJS(); // JS
console.log(oldObject.ES6); // Fantastic
// es6
const newObject = {
sayJS() {
console.log('JS');
},
sayNode,
[es + 6]: 'Fantastic'm,
};
newObject.sayNode(); // Node
newObject.sayJS(); // JS
console.log(newObject.ES6); // Fantastic
{ name: name, age: age } // ES5
{ name, age } // ES6
// es5
function add(x, y) {
return x + y;
}
// es6
const add2 = (x, y) => x + y;
const candyMachine = {
status: {
name: 'node',
count: 5,
},
getCandy() {
this.status.count--;
return this.status.count;
}
};
console.log(status); // status is not defined
console.log(count); // count is not defined
getCandy(); // getCandy is not defined
const { getCandy, status: { count } } = candyMachine;
console.log(status); // {name: 'node', count: 5}
console.log(count); // 5;
getCandy() // 4;
생략
es2017 노드 7.6 기준으로 비동기 구문 작성시 async 추천
생략
http 비동기 요청 구문 작성시 axios 라이브러리 추천
HTML form 태그의 데이터를 동적으로 제어할 수 잇는 기능. 주로 AJAX와 함께 사용
주소에 한글이 포함 될 경우, 서버가 한글을 이해하지 못하는 경우가 있어, 한글 주소를 서버가 읽을 수 있는 문자열로 변환하고, 받는 쪽에서 문자열을 다시 한글로 변환할 때 사용
html 태그의 속성으로, data- 로 시작하는 것들을 넣어줌
html과 관련된 데이터를 저장하는 공식적인 방법(data attribute)
dataset에 데이터를 넣어도 html 태그에 반영
dataset.monthSalary = 10000 -> data-month-salary='10000'