22.04.09 νμ μ€ν¬λ¦½νΈμ ν¨μ
π μ± μ μ½κ² λ κ³κΈ°
4μ£Ό νλ‘μ νΈλ₯Ό νμ μ€ν¬λ¦½νΈλ‘ μ§ννλ€.
νμ μ€ν¬μ νΈλ₯Ό λμ ν μ΄μ λ, νλ‘κ·Έλ¨μ΄ 볡μ‘ν΄μ§ κ²μ μ°λ €ν΄μλ€.
μ±μ μλΉ λΆλΆμμ λ¬Έμμ΄, μ«μ, λ°°μ΄ λ± λ€μν μλ£νμ΄ κ°μΌλ‘ μ‘΄μ¬νλ κ°μ²΄λ₯Ό dataλ‘ λ€λ€κΈ°λλ¬Έμ΄λ€.
κ°μ²΄ λ΄μ κ°μ μ‘°μνλ©΄μ λ°μνλ λ€μν μ€λ₯λ€μ νμ μ€ν¬λ¦½νΈκ° μ‘μμ€κ±°λΌ μκ°νλ€.
μλ°μ€ν¬λ¦½νΈλ νλ‘κ·Έλ¨μ μ€νν΄μΌλ§ μ€λ₯λ₯Ό λ°κ²¬νμ§λ§
νμ μ€ν¬λ¦½νΈλ μ»΄νμΌ λ¨κ³μμ μ€λ₯λ₯Ό λ°κ²¬ν μ μκΈ° λλ¬Έμ νλ‘κ·Έλλ°μ λ ν¨κ³Όμ μΌκ±°λΌ νλ¨νλ€.
μμμ μ’μμΌλ ! μΈμ΄λ₯Ό μΆ©λΆν μμ§ν μκ° μμ΄ νλ‘μ νΈλ₯Ό μ§ννλλ νλ λ΄λ΄ μ°μ°νλ€.
λ΄κ° μλ μμ£Ό κΈ°λ³Έμ μΈ νμ λ²μ μμμλ§ λ§΄λκ³ μλ€λ μκ°μ΄ λ€μλ€.
νμ μ€ν¬λ¦½νΈμ μ₯μ μ λ°±λΆ νμ©νμ§ λͺ»ν λλμ΄ λ€μκ³ , μ μ νμ μΈμ΄λ₯Ό 곡λΆν νμμ±λ κΉ¨λ¬μλ€.
μ’ λ κ·Όλ³Έμ μΈ κ°λ μ λ€μ§κ³ μΆμ΄μ μ± μ μ°Ύκ² λμλ€.
(κ·Έ μΈ λκΈ°μ€μΈ μ± λ€ : μκ°νλ νλ‘κ·Έλλ°, introduction to Algorithm)
λͺ©μ°¨
β νμ μ€ν¬λ¦½νΈμμ ν¨μλ₯Ό μ μΈνκ³ μ€ννλ λ€μν λ°©λ²
β μκ·Έλμ² μ€λ²λ‘λ©
β λ€νμ ν¨μ
β λ€νμ νμ λ³μΉ
π νμ μ€ν¬λ¦½νΈμμ ν¨μλ₯Ό μ μΈνκ³ μ€ννλ λ€μν λ°©λ²
νμ μ€ν¬λ¦½νΈλ νΉλ³ν μν©μ μ μΈνλ©΄ ν¨μμ 맀κ°λ³μ νμ μ μΆλ‘ νμ§ μλλ€.
κ·Έμ λΉν΄ λ°ν νμ μ μΆλ‘ νλ€ β
→ ν¨μμ 맀κ°λ³μλ κ°λ°μκ° λͺ μν΄μ£Όλ κ²μ΄ μ’μ§λ§, λ°ν νμ μ λͺ μνμ§ μλ κ²μ΄ μ’λ€.
+νμ μ€ν¬λ¦½νΈλ ν¨μ μμ±μλ₯Ό μ μΈν λͺ¨λ λ¬Έλ²μ μμ νκ² μ§μνλ€.
// μ λͺ
ν¨μ
function func1(name: string){
return 'hello ' + name;
}
// ν¨μ ννμ
let func2 = function(name: string){
return 'hello ' + name;
}
// νμ΄ν ν¨μ ννμ
let func3 = (name: string) => {
return 'hello ' + name;
}
// λ¨μΆν νμ΄ν ν¨μ ννμ
let func4 = (name: string) =>
'hello ' + name;
// ν¨μ μμ±μ (μ¬μ© μμ )
let func5 = new Function('name', 'return "hello " + name');
π νμ μ€ν¬λ¦½νΈμμ ν¨μ μμ±μλ‘ ν¨μλ₯Ό μ μΈνλ©΄ μλλ μ΄μ ?
ν¨μ μμ±μλ‘ μ μΈν ν¨μμ νμ μ Function μ΄λ€.
Function νμ μ Function.prototypeμ λ©μλλ₯Ό λͺ¨λ κ°μ§ (μ€μν) κ°μ²΄λ€.
κ·Έλ°λ° 맀κ°λ³μ νμ κ³Ό λ°ν νμ μ μ§μ νμ§ μμκΈ° λλ¬Έμ μ΄λ€ μΈμλ₯Ό μ λ¬ν΄λ νΈμΆν μ μκ² λλ€.
μ΄ κ³Όμ μμ λ¬Έμ κ° μ겨λ νμ μ€ν¬λ¦½νΈκ° λμμ€ μ μλ κ² μλ€. κ·Έλμ ν¨μ μμ±μλ‘ μ μΈνμ§ μλκ±°λ€.
• μ νμ 맀κ°λ³μ & κΈ°λ³Έ 맀κ°λ³μ
// μ νμ 맀κ°λ³μ
function log(message: string, userId?: string){
let time = new Date().toLocalTimeString();
console.log(time, message, userId || 'Not signed in');
}
// κΈ°λ³Έ 맀κ°λ³μ
function log(message: string, userId = 'Not signed in'){
let time = new Date().toISOString();
console.log(time, message, userId);
}
μ€λ¬΄μμλ μ νμ 맀κ°λ³μλ³΄λ€ κΈ°λ³Έ 맀κ°λ³μλ₯Ό λ μμ£Ό μ¬μ©νλ€.
• λλ¨Έμ§ λ§€κ°λ³μ
// μμ νμ§ μμ arguments νμ
function sumVariadic(): number {
return Array
.from(arguments)
.reduce((total, n) => total + n, 0);
}
sumVariadic(1, 2, 3); // 6μΌλ‘ νκ°
// μμ ν νμ
μ κ°λ³ μΈμ → rest parameters
function simVariadicSafe(...numbers: number[]): number {
return numbers.reduce((total, n) => total + n, 0);
}
simVariadicSafe(1, 2, 3); // 6μΌλ‘ νκ°
rest parameter λ₯Ό μ¬μ©ν΄ λ μμ ν νμ μ²΄ν¬ π