μ± <λ¬λμλ°μ€ν¬λ¦½νΈ>λ₯Ό κΈ°λ³ΈμΌλ‘ λ°°μ΄ μλ°μ€ν¬λ¦½νΈ λ΄μ©μ λλ€.
λͺ©μ°¨
- <λ°μ΄ν° νμ >
- 1. λ³μμ μμ, 리ν°λ΄
- 2. μλ³μ
- 3. μλ°μ€ν¬λ¦½νΈμ κ° - μμ νμ κ³Ό κ°μ²΄
- <ν¨μ>
- 1. ν¨μ μ μΈ
- 2. ν¨μ ννμ, νμ΄ν νκΈ°λ²
- 3. ν¨μ νΈμΆ, (call, apply, bind)
<λ°μ΄ν° νμ >
1. λ³μμ μμ, 리ν°λ΄
1-1) λ³μ(let)μ μμ(const) : μ΄κΉκ° μλ΅κ°λ₯, μλ΅νλ©΄ undefinedμΌλ‘ λ체λ¨
let/const λ³μ/μμμ΄λ¦;
let/const λ³μ/μμμ΄λ¦ = μ΄κΉκ°;
let/const λ³μ/μμμ΄λ¦1 = μ΄κΉκ°1, λ³μ/μμμ΄λ¦2 = μ΄κΉκ°2;
β» λ³μ vs μμ
μ°μ μμλ‘ λ§λ€κ³ λ³νλκ² μμ°μ€λ½λ€κ³ μκ°λλ©΄ λ³μλ‘ λ³κ²½
μμΈ) μμx, νμ λ³μμΈ κ²½μ° : 루ν, μκ°μ΄ μ§λλ©΄μ κ°μ΄ λ°λλ κ²½μ°
1-2) 리ν°λ΄ : κ°μ μ§μ ν΄μ€λμ ν λΉλλ κ°
2. μλ³μ : κ°μ²΄(λ³μ, μμ, ν¨μ)μ μ΄λ¦
2-1) μλ³μ μ΄λ¦ κ·μΉ
- μλ³μλ λ°λμ κΈμλ λ¬λ¬ κΈ°νΈ($), λ°μ€(_)λ‘ μμν΄μΌ ν©λλ€.
- μλ³μμλ κΈμμ μ«μ, λ¬λ¬ κΈ°νΈ, λ°μ€λ§ μΈ μ μμ΅λλ€.
- πλ ö κ°μ μ λμ½λ λ¬Έμλ μΈ μ μμ΅λλ€.
- μμ½μ΄λ μλ³μλ‘ μΈ μ μμ΅λλ€.
- μλ³μλ λλ¬Έμλ‘ μμν΄μλ μ λ©λλ€.
- λ°μ€ ν κ° λλ λ κ°λ‘ μμνλ μλ³μλ μμ£Ό νΉλ³ν μν©, λλ ‘λ΄λΆ’ λ³μμμλ§ μ¬μ©ν©λλ€. μμ λ§μ νΉλ³ν λ³μ μΉ΄ν κ³ λ¦¬λ₯Ό λ§λ€μ§ μλ ν, λ³μλ μμ μ΄λ¦μ λ°μ€λ‘ μμνμ§ λ§μμμ€.
- μ μ΄μΏΌλ¦¬λ₯Ό μ¬μ©ν κ²½μ°, λ¬λ¬ κΈ°νΈλ‘ μμνλ μλ³μλ λ³΄ν΅ μ μ΄μΏΌλ¦¬ κ°μ²΄λΌλ μλ―Έμ λλ€.
3. μλ°μ€ν¬λ¦½νΈμ κ° - μμ νμ κ³Ό κ°μ²΄
μμνμ | μ«μ, λ¬Έμμ΄, boolean, null, undefined, symbol |
κ°μ²΄(μ¬λ¬ κ°μ§ νν, κ° μ§μ ) | Array, Date, RegExp, Mapκ³Ό WeakMap, Setκ³Ό WeakSet |
<ν¨μ>
1. ν¨μ μ μΈ
function ν¨μμ΄λ¦(){
//...
}
#μ°Έμ‘°
ν¨μμ΄λ¦;
#νΈμΆ
ν¨μμ΄λ¦();
2. ν¨μ ννμ
#ν¨μμ΄λ¦ μλ΅κ°λ₯, μ¬κ·ν λ νμ
const g = function ν¨μμ΄λ¦(){
//...
}
2-1) νμ΄ν νκΈ°λ² : functionλ¨μ΄μ μ€κ΄νΈ μ«μλ₯Ό μ€μ΄λ €κ³ κ³ μλ¨
- functionμ μλ΅ν΄λ λ¨.
- ν¨μμ 맀κ°λ³μκ° λ¨ νλ λΏμ΄λΌλ©΄ κ΄νΈ (())λ μλ΅κ°λ₯.
- ν¨μ λ°λκ° ννμ νλλΌλ©΄ μ€κ΄νΈμ returnλ¬Έλ μλ΅κ°λ₯.
- ex) νμ΄ν νκΈ°λ²μ νμ μ΅λͺ ν¨μ.
const f1 = () => "Hello!";
const f2 = name => "Hello!, $(name)";
const f3 = (a,b) => a+b;
3. ν¨μ νΈμΆ
3-1) ν¨μ νΈμΆ λ°©λ²
ν¨μμ΄λ¦();
ν¨μμ΄λ¦.call/apply/bind(κ°μ²΄,μΈμ/[μΈμ]);
3-2) call, apply, bind : ν¨μμ μ€νμμμ μ§μ ν΄μ£Όλ ν¨μμ λ©μλ
- apply : λ°°μ΄λ‘ μΈμλ₯Ό μ λ¬.
ν¨μ.apply(μΈμ1, μΈμ2, ...)
- call : μΈμλ₯Ό νλμ© μ λ¬, 2λ²μ§Έ μΈμλΆν΄ νΈμΆνλ ν¨μλ‘ μ λ¬.
ν¨μ.call(μΈμ1, μΈμ2, ...)
- bind : thisμ κ°μ μꡬν λ°κΏ λ μ¬μ©.
const f = ν¨μ.bind(λ°κΏκ°)
'π° μΈμ΄ > JS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
κ°μ²΄ μ§ν₯ μΈμ΄ - νλ‘ν νμ κΈ°λ° μΈμ΄(JS) (0) | 2020.01.04 |
---|---|
λ°°μ΄κ³Ό λ°°μ΄μ²λ¦¬ (0) | 2020.01.03 |
μ€μ½ν(2) (0) | 2019.12.22 |
μ€μ½ν(1) (0) | 2019.12.20 |
μλ°μ€ν¬λ¦½νΈ κ°λ°λꡬ - git, npm, gulp (0) | 2019.12.16 |