
π κΈμ μμνκΈ° μ μ
ν΄λΉ κΈμ νμ μ€ν¬λ¦½νΈ νλ‘κ·Έλλ° μ± κ³Ό μ λ°λ―Έ νμ μ€ν¬λ¦½νΈ κ°μλ₯Ό 곡λΆνμ¬ μ 리ν κΈμ λλ€.
μμ ν΄μΌ ν λΆλΆμ΄ μλ€λ©΄ μΈμ λ μ§ μλ €μ£ΌμΈμ!
ν¨μμ νλΌλ―Έν° νμ μ μ
(νλΌλ―Έν° = 맀κ°λ³μ)
ν¨μλ₯Ό νμ
μ€ν¬λ¦½νΈμμ μ μν λ ν¨μμ νλΌλ―Έν°λ λͺ
μμ μΌλ‘ νμ
μ μ μνλ©° λ°ν νμ
μ μΆλ‘ νλλ‘ λλ€.
νμ
μ€ν¬λ¦½νΈλ λͺκ°μ§ νΉμν μν©μ μ μΈνκ³ λ 맀κ°λ³μ νμ
μ μΆλ‘ νμ§ μκ³ ,
λͺ
μμ μΌλ‘ μ μν 맀κ°λ³μλ₯Ό ν΅ν΄ λ°ν νμ
μ μλμΌλ‘ μΆλ‘ νκΈ° λλ¬Έμ΄λ€.
맀κ°λ³μλ₯Ό μ μΈν λ μ νμ μΌλ‘ μ μΈν μλ μλ€.
μ νμ 맀κ°λ³μλ₯Ό μμ±νκΈ° μν΄μλ κ°μ₯ λ§μ§λ§μ λ¬Όμν νμμ ν¨κ» μμ±νλ©΄ λλ€.
function log(message:string, userId?: string) {
let time = new Date().toLocaleTimeString();
console.log(time, message, userId || 'Not');
}
log('Page loaded'); // "μ€μ 9:51:29", "Page loaded", "Not"
log('User Signed in', "Jae"); // "μ€μ 9:51:29", "User Signed in", "Jae"
μ μ½λλ logν¨μ
λ message
μ userId
λ₯Ό 맀κ°λ³μλ‘ κ°λλ°, userId
λ κ°μ΄ μ λ¬ λ μλ, μλ μλ μμΌλ©°
userId
κ° μ λ¬λμ§ μμΌλ©΄ 'Not'
μ μΆλ ₯νλΌλ μλ―Έμ΄λ€.
μ λ°©λ²λ³΄λ€ λ λͺ
μμ μΌλ‘ κΈ°λ³Έκ°μ μμ±νμ¬ λ μ½κΈ° μ’μ μ½λλ₯Ό λ§λ€ μ μλ€.
function log(message:string, userId = "Not signed in") {
let time = new Date().toLocaleTimeString();
console.log(time, message, userId || 'Not');
}
log('Page loaded'); // "μ€ν 2:25:40", "Page loaded", "Not signed in"
log('User Signed in', "Jae"); // "μ€ν 2:25:40", "User Signed in", "Jae"
맀κ°λ³μλ₯Ό μ λ¬λ°μ λ λͺ κ°μ 맀κ°λ³μκ° μ λ¬λ μ§ μ νν μ μ μμ κ²½μ° μλ°μ€ν¬λ¦½νΈμμλ arguments
λ₯Ό μ¬μ©νμλ€.
function sum():number {
return Array.from(arguments).reduce((total,n) => total + n, 0);
}
sum(1,2,3); // Error:: Expected 0 arguments, but got 3.
μ μ½λλ arguments
λ μμ λ°°μ΄μ΄ μλκΈ° λλ¬Έμ Array.from()
μ μ¬μ©ν΄μ λ°°μ΄λ‘ λ§λ€μ΄μ€ λ€μ,
reduce()
λ₯Ό μ¬μ©νμ¬ ν©κ³λ₯Ό ꡬνλ ν¨μμ΄λ€.
νμ§λ§ μ½λλ₯Ό μ€νμν€λ©΄ μ€λ₯κ° λ°μνλ©΄μ total
κ³Ό n
μ any
λ‘ νμ
μ΄ μΆλ‘ λλ€.
μ΄λ° λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄μλ λλ¨Έμ§ λ§€κ°λ³μ(Rest Parameters)λ₯Ό μ¬μ©νλ©΄ λλ€.
μμ νκ² μμμ 맀κ°λ³μλ₯Ό μ λ¬λ°μ μ μμΌλ©° νμ
μΆλ‘ λ numberλ‘ μ λμ΄ μμ νκ² μ½λλ₯Ό μμ±ν μ μκ²λλ€.
function sumSafe(...numbers: number[]):number {
return numbers.reduce((total,n) => total + n,0);
}
console.log(sumSafe(1,2,3)); // 6
νκ°μ§ μ£Όμν΄μΌ ν μ μ, λλ¨Έμ§ λ§€κ°λ³μλ₯Ό μ¬μ©ν λ κ°μ₯ λ§μ§λ§μ μμΉν΄μμ΄μΌ νλ€λ κ²μ΄λ€.
function sumSafe(a:number, b:number, ...numbers: number[]):number {
console.log(a); // 100
console.log(b); // 101
return numbers.reduce((total,n) => total + n,0);
}
console.log(sumSafe(100, 101, 1,2,3)); // 6