2015년에 발표된 JavaScript의 버전 중 하나.
// 1. 배열
// val1 = 1, val2 = "new"
let [val1, val2] = [1, "new"];
// a = 1, b = 2, c = 3, d = undefined
let [a, b, c, d] = [1, 2, 3];
// a = 1, b = 2, c = 3, d = 4
let [a, b, c, d = 4] = [1, 2, 3, 4];
// 2. 객체
// 변수를 무조건 중괄호로 감싸야함
user = {
name: "abc",
age: 30,
}
let { name, age } = user;
// user의 name을 newName이라는 변수, user의 age를 newAge라는 변수에 할당
let { name: newName, age: newAge } = user;
let name = "abc";
let someAge = 30;
let obj = {
name, // === name: name,
age: someAge,
}
// 1. 배열
let arr = [1, 2, 3];
console.log(...arr); // => [1, 2, 3]이 아니라 1 2 3
let newArr = [...arr, 4]; // => arr을 풀어서 newArr에 배열로 집어넣고 끝에 4를 추가
// 2. 객체
let user = { name: "abc", age: 30, };
let user2 = { ...user };
// 매개변수가 3개 이상 들어오면 3번째부터 끝까지 args라는 배열에 저장됨
function add(a, b, ...args) { // args = [3, 4]
let ans = a + b;
args.forEach((ele) => {
ans += ele;
});
return ans;
}
console.log(add(1, 2, 3, 4));
// 백틱 안에서 javascript 문법을 사용하려면 ${}로 감싸야함.
let test = "test";
console.log(`Hello World! ${test}`); // => "Hello World! test"
console.log(`
Hello
World
`); // => 공백들이 그대로 출력됨
// 함수가 값으로 취급됨.
// 재사용될 수 있음.
let sayHello = function() {
console.log("Hello!");
}
function callFunction (func) {
func();
}
callFunction(sayHello);
function createAdder(num) {
return function (x) {
return x + num;
};
}
let addFive = createAdder(5); // createAdder(5) === function (x) { return x + 5; }
console.log(addFive(10));
let person = {
name: "abc",
age: 30,
sayHello: function () {
console.log(`Hello my name is ${this.name}`);
}
}
person.sayHello();
let arr = [
function (a, b) {
return a + b;
},
function (a, b) {
return a - b;
},
]
console.log(arr[0](1, 2)); // 3
console.log(arr[1](2, 1)); // 1
자료구조.
목적: 데이터의 구성, 검색, 사용을 기존의 객체 또는 배열보다 효율적으로 처리
let myMap = new Map();
// 요소 추가
myMap.set("one", 1);
myMap.set("two", 2);
myMap.set("three", 3);
// 사이즈 (요소의 갯수)
console.log(myMap.size);
// key 검색 (true/false)
console.log(myMap.has("two");
console.log(myMap.keys()); // => [Map Iterator] { 'one', 'two', 'three' }
// Iterator (반복자) (for~of)
for (const key of myMap.keys()) {
}
for (const value of myMap.values()) {
}
for (const entry of myMap.entries()) {
}
let mySet = new Set();
// 요소 추가
mySet.add("value1");
mySet.add("value2");
mySet.add("value3");
mySet.add("value5");
mySet.add("value8");
// 사이즈 (요소의 갯수)
console.log(mySet.size);
// key 검색 (true/false)
console.log(mySet.has("value1");
// Iterator (반복자) (for~of)
for (const value of mySet.values()) {
}