π‘ ν¨μ(Function)λ?
μ΄λ€ μμ μ μννκΈ° μν΄ νμν μ€ν λ¬Έμ₯λ€μ μ§ν©νμ¬ μ μν μ½λ λΈλ‘μ λλ€.
ν¨μμ μ₯μ μ νλ‘κ·Έλ¨μμ νΉμ μμ μ μ¬λ¬ λ² λ°λ³΅ν΄μΌ ν λ, ν΄λΉ μμ μ μννλ ν¨μ νλλ§ λ§λ€κ² λλ©΄
κΈ°λ₯μ λ ꡬννμ§ μμλ ν¨μλ₯Ό νΈμΆνκΈ°λ§ νλ©΄ λκ°μ κΈ°λ₯μ μ¬μ©ν μ μμ΅λλ€.
λν, ν¨μλ μ¬λ¬ λ² νΈμΆν μ μκΈ° λλ¬Έμ μ½λλ₯Ό μ¬μ¬μ©ν μ μμ΅λλ€.
β ν¨μ(Function)μ μ μ
μλ°μ€ν¬λ¦½νΈμμ ν¨μλ function ν€μλλ‘ μμνμ¬ ν¨μμ΄λ¦ () { } κ΅¬μ‘°λ‘ μ μΈν©λλ€.
// ν¨μ μ μΈ
function ν¨μμ΄λ¦(λ§€κ°λ³μ1, λ§€κ°λ³μ2) {
// μ€νλ¬Έμ₯
}
ν¨μμ΄λ¦(μΈμ1, μΈμ2); // ν¨μ νΈμΆ
1) ν¨μμ΄λ¦ : ν¨μ μ΄λ¦λ§ λ³΄κ³ λ μ΄λ€ κΈ°λ₯μ νλμ§ ννΈλ₯Ό μ»μ μ μμ΄μΌ ν©λλ€.
- λ¬Έμ, μ«μ, λ°μ€( _ ), λ¬λ¬κΈ°νΈ( $ )λ₯Ό κ°μ§ μ μμ΅λλ€. (μ΄ λ°μλ λͺ λͺ κ·μΉμ΄ λ μμ)
2) λ§€κ°λ³μ(Parameter) : ν¨μλ₯Ό νΈμΆν λ μ λ¬λ κ°(μΈμ1, μΈμ2...)μ ν¨μ λ΄λΆμμ μ μ₯, μ¬μ©νλ λ³μμ λλ€.
3) μΈμ(Argument) : ν¨μλ₯Ό νΈμΆν λ λ§€κ°λ³μλ‘ κ±΄λ€μ£Όλ λ³μ λλ μμμ λλ€.
-> μ¦, λ§€κ°λ³μ1 = μΈμ1, λ§€κ°λ³μ2 = μΈμ2μ λμΌν λ§μ λλ€.
- λ μλ₯Ό λ°μ λν΄μ£Όλ ν¨μ μμ
β λ μλ₯Ό λ°μ λν΄μ£Όλ ν¨μ μμ λ₯Ό ν΅ν΄μ μμΈν μμλ΄ μλ€.
function addNumber(x, y) {
console.log("λμ λν κ°μ " + (x + y));
}
addNumber(2, 3); // μ€νκ²°κ³Ό : λμ λν κ°μ 5
1) ν¨μμ μ΄λ¦μ addNumberμ λλ€.
2) addNumber ν¨μλ 2κ°μ λ§€κ°λ³μλ₯Ό κ°μ§κ³ μμ΅λλ€. μ΄ λ§€κ°λ³μμ μ΄λ¦μ κ°κ° x, yλΌκ³ μ νμ΅λλ€.
3) addNumber(2, 3); μΌλ‘ ν¨μλ₯Ό νΈμΆνμ΅λλ€.
-> x = 2, y = 3μ΄λΌλ κ°μ΄ μ λ¬λμκΈ° λλ¬Έμ 'λμ λν κ°μ 5' λΌλ κ²°κ΄κ°μ΄ λμ΅λλ€.
π‘ λ§μ½ λ§€κ°λ³μμ μΈμ λ λ€ μλ€λ©΄?
-> κ²°λ‘ μ 'μ무 μ΄μ μλ€' μ λλ€.
function addNumber() {
console.log("λμ λν κ°μ " + (2 + 3));
}
addNumber(); // μ€νκ²°κ³Ό : λμ λν κ°μ 5
μ΄λ° μμΌλ‘ λ§€κ°λ³μμ μΈμκ° μμ΄λ (2 + 3)μ΄λΌλ λ¬Έμ₯μ λ£μ΄μ£ΌκΈ°λ§ νλ©΄ μ€ν κ²°κ³Όλ λμΌν κ°μ΄ μΆλ ₯λ©λλ€.
π‘ λ§μ½ λ§€κ°λ³μλ μμ§λ§ μΈμκ° μλ€λ©΄?
π€ κ·Έλ°λ° λ¬Έμ κ° μμ΅λλ€.
λ§μ½ λ§€κ°λ³μλ μμ§λ§ μΈμκ° μλ€λ©΄ λ¬΄μ¨ λ¬Έμ κ° μκΈΈκΉμ?
function addNumber(x, y) {
console.log("λμ λν κ°μ " + (x + y));
}
addNumber();
λ€νν μ½μ μ°½μμ μ€λ₯κ° λ°μνμ§ μμ΅λλ€.
νμ§λ§ κ²°κ΄κ°μΌλ‘ NaN(Not a Numberμ μ½μ)μ΄λΌλ κ°μ΄ μΆλ ₯λλλ°μ.
μ΄λ μνμ μΌλ‘ μ μμ μΈ μ°μ°μ΄ λΆκ°νμ§λ§ μ΅μ§λ‘ μ°μ°μ΄ μ΄λ£¨μ΄μ§ κ²½μ° μ΄λ¬ν κ°μ΄ μ°μΆλ©λλ€.
xμ yμ κ°μ λ£μ΄μ£Όμ§ μμ μνμμ μ΄ λμ λνλ €κ³ νλ μ΄λ° κ²°κ³Όκ° λμ¨ κ²μ μ΄μ° 보면 λΉμ°ν μ μμ΅λλ€.
(λ¬Όλ‘ xμ yλ₯Ό μ¬μ©νμ§ μμΌλ©΄ μ무 λ¬Έμ κ° μμ΅λλ€.)
function addNumber(x, y) {
console.log("λμ λν κ°μ " + (2 + 3));
}
addNumber(); // μ€νκ²°κ³Ό : λμ λν κ°μ 5
β NaNμ ν΄κ²°λ°©λ² - λ§€κ°λ³μ κΈ°λ³Έκ° μ§μ
μΈμλ‘ κ°μ λ겨μ€μΌ λ§€κ°λ³μμ ν΄λΉ κ°μ΄ μ μ₯μ΄ λμ΄ μ¬μ©μ΄ κ°λ₯νλ°
μΈμλ‘ κ°μ λͺ» λκ²¨μ€ μνμμ λ§€κ°λ³μλ₯Ό μ¬μ©ν λ NaNμ΄ λ°μνμμ£ ?
μΈμλ‘ λͺ» λ겨μ€λ λ§€κ°λ³μ κΈ°λ³Έκ°μ μ§μ ν΄μ£Όλ©΄ κ·Έ κΈ°λ³Έκ°μ μ¬μ©νλ©΄ λλκΉ NaNμ΄ λ°μν μΌμ΄ μμν λ° λ§μ΄μ£ .
λ€νν μλ°μ€ν¬λ¦½νΈμμλ λ§€κ°λ³μμ κΈ°λ³Έκ°μ μ§μ ν μ μμ΅λλ€.
function addNumber(x = 2, y = 3) {
console.log("λμ λν κ°μ " + (x + y));
}
addNumber(); // μ€νκ²°κ³Ό : λμ λν κ°μ 5
μ΄λ°μμΌλ‘ λ§€κ°λ³μ () μμ x = 2, y = 3μ΄λΌκ³ λͺ μλ₯Ό νκ² λλ€λ©΄
addNumber(); νΈμΆ μ μΈμκ° μλλΌλ κΈ°λ³Έκ°μΈ 2μ 3μ΄ λ€μ΄μμ΄ κ°μ κ²°κ΄κ°μ μΆλ ₯ν μ μμ΅λλ€.
(λ§€κ°λ³μμ μΈμκ°μ μ€λ€κ³ νλ©΄ λΉμ°ν κΈ°λ³Έκ°μ΄ μλ μΈμκ°μ΄ λ€μ΄κ°λλ€.)
function addNumber(x = 2, y = 3) {
console.log("λμ λν κ°μ " + (x + y));
}
addNumber(3, 5); // μ€νκ²°κ³Ό : λμ λν κ°μ 8
β ν¨μμμ return μ¬μ©νκΈ°
ν¨μμμ μνλ κ²°κ΄κ°μ κ³μ°ν ν ν΄λΉ κ²°κ΄κ°μ λ°κ³ μΆμ λ λλ
ν¨μμ체λ₯Ό κ°μ λ‘ μ’ λ£μν€κ³ μΆμ λ μ¬μ©νλ ν€μλκ° returnμ λλ€!
1) μνλ κ²°κ΄κ°μ λ°κ³ μΆμ λ
function addNumber(x, y) {
console.log("λμ λν κ°μ " + (2 + 3));
return x + y;
}
var sum = addNumber(3, 5);
console.log("ν¨μμ return κ°μ " + sum);
μ§κΈκΉμ§μ λ€λ₯Έ μ μ΄λΌλ©΄ returnμ μΌλ€λ κ²κ³Ό ν¨μλ₯Ό νΈμΆ μν¬ λ λ³μμ μ μ₯νκ³ μμ£ ?
곡ν΅μ μ΄λΌλ©΄ νΈμΆν΄μ x = 3, y = 5λ₯Ό μ§μ΄λ£μκ³ μ½μμ 2 + 3μ νμΌλκΉ 'λμ λν κ°μ 5' κ° μΆλ ₯λμλ€λ κ²κΉμ§λ μκ² μ΅λλ€.
κ·Έλ°λ° return x + yλ 무μμΌκΉμ?
x + y = 3 + 5 = 8μ΄λΌλ κ²μ μ κ² κ°μ΅λλ€.
κ²°λ‘ ) returnμ μ°κ² λλ©΄ x + yλΌλ κ°μ ν¨μ λ°μμλ μ¬μ©μ΄ κ°λ₯ν΄μ§λλ€.
μ΄ ν¨μλ λ μλ₯Ό λ°μ λνλ©΄ μΌμ΄ λλ©λλ€.
κ·Έλ°λ° μ κ° μνλ κ²μ ν¨μλ°μμ λν κ²°κ΄κ°μ μ°κ³ μΆλ€λ κ²μ λλ€.
λ§€κ°λ³μ xμ yλ ν¨μλ΄μμλ§ μΈ μ μλ μ§μλ³μμ λλ€. ν¨μ λ°μμλ μ¬μ© ν μ μμ£ .
μ΄λ xμ yλ₯Ό ν¨μ λ°μμ κ°μ§κ³ μμ λ§μ μ μν¬ μ μλ€λ μλ―Έμ λλ€.
κ·Έλ λ€λ©΄ μ΄λ»κ² ν΄μΌν κΉμ?
κ·Έλ΄ λ μ°λ κ²μ΄ λ°λ‘ return μ λλ€.
returnμ μ°κ² λλ©΄ ν¨μ λ° -> ν¨μλ₯Ό νΈμΆμν¨ κ³³μ λν κ°μ λ°μ μ μμ΅λλ€.
ν¨μλ₯Ό νΈμΆν κ³³μμ λν κ°μ λ°λ κ²μ΄κ³ μ΄λ₯Ό μ°λ €λ©΄ λΉμ°ν λ³μμ μ μ₯μ μμΌμΌ νκΈ° λλ¬Έμ
var sum = addNumber(3, 5); λ₯Ό μ΄ κ²μ΄λλλ€.
μ΄μ κ·ΈλΌ ν¨μκ° μλ λ€λ₯Έ κ³³μμ sumμ΄λΌλ λ³μλ§ μμΌλ©΄ ν¨μμ κ²°κ΄κ°μ μ΄λμλ μ§ λΆλ¬μ¬ μ μκ² λ©λλ€.
returnμ μ΄ μν μ΄ λμΈμ€ μμμΌλ ν κ°μ§ μΌμ΄ λ μμ΅λλ€.
2) ν¨μ μ체λ₯Ό κ°μ μ’ λ£
function addNumber(x, y) {
console.log("λμ λν κ°μ " + (2 + 3));
return x + y;
console.log("1 + 2 = " + (1 + 2));
}
var sum = addNumber(3, 5);
console.log("ν¨μμ return κ°μ " + sum);
λ°©κΈ μΌλ μ½λμμ returnλ ν λ€μ μ½μμ νλ¦°νΈνμ΅λλ€.
μ€νν΄λ³΄μλ©΄ μκ² μ§λ§ μ½μμ μ΄λμλ 1 + 2 = 3μ΄λΌλ νλ¦°νΈλ μμ΅λλ€.
μ΄κ° μλ―Ένλ λ°λ returnλ¬Έ λ€μ μ¨ λͺ¨λ λ¬Έμ₯λ€μ μ€νμ΄ μ λμλ€λ κ²μ μ μ μμ£ .
μ¦, returnμ΄λΌλ λ¬Έμ₯μ΄ μ€νλμλ§μ ν¨μλ μ’ λ£κ° λλ€λ κ²μ μλ―Έν©λλ€.
λ€μ λ¬΄μ¨ λ¬Έμ₯λ€μ΄ μ€λμ§ μκ΄μμ΄ κ°μ μ’ λ£μν΅λλ€.
μ§κΈκΉμ§ ν¨μμ κΈ°λ³Έμ μΈ μ리μ μ¬μ©λ²μ λν΄ λ°°μ μ΅λλ€. κ°μ¬ν©λλ€ :)
