πμ΄λ²μλ ES6+μμ κ°μ²΄μ λ°°μ΄μ μΆκ°λ λ¬Έλ²μ μμ보μ.
λ¨μΆ μμ±λͺ κ³Ό κ³μ°λ μμ±λͺ μ μ΄μ©νλ©΄ κ°μ²΄μ λ°°μ΄μ μμ±νκ³ μμ νλ μ½λλ₯Ό μ½κ² μμ±ν μ μλ€. λν, μ κ° μ°μ°μμ λΉκ΅¬μ‘°ν ν λΉ λλΆμ κ°μ²΄μ λ°°μ΄μ μμ±κ°μ λ°μΌλ‘ κΊΌλ΄λ λ°©λ²μ΄ νκ²° μ¬μμ‘λ€.
λ¨μΆ μμ±λͺ κ³Ό κ³μ°λ μμ±λͺ
1. λ¨μΆ μμ±λͺ
- λ¨μΆ μμ±λͺ μ κ°μ²΄ 리ν°λ΄ μ½λλ₯Ό κ°νΈνκ² μμ±ν λͺ©μ μΌλ‘ λ§λ€μ΄μ§ λ¬Έλ². λ¨μΆ μμ±λͺ μ μ¬μ©νλ©΄ κ°νΈνκ² μλ‘μ΄ κ°μ²΄λ₯Ό λ§λ€ μ μλ€.
const name = "mike";
const obj = {
age: 21,
name,
getName() { retrun this.name; },
}
μλ‘ λ§λ€λ €λ κ°μ²΄μ μμ±κ° μΌλΆκ° μ΄λ―Έ λ³μλ‘ μ‘΄μ¬νλ©΄ κ°λ¨νκ² λ³μ μ΄λ¦λ§ μ μ΄μ£Όλ©΄ λλ€. μ΄λ μμ±λͺ μ λ³μ μ΄λ¦κ³Ό κ°μμ§λ€. μμ±κ°μ΄ ν¨μλ©΄ function ν€μλ μμ΄ ν¨μλͺ λ§ μ μ΄λ λλ€. μ΄λ μμ±λͺ μ ν¨μλͺ κ³Ό κ°μμ§λ€.
function makePerson1(age,name) {
return { age: age, name: name };
}
function makePerson2(age,name) {
retrun { age, name };
}
첫λ²μ§Έ ν¨μ λ¨μΆ μμ±λͺ μ μ¬μ©νμ§ μμ κ²½μ°μ΄κ³ , λλ²μ§Έ ν¨μκ° λ¨μΆ μμ±λͺ μ μ¬μ©ν κ²½μ°λ€. 보λ€μνΌ λ¨μΆ μμ±λͺ μ μ¬μ©ν κ²½μ°κ° μ½λλ₯Ό μμ±νκΈ°λ νΈνκ³ κ°κ²°νκ³ κ°λ μ±λ νΈνλ€.
2. κ³μ°λ μμ±λͺ
κ³μ°λ μμ±λͺ μ κ°μ²΄μ μμ±λͺ μ λμ μΌλ‘ κ²°μ νκΈ° μν΄ λμ¨ λ¬Έλ².
function makeObject1(key,value){
const obj = {};
obj[key] = value;
return obj;
}
function makeObject2(key,value){
return{ [key]:value};
}
κ³μ°λ μμ±λͺ μ μ¬μ©νλ©΄ κ°μ ν¨μλ₯Ό λ λ²μ§Έ ν¨μμ²λΌ κ°κ²°νκ² μμ±ν μ μλ€.
μ κ° μ°μ°μμ λΉκ΅¬μ‘°ν ν λΉ
3. μ κ° μ°μ°μ
μ κ° μ°μ°μλ λ°°μ΄μ΄λ κ°μ²΄μ λͺ¨λ μμ±μ νμ΄λμ λ μ¬μ©νλ λ¬Έλ²μ΄λ€. λ§€κ°λ³μκ° λ§μ ν¨μλ₯Ό νΈμΆν λ μ μ©νλ€ !
Math.max(1,3,7,9); // μ΄ λ°©μμΌλ‘λ λμ μΌλ‘ λ§€κ°λ³μλ₯Ό μ λ¬ν μ μλ€.
// μ κ° μ°μ°μ
const numbers = [1,3,7,9];
Math.max(...numbers);
μ κ° μ°μ°μλ₯Ό μ¬μ©νλ©΄ λμ μΌλ‘ ν¨μμ λ§€κ°λ³μλ₯Ό μ λ¬ν μ μλ€.
//λ°°μ΄, κ°μ²΄ μμ±
const arr1 = [1,2,3];
const obj1 = {age:23, name:'mike'}
//μ κ°μ°μ°μ μ¬μ©νμ¬ μλ‘μ΄ κ°μ²΄μ λ°°μ΄ μμ±
const arr2 = [...arr1];
const obj2 = {...obj1};
//μ κ° μ°μ°μ μ¬μ©ν΄μ μλ‘μ΄ κ°μ²΄κ° μμ±λμκΈ° λλ¬Έμ
//μμ±μ μΆκ°νκ±°λ λ³κ²½ν΄λ μλμ κ°μ²΄μ μν₯μ μ£Όμ§ μμ!
arr2.push(4);
obj2.age = 80;
λ°°μ΄μ κ²½μ° μ κ° μ°μ°μλ₯Ό μ¬μ©νλ©΄ κ·Έ μμκ° μ μ§λλ€.
[1, ...[2,3],4]; // [1,2,3,4]
new Date(...[2020, 6, 24]); //2020λ
6μ 24μΌ
λ°°μ΄ λ¦¬ν°λ΄μμ μ€κ°μ μ κ° μ°μ°μλ₯Ό μ¬μ©νλ©΄ μ κ° μ°μ°μ μ νμ μμκ° μ μ§λλ€. λ λ²μ§Έ ν¨μλ ν¨μμ μΈμλ₯Ό μ μλ λ§€κ°λ³μμ μμλλ‘ μ λ ₯ν΄μΌ νλ―λ‘ μμκ° μ μ§λλ μ κ° μ°μ°μμ μ±μ§μ μ΄μ©νκΈ° μ’λ€. μλ₯Ό λ€μ΄ Date μμ±μμ λ§€κ°λ³μ μμλλ‘ λ μ§ λ°μ΄ν°λ₯Ό κ΄λ¦¬νλ©΄ Date κ°μ²΄λ₯Ό μ½κ² μμ±ν μ μλ€. μ κ° μ°μ°μλ₯Ό μ¬μ©νλ©΄ μλ‘ λ€λ₯Έ λ λ°°μ΄μ΄λ κ°μ²΄λ₯Ό μ½κ² ν©μΉ μ μλ€.
const obj1 = {age:21, name:'mike'};
const obj2 = {hobby: 'soccer'};
const obj3 = {...obj1, ...obj2 };
console.log(obj3); // {age:21,name:'mike',hobby:'soccer'}
μ΄ μ½λμμ obj1κ³Ό obj2κ° κ°μ μ΄λ¦μ μμ±μ κ°μ§κ³ μλ€λ©΄ ? es5κΉμ§λ μ€λ³΅λ μμ±λͺ μ μ¬μ©νλ©΄ μλ¬κ° λ°μνμ§λ§, es6λΆν°λ μ€λ³΅λ μμ±λͺ μ΄ νμ©λλ€. μ€λ³΅λ μμ±λͺ μ¬μ© μ μ΅μ’ κ²°κ³Όλ λ§μ§λ§ μμ±λͺ μ κ°μ΄ λλ€. μ€λ³΅λ μμ±λͺ κ³Ό μ κ° μ°μ°μλ₯Ό μ΄μ©νλ©΄ κ°μ²΄μ νΉμ μμ±κ°μ λ³κ²½ν λ μ΄μ κ°μ²΄μ μν₯μ μ£Όμ§ μκ³ μλ‘μ΄ κ°μ²΄λ₯Ό λ§λ€μ΄ λΌ μ μλ€. μ΄λ λ³μλ₯Ό μμ λΆκ°λ₯νλλ‘ κ΄λ¦¬ν λ μ μ©νκ² μ¬μ©λ μ μλ€.
4. λ°°μ΄ λΉκ΅¬μ‘°ν
λ°°μ΄ λΉκ΅¬μ‘°νλ λ°°μ΄μ μ¬λ¬ μμ±κ°μ λ³μλ‘ μ½κ² ν λΉν μ μλ λ¬Έλ²μ΄λ€. λ€μμ λ°°μ΄ λΉκ΅¬μ‘°νλ₯Ό μ¬μ©ν μ½λλ€.
const arr =[1,2];
const [a,b] = arr;
console.log(a); //1
console.log(b); //2
-------------------
let a, b;
[a,b] = [1,2];
λ°°μ΄μ μμ±κ°μ΄ μΌμͺ½μ λ³μμ μμλλ‘ λ€μ΄κ°λ€. μ΄λ κ² μλ‘μ΄ λ³μλ‘ ν λΉν μλ μκ³ μ΄λ―Έ μ‘΄μ¬νλ λ³μμ ν λΉν μλ μλ€.
const arr =[1,2,3];
const [a,, c] = arr;
console.log(a); //1
console.log(c);//3
κ·Έλ¦¬κ³ λ°°μ΄ λΉκ΅¬μ‘°νλ₯Ό μ¬μ©νλ©΄ μ 3μ λ³μκ° νμνμ§ μμ λΏλ§ μλλΌ λ¨ νμ€μ μ§§μ μ½λλ‘ κ΅¬νν μ μλ€. λ°°μ΄μμ μΌλΆ μμ±κ°μ 무μνκ³ μ§ννκ³ μΆλ€λ©΄ 건λλ°λ κ°μλ§νΌ μΌνλ₯Ό μ λ ₯νλ©΄ λλ€. 첫 λ²μ§Έ μμ±κ°μ λ³μ aμ ν λΉλλ€. λ λ²μ§Έ μμ±κ°μ 건λλ°κ³ μΈ λ²μ§Έ μμ±κ°μ΄ λ³μ cμ ν λΉλλ€. μΌν κ°μλ§νΌμ μ μΈν λλ¨Έμ§λ₯Ό μλ‘μ΄ λ°°μ΄λ‘ λ§λ€ μλ μλ€.
const arr = [1,2,3];
const [first, ...rest1] = arr;
console.log(rest1);
const [a,b,c, ...rest2] = arr;
console.log(rest2); // []
λ°°μ΄ λΉκ΅¬μ‘°ν μ λ§μ§λ§μ ...μ ν¨κ» λ³μλͺ μ μ λ ₯νλ©΄ λλ¨Έμ§ λͺ¨λ μμ±κ°μ΄ μλ‘μ΄ λ°°μ΄λ‘ λ§λ€μ΄μ§λ€. λλ¨Έμ§ μμ±κ°μ΄ μ‘΄μ¬νμ§ μμΌλ©΄ λΉ λ°°μ΄μ΄ λ§λ€μ΄μ§λ€.
5. κ°μ²΄ λΉκ΅¬μ‘°ν
const obj1 = {age:21,name:'mike'}
const {age, name} = obj; // κ°μ²΄ λΉκ΅¬μ‘°νμμλ μ€κ΄νΈλ₯Ό μ¬μ©
console.log(age); // 21
console.log(name); // mike
κ°μ²΄ λΉκ΅¬μ‘°νλ κ°μ²΄μ μ¬λ¬ μμ±κ°μ λ³μλ‘ μ½κ² ν λΉ ν μ μλ λ¬Έλ²μ΄λ€. κ°μ²΄ λΉκ΅¬μ‘°νμμλ μ€κ΄νΈλ₯Ό μ¬μ©νλ€. λ°°μ΄ λΉκ΅¬μ‘°νμμλ λ°°μ΄μ μμκ° μ€μ νμ§λ§ κ°μ²΄ λΉκ΅¬μ‘°νμμ μμλ 무μλ―Ένλ€. λ°λΌμ nameκ³Ό ageμ μμλ₯Ό λ°κΏλ κ²°κ³Όλ κ°λ€. λ¨, λ°°μ΄ λΉκ΅¬μ‘°νμμ μΌμͺ½ λ³μμ μ΄λ¦μ μμλ‘ κ²°μ ν μ μμ§λ§, κ°μ²΄ λΉκ΅¬μ‘°νμμλ κΈ°μ‘΄ μμ±λͺ κ·Έλλ‘ μ¬μ©ν΄μΌ νλ€.
'JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| ν΄λ‘μ κ°λ (0) | 2021.04.05 |
|---|---|
| ES6+ ν¨μμ νμ΄ν ν¨μ μμ보기 (0) | 2021.04.05 |
| es6+ κ°μ²΄ λΉκ΅¬μ‘°ν κ·Έλ¦¬κ³ κ°νλ ES6+ ν¨μμ κΈ°λ₯ (0) | 2021.04.05 |
| ES6+ μλ°μ€ν¬λ¦½νΈ 볡μ΅! λ³μ μ μ var, const, letμ λνμ¬ (0) | 2021.03.30 |