- Published on
π JS(5)-λλ¦Όμ½λ© κ°μ μ 리
- κΈμ΄μ΄
π λͺ©μ°¨
β¨ μλ°μ€ν¬λ¦½νΈ κΈ°μ΄ κ°μ (ES5+): κ°μ΄ λ ΈνΈλ₯Ό μμ±νλ©° λ°°μμ π
ππ»
- μλ°μ€ν¬λ¦½νΈμ μμ¬μ λͺ©μ λ° λν₯
- μλ°μ€ν¬λ¦½νΈ λμμ리
ν¨μ(5κ°)
μ μ°¨μ μΈ μΈμ΄κ°μ κ²½μ°λ ν¨μκ° κ΅μ₯ν μ€μνλ€. μλ°μ€ν¬λ¦½νΈλ procedural languageμ€μ νλμ΄λ€.
1. Function
input(x)μ λ£μΌλ©΄ output(f(x))μ΄ λμ€λ κ²μ΄ λ°λ‘ ν¨μ ν¨μμ μ΄λ¦μ μ νλ κ²μ΄ μ€μ!!
- fundamental building block in the program
- subprogram can be used multiple times
- performs a task or calculates a value
2. Function declaration
ν¨μ μμ±λ² : function name(param1, param2) { body... return; }<br />
νλμ ν¨μλ νκ°μ§μ μΌλ§ ν΄μΌνλ€ : one function === one thing<br />
λμ¬ννλ‘ μ΄λ¦μ μ§μ΄μΌ νλ€. : naming: doSomething, command, verb<br />
e.g. createCardAndPoint -> createCard, createPoint<br />
`function` is object in JS
3. Parameters
primitive parameters: passed by value
object parameters: passed by reference
4. Default parameters (added in ES6)
function showMessage(message, from = 'unknown') {
console.log(`${message} by ${from}`);
}
showMessage('Hi!');
5. Rest parameters
...
μ μ°λ©΄ λ°°μ΄ ννλ‘ μΈμκ° μ λ¬λλ€.
function printAll(...args) {
for (let i = 0; i < args.length; i++) {
console.log(args[i]);
}
//for of
for (const arg of args) {
console.log(arg);
}
args.forEach((arg) => console.log(arg));
}
printAll('dream', 'coding', 'ellie');
6. Local scope
ν΄λ‘μ λ λ μν΄ μΈλ°μ΄λ¬λ¨ΌνΈ?λ₯Ό μΈ λ μ€μ
λ°μμλ μμ΄ λ³΄μ΄μ§ μκ³ μμμλ§ λ°μ λ³Ό μ μλ€. -> μ§μ λ³μ
7. Return
ν¨μμμλ κ³μ°ν κ°μ returnμ ν΅ν΄ λ°ννλ€.
8. Early return, early exit
μ‘°κ±΄μ΄ λ§μ§ μμ λλ 빨리 returnμ ν΄μ ν¨μλ₯Ό μ’ λ£νκ³ μ‘°κ±΄μ΄ λ§λ κ²½μ° κ·Έ λ€μ κ³μ°μ μ§ννλ€.
9. Function expression
ν¨μλ₯Ό μ μΈν¨κ³Ό λμμ λ³μμ ν λΉν¨ -> μ΄λ¦μ΄ μλ ν¨μ. ν¨μ μ μΈμ νλ©΄ hoistingμ΄ κ°λ₯νμ§λ§ ν¨μ ννμμ hoistingμ΄ λΆκ°λ₯νλ€. ν¨μ ννμμμ μ΄λ¦μ μ§μ ν¨μλ λλ²κΉ μ ν λ μ¬μ©νλ€.
10. Callback function
ν¨μλ₯Ό parametersμ μ λ¬ν΄μ μμ ν¨μμ κ°μ λ°λΌ μ λ¬λ ν¨μλ₯Ό νΈμΆνλ€.
11. Arrow function
ν¨μλ₯Ό κ°κ²°νκ² λ§λ€μ΄μ£Όλ anonymous ν¨μ
λΈλλ μμ°κ³ μ΄λ¦λ μμ°κ³ return
λ μμ°κ³ =>
μΌλ‘ κ°κ²°νκ² νννλ€.
λΈλμ μ¨λ λλλ° κ·Έλ¬λ©΄ return
μ μ¬μ©νλ€.
ν¨μν νλ‘κ·Έλλ°μμ λΉμ λ°νλ€~!
12. IIFE
Immediately Invoked Function expression ν¨μλ₯Ό λ°λ‘λ°λ‘ μ€ννκ³ μΆμλ μ°λ ν¨μ