λͺ¨λν μ μλκ±° λ§λκ±°λ?
2024/01/18(λͺ©) 5:00PM
12μ₯ ν¨μ(154.page ~ 188.page)
ν¨μλ μΌλ ¨μ κ³Όμ μ λ¬Έ(statement)μΌλ‘ ꡬννκ³ μ½λ λΈλ‘μΌλ‘ κ°μΈμ νλμ μ€ν λ¨μλ‘ μ μνκ².
ν¨μ λ΄λΆλ‘ μ
λ ₯μ μ λ¬λ°λ λ³μλ₯Ό λ§€κ°λ³μ(parameter)
ν¨μ νΈμΆν λ μ
λ ₯ κ°μ μΈμ(argument)
ν¨μ λ΄λΆμ μΆλ ₯ ν κ°μ λ°νκ°(return value)
μ΄λΌκ³ νλ€.
λν ν¨μλ κ°μ΄λ©°, μ¬λ¬ κ° μ‘΄μ¬ν μ μμΌλ―λ‘ νΉμ ν¨μλ₯Ό ꡬλ³νκΈ° μν΄ μλ³μμΈ ν¨μ μ΄λ¦μ μ¬μ©ν μ μλ€.
ν¨μλ ν¨μ μ μλ₯Ό ν΅ν΄ μμ±νλ€. κ·Έλ¬λ ν¨μ μ μλ§μΌλ‘ ν¨μκ° μ€νλλ κ²μ μλλ€.
ν¨μλ₯Ό μ€ννλ €λ©΄ μΈμλ₯Ό λ§€κ°λ³μλ₯Ό ν΅ν΄ ν¨μμ μ λ¬νλ©΄μ ν¨μμ μ€νμ λͺ μμ μΌλ‘ μ§μν΄μΌ νλ€.
μ΄λ₯Ό ν¨μ νΈμΆ(function call/invoke)
μ΄λΌ νλ€.
ν¨μλ λͺ λ²μ΄λ νΈμΆν μ μμΌλ―λ‘ μ½λμ μ¬μ¬μ©μ΄λΌλ μΈ‘λ©΄μμ λ§€μ° μ μ©νλ€.
ν¨μλ₯Ό μ¬μ©νλ€λ©΄ μ½λμ μ€λ³΅μ μ΅μ νκ³ μ¬μ¬μ©μ±μ λμ΄λ ν¨μλ μ μ§λ³΄μμ νΈμμ±μ λμ΄κ³ μ€μλ₯Ό μ€μ¬ μ½λμ μ λ’°μ±μ λμ΄λ ν¨κ³Όκ° μλ€.
ν¨μλ κ°μ²΄ νμ
μ κ°μ΄λ€.λ°λΌμ μ΄λ¦(μλ³μ)μ λΆμΌ μ μλ€.
κ° ν¨μλ§λ€ μ΄λ€ μν μ ν¨μμΈμ§ λ³μ μ΄λ¦μΌλ‘ λͺ
ννκ² λνλΌ μ μκΈ°λλ¬Έμ μ½λμ κ°λ
μ±μ ν₯μμν€κΈ°λνλ€.
μ½λλ λμνλ κ²λ§μ΄ μ‘΄μ¬ λͺ©μ μ΄ μλλ€. μ½λλ κ°λ°μλ₯Ό μν λ¬Έμμ΄κΈ°λ νλ€. λ°λΌμ μ¬λμ΄ μ΄ν΄ μ μλ μ½λ, μ¦ κ°λ μ±μ΄ μ’μ μ½λκ° μ’μμ½λλΌκ³ νλ€.
ν¨μλ₯Ό μ μνλ λ°©λ²μλ 4κ°μ§κ° μλ€.
<script>
function (x,y){
return x + y;
}
// SyntaxError: Function statements require a function name
</script>
ν¨μ μ μΈλ¬Έμ ννμμ΄ μλ λ¬Έμ΄λ€. κ·Έλ¬λ―λ‘ λ³μμ ν λΉν μ μλ€.
ν¨μ μ μΈλ¬Έμ λ³μμ ν λΉν΄λ³΄λ©΄ ν λΉμ΄ λλκ²μ²λΌ 보μ΄μ§λ§ λ©λͺ¨λ¦¬μμΌλ‘ κ·Έλ μ§μλ€.
ν¨μ ννμ
ν¨μλ μΌκΈ κ°μ²΄μ΄λ―λ‘ ν¨μ 리ν°λ΄λ‘ μμ±ν ν¨μ κ°μ²΄λ₯Ό λ³μμ ν λΉν μ μλ€.
μ΄λ¬ν ν¨μ μ μ λ°©μμ ν¨μ ννμ(function expression)μ΄λΌ νλ€.
ν¨μ 리ν°λ΄μ ν¨μ μ΄λ¦μ μλ΅ν μ μλ€.
μ΄λ¦μ μλ΅ν ν¨μλ μ΅λͺ
ν¨μλΌκ³ λΆλ¦°λ€.
ννμμ ν¨μ 리ν°λ΄μ ν¨μ μ΄λ¦μ μλ΅νλ κ²μ΄ μΌλ°μ μ΄λΌκ³ νλ€.
ν¨μ ννμμΌλ‘ μ μν ν¨μλ ν¨μ ννμ μ΄μ μ νΈμΆ λΆκ°λ₯νλ€.
<script>
//ν¨μ μ μΈλ¬Έ
function add (x,y){
return x + y;
}
//ν¨μ ννμ
var sub = function (x,y) {
return x - y;
};
</script>
function μμ±μ ν¨μ
function μμ±μ ν¨μλ‘ ν¨μλ₯Ό μμ±νλ λ°©μμ μΌλ°μ μ΄μ§ μμΌλ©° λ°λμ§νμ§λ μλ€κ³ νλ€.
νμ΄ν ν¨μ(ES6)
μ΅κ·Ό μλ°μ€ν¬λ¦½νΈ λ¬Έλ²μ μ ν΄λ³Έμ¬λμ const result = () => {}λ₯Ό νλ²μ΄λΌλ μ ν΄λ΄€μκ²μ΄λ€.
μ΄λ¦μμλ μ μΆν μ μλ―μ΄ function ν€μλ λμ νμ΄ν => λ₯Ό μ¬μ©ν΄ μ’ λ κ°λ΅ν λ°©λ²μΌλ‘ ν¨μλ₯Ό μ μΈν μ μλ€.νμ΄ν ν¨μλ νμ μ΅λͺ
ν¨μλ‘ μ μνλ€.
νμ΄ν ν¨μλ μμ±μ ν¨μλ‘ μ¬μ©ν μ μμΌλ©°, κΈ°μ‘΄ ν¨μμ thisλ°μΈλ© λ°©μμ΄ λ€λ₯΄κ³ ,prototype νλ‘νΌν°κ° μμΌλ©° arguments κ°μ²΄λ₯Ό μμ±νμ§ μλλ€κ³ νλ€.
<script>
//νμ΄ν ν¨μ
const result = (x,y) => x+y;
//νμ΄ν ν¨μλ μλ ννμμ μ’ λ κ°λ΅νκ² μ μΈν κ².
const result = function result(x,y){
return x + y ;
}
</script>
μ¦μ μ€ν ν¨μ
μ΅λͺ
μ¦μ μ€ν ν¨μ
κΈ°λͺ
μ¦μ μ€ν ν¨μ
μ¦μ μ€ν ν¨μλ ν¨μ μ΄λ¦μ΄ μλ μ΅λͺ
ν¨μλ₯Ό μ¬μ©νλ κ²μ΄ μΌλ°μ μ΄λ€.
ν¨μ μ΄λ¦μ΄ μλ κΈ°λͺ
μ¦μ μ€ν ν¨μλ μ¬μ©ν μ μλ€.
νμ§λ§ κ·Έλ£Ή μ°μ°μ ( ) λ΄μ κΈ°λͺ
ν¨μλ ν¨μ μ μΈλ¬Έμ΄ μλλΌ ν¨μ 리ν°λ΄
λ‘ νκ°λλ©° ν¨μ μ΄λ¦μ ν¨μ λͺΈμ²΄μμλ§ μ°Έμ‘°ν μ μλ μλ³μμ΄λ―λ‘ μ¦μ μ€ν ν¨μλ₯Ό λ€μ νΈμΆν μ λ μλ€.
μ½λ°± ν¨μ λͺ¨λ μλ°μ€ν¬λ¦½νΈ μ±
μ κΈ°μ¬λμ΄μλ λ΄μ©μΌλ‘λ κ°μΈμ μΌλ‘
μ΄ν΄κ° λμ§μμλ€.
λ°λ‘ ꡬκΈμ κ²μν΄μ λμ μμ€μ λ§λ μ λ§ μΉμ νκ³ μ¬μΉμλ κΈμ μ νκ² λμλ€.
μ¦ νλΌλ―Έν°κ°μ ν¨μμ²λΌ νΈμΆνλ©΄ κ·Έκ² μ½λ°±ν¨μκ° λλκ±°μλκ° ?
μ리λ μ΄ν΄νκ²κ°λ€ λ§λ?...
κ·Έλμ λ μ½λ°±ν¨μλ μ μ¬μ©νλκ±ΈκΉ?
μλ°μ€ν¬λ¦½νΈλ μ½λλ₯Ό μμμ μλλ‘ μμ°¨μ μΌλ‘ μ€ννλ€.
κ·Έλ¬λ, μ½λκ° λ€λ₯Έ νμκ° μΌμ΄λ λ€μ μ€νλλ κ²½μ°λ μκ³ μμ°¨μ μΌλ‘ μ€νλμ§ μμ λλ μλ€. μ΄λ°κ±Έ λΉλκΈ° νλ‘κ·Έλλ°μ΄λΌκ³ νλ€.
μ½λ°±μ νμ€ν¬κ° λλκΈ° μ μ ν¨μκ° μ€νλμ§ μλ κ²μ 보μ₯νλ€.
λ€λ₯΄κ² λ§νμλ©΄ μ½λ°±μ κ·Έ νμ€ν¬κ° λλ μ§νμ μ€νλ κ²μ΄λ€. μ½λ°±μ λΉλκΈ° μλ°μ€ν¬λ¦½νΈ μ½λλ₯Ό μμ±ν μ μλλ‘ ν΄μ£Όκ³ μ¬λ¬ λ¬Έμ μ μλ¬λ€λ‘λΆν° μμ νκ² μ§μΌμ€λ€.
μλ°μ€ν¬λ¦½νΈμμ μ½λ°± ν¨μλ₯Ό λ§λλ λ°©λ²μ μ΄λ€ ν¨μμ νλΌλ―Έν°λ‘μ¨ ν¨μλ₯Ό λκΈ°κ³ μ΄λ€ νμλ νμ€ν¬κ° μλ£λ μ§νμ μ½λ°± ν¨μλ₯Ό νΈμΆνλ κ²μ΄λ€.
μμ½νμλ©΄ λΉλκΈ° λ°©μμΌλ‘ μμ±λ ν¨μλ₯Ό λκΈ° μ²λ¦¬ νκΈ°μν΄ μ¬μ©νλ€κ³ νλ€.
μ¬μ€ μ§κΈλ λ΄κ° μ΄ν΄νκ² λ§λκ±΄κ° μΆλ€.
λΆμ°μ€λͺ
μ΄ κ°λ₯νμ λΆμ λκΈλ‘ μ€λͺ
ν΄μ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€π₯²
μ΅μ λ¬Έλ²μ κ°μ¬νμ..