ES6+ Basic1
μΈνλ° ν¨μν νλ‘κ·Έλλ°κ³Ό JavaScript ES6+ / μ μΈλ
ν¨μν νλ‘κ·Έλλ°
μΌκΈ ν¨μ
μλ°μ€ν¬λ¦½νΈμμ ν¨μλ κ°μΌλ‘ λ€λ£° μ μμ(μΈμ, λ³μ, 리ν΄κ° λ±)
μ‘°ν©μ±κ³Ό μΆμνμ λꡬ
κ³ μ°¨ ν¨μ
ν¨μλ₯Ό κ°μΌλ‘ λ€λ£¨λ ν¨μ(ν¨μλ₯Ό μΈμλ‘ λ°μμ μ€ννλ ν¨μ)
ν¨μλ₯Ό λ§λ€μ΄ 리ν΄νλ ν¨μ(ν΄λ‘μ λ₯Ό λ§λ€μ΄ 리ν΄νλ ν¨μ)
ES6μ 리μ€νΈ μν
κΈ°μ‘΄μ forλ¬Έκ³Ό λ¬λΌμ§
for (const a of list){
log(a);
}
λ΄μ₯ μ΄ν°λ¬λΈ
Array
Set
Map
: κΈ°μ‘΄ forλ¬ΈμΌλ‘ μν λΆκ°map.keys()
ν€λ§ λ½μμ€map.values()
κ°λ§ λ½μμ€map.entries()
ν€μ κ°
μ΄ν°λ¬λΈ/μ΄ν°λ μ΄ν° νλ‘ν μ½
μ΄ν°λ¬λΈμ for..of, μ κ° μ°μ°μ λ±κ³Ό ν¨κ» λμνλλ‘ν κ·μ½
μ΄ν°λ¬λΈ : μ΄ν°λ μ΄ν°λ₯Ό 리ν΄νλ
[Symbol.iterator]()
λ₯Ό κ°μ§ κ°μ΄ν°λ μ΄ν° :
{ value, done }
κ°μ²΄λ₯Ό 리ν΄νλnext()
λ₯Ό κ°μ§ κ° (μνλ₯Ό νλ€κ° doneμ΄ trueκ° λλ©΄ λΉ μ Έλμ΄)
μ¬μ©μ μ μ μ΄ν°λ¬λΈ
const iterable = {
[Symbol.iterator]() {
let i = 3;
return {
next() {
return i == 0 ? { done: true } : { value: i--, done: false }
},
// μ΄ν°λ¬λΈμ μ΄ν°λ μ΄ν°λ‘ λ§λ νμ μ€νν΄λ μνκ° λμ΄μΌ ν¨
[Symbol.iterator]() { return this; }
}
}
};
let iterator = iterable[Symbol.iterator]();
for (const a of iterable) log(a);
//μ΄ν°λ μ΄ν°κ° μκΈ° μμ λν μ΄ν°λ¬λΈμ΄λ©΄μ μκΈ° μμ μμ λ°νν λ μ ꡬνλ μ΄ν°λ¬λΈμ΄λΌκ³ ν μ μμ
λ΄μ₯ λμ§ μμ μΈλΆ λΌμ΄λΈλ¬λ¦¬μ μ΄ν°λ¬λΈλ μ¬λ³Ό μ΄ν°λ μ΄ν°κ° ꡬνλμ΄ μμΌλ©΄(μ΄ν°λ¬λΈ/μ΄ν°λ μ΄ν° νλ‘ν μ½μ λ°λ₯Έλ€λ©΄) μνν μ μμ
μ κ° μ°μ°μ
μ΄ν°λ¬λΈ/μ΄ν°λ μ΄ν° νλ‘ν μ½μ λ°λ₯΄λ κ°μ²΄λ€μ μ κ°ν μ μμ
...
μ κ° μ°μ°μ
μ λλ μ΄ν°
μ΄ν°λ μ΄ν°μ΄μ μ΄ν°λ¬λΈμ μμ±(리ν΄)νλ ν¨μ
// μΌλ° ν¨μμμ *μ λΆμ¬μ λ§λ¬
function *gen() {
yield 1;
if (false) yield 2;
yield 3;
return 100;
//리ν΄κ°λ λ°νν μ μμ(doneμ΄ trueκ° λ λ)
}
for (const a of gen()) log(a);
//odds μμ
function *ifinity(i = 0) {
while (true) yield i++;
}
function *limit(l, iter) {
for (const a of iter) {
yield a;
if (a == l) return;
}
}
function *odds(l) {
for(const a of limit(l, ifinity(1))) {
if (a % 2) yield a;
}
}
λ¬Έμ₯μ μ΄μ©ν΄ μνν κ°μ μμ±νλ μ λλ μ΄ν°λ₯Ό μ΄μ©ν΄ μ΄λ ν κ°μ΄λ μννλλ‘ λ§λ€ μ μμ
ꡬ쑰 λΆν΄, λλ¨Έμ§ μ°μ°μ
log(...odds(10));
log([...odds(10), ...odds(20)]);
const [head, ...tail] = odds(5);
log(head);
log(tail);
const [a, b, ...rest] = odds(10);
log(a);
log(b);
log(rest);
220107 κ·Έλ₯ κ·Έλ ꡬλ νκ³ λμ΄κ°λ μ λλ μ΄ν°μ λμμ λν΄ μ΄λμ λ μ΄ν΄ν μ μμλ€. μ¬λ¬λ² λ°λ³΅ν΄μ λ³΄κ³ μ°μ΅ν΄λ΄μΌκ² λ€
Last updated