향상된 오브젝트 리터럴(Enhanced Object Literal) 로 기존에 객체정의 방식들을 개선한 문법임
속성(property)와 값(value)이 같으면 축약이 가능함
// 기존
var hello = {
// 속성: 값
language: 'javascript',
coding: function() {
console.log('Hello World');
}
};
// ES6
var language = 'javascript';
var hello = {
language
};
console.log(hello); // {language: "javascript"}
속성에 함수를 정의할때 function 예약어 생략이 가능함
// 기존
const hello = {
// 속성: 함수
coding: function() {
console.log('Hello World');
}
};
hello.coding(); // Hello World
// ES6
const hello = {
coding() {
console.log('Hello World');
}
};
hello.coding(); // Hello World
변수 선언형식이 자유로워지는 것을 구조분해라고 함
var hello = {
outer: 'coat',
pants: 'slacks',
shoes: 'flat',
acc: 'ring'
};
var { outer, pants, shoes, acc } = hello;
console.log(outer); // coat
console.log(pants); // slacks
console.log(shoes); // flat
console.log(acc); // ring
let data = ["coat", "slacks", "flat", "ring"];
// ES6에서는 다음과 같이 표현 가능
let [outer, ,shoes] = data;
console.log(outer, shoes); // coat , flat
let data = {
outer: 'coat',
pants: 'slacks',
shoes: 'flat',
acc: 'ring'
};
let {outer : myouter, acc:myacc} = data;
console.log(outer, acc, myouter, myacc) // coat, ring, coat, ring
// ES6에서는 다음과 같이 표현 가능
let [outer, ,shoes] = data;
console.log(outer, shoes); // coat , flat
var response = [
{
"title" : "first",
"name" : "dori"
},
{
"title": "second",
"name" : "ted"
}
]
/*let [,second] = response;
let {title, name} = second
console.log(title, name); // second, ted
*/
let [, {title, name}] = response; //한번에 뽑을 수 있음
console.log(name) //ted
var response = [
{
"title" : "first",
"name" : "dori"
},
{
"title": "second",
"name" : "ted"
}
]
function getFirstList([{name}]) {
console.log(name)
}
getFirstList(response); //첫번째 name 출력
function getSecondList([,{name}]) {
console.log(name)
}
getSecondList(response); //두번째 name 출력
set은 중복없이 유일한 값을 저장할때 사용함 (이미 존재하는지 체크할때 유용)
let myset = new Set();
myset.add("minux")
myset.add("ted")
myset.add("dori")
myset.add("ted")
myset.forEach(function(v){
console.log(v)
})
// minux, ted, dori
// 중복된 ted 제외하고 3가지 값이 나옴
console.log(myset.has("ted"));
// true
myset.delete("minux");
//minux 삭제됨