π νΈμ΄μ€ν μ λν΄ λ κΉμ΄ μμ보기 : https://ttum.tistory.com/19?category=754442
ν¨μνΈμ΄μ€ν μ μκΈ° μν΄μλ μ°μ ν¨μ μ μΈλ¬Έκ³Ό ν¨μ ννμμ λν΄ μμ νλ€.
1. ν¨μ μ μΈλ¬Έ
μλ°μ€ν¬λ¦½νΈμμ ν¨μλ₯Ό μ μΈνλ λ°©λ²λ€ μ€ νλμ΄λ€. μ°λ¦¬κ° μΌλ°μ μΌλ‘ Cλ C++ λ±μμ μ μΈνλ λ°©μμ΄λΌκ³ μκ°νλ©΄ λλ€.
ν¨μλ₯Ό λ 립μ μΌλ‘ μ μΈνκ³ λ°λ‘ λΆλ¬μ νΈμΆνκΈ° λλ¬Έμ ν¨μ μ΄λ¦μ κΌ μ§μ ν΄μ£Όμ΄μΌ νλ€. ν¨μ μ΄λ¦μ΄ μμ§ μμΌλ©΄ λΆλ₯Ό μ μκΈ° λλ¬Έμ΄λ€.
function add(a, b){
return a + b;
}
console.log(add(3, 7)); //μΆλ ₯κ°: 10
2. ν¨μ ννμ
ν¨μ ννμμ νλμ ν¨μλ₯Ό λ§λ€κ³ , κ·Έκ²μ λ³μμ ν λΉνλ κ²μ΄λ€. λ¨Όμ μμ λ₯Ό 보면 μ΄ν΄κ° μ¬μΈ κ²μ΄λ€.
const add = function (a, b){
return a + b;
}
console.log(add(3, 7)); //μΆλ ₯κ°: 10
Cλ C++ μ½λλ§ λ³΄λ μ¬λμ μμνκ² λκ»΄μ§ μ μμ§λ§, μλ°μ€ν¬λ¦½νΈμμλ λ³μμ ν¨μλ₯Ό ν λΉνλ κ²μ΄ κ°λ₯νλ€. λ°λΌμ μμκ°μ μ½λκ° κ°λ₯ν κ²μ΄λ€.
μ¬κΈ°μ μλ°μ€ν¬λ¦½νΈμ λλ€λ₯Έ νΉμ΄ν μ μ λ³Ό μ μλλ°, μ΅λͺ ν¨μλ‘ ννμ΄ κ°λ₯νλ€λ κ²μ΄λ€. (functionνκ³ κ·Έ λ€μ ν¨μ μ΄λ¦μ΄ μλ κ²μ 보면 μ μ μλ€.)
κΌ μ΅λͺ ν¨μλ‘ ννν΄μΌ νλ κ²μ μλμ§λ§, μ¬κ·νΈμΆμ΄ νμν΄μ ν¨μ λ΄λΆμμ κ·Έ ν¨μλ₯Ό λ λΆλ₯΄λ νΉμ΄ν κ²½μ°λ₯Ό μ μΈνκ³ λ μ΄λ¦μ κ΅³μ΄ μ§μ΄μ€ νμκ° μλ€. ν¨μννμ μΈλΆμμλ νΈμΆμ ν μ μκΈ° λλ¬Έμ΄λ€.
μλμ κ²½μ°λ ν¨μννμμΌλ‘ λνλ΄λ©° ν λΉν ν¨μμ addFunctionμ΄λΌλ μ΄λ¦μ μ§μ΄μ£Όμλ€.
const add = function addFunction(a, b){
return a + b;
}
console.log(add(1,2)); // μΆλ ₯κ°: 3
console.log(addFunction(1,2)); // Uncaught ReferenceError
κ·Έ μ΄μΈμ Function()μμ±μ ν¨μλ μμΌλ μ μ¬μ©λμ§ μκ³ μ΄λ₯Ό μ΄ν΄νμ§ μμλ ν¨μ νΈμ΄μ€ν μ μ΄ν΄νλ λ°μλ λ¬Έμ κ° μμΌλ―λ‘ μλ΅νκ² λ€.
ν¨μνΈμ΄μ€ν μ΄λ 무μμΈκ°?
μ¬μ μ μ°Ύμ보면 "λμ΄μ¬λ¦¬κΈ°"λΌλ λ»μ΄ λμ¨λ€. 무μμ λμ΄μ¬λ¦¬λλ? λ°λ‘ ν¨μλ₯Ό λμ΄μ¬λ¦¬λ κ²μ΄λ€.
ν¨μ μ μΈλ¬Έμ κ²½μ°μλ μ μΈμ ν΄λλ©΄ κ·Έ ν¨μμ μ ν¨λ²μκ° μ½λμ 맨 μ²μλΆν° μμνλ€. ν¨μ μ μΈλ¬Έμ΄ μ μΌ μλ‘ "λμ΄μ¬λ €μ§λ κ²"μ΄λ€. λ°λΌμ μ½λμ λ§μ§λ§ λΆλΆμ addλΌλ ν¨μλ₯Ό μ μΈνλλΌλ μ½λμ 첫 μ€μ add(2,3)μ νΈμΆνμ λ, μ μμ μΌλ‘ νΈμΆμ΄ λλ κ²μ΄λ€.
// ν¨μ νΈμ΄μ€ν
λ°μ
add(3, 5) // μΆλ ₯κ°: 8
// ν¨μ μ μΈλ¬Έ
function add(a, b){
return a + b;
}
μμ μ½λλ μ μμ μΌλ‘ λμνλ€. κ·Έλ¬λ ν¨μλ₯Ό μ μΈνκΈ° μ μ μ¬μ©νλ κ²μ μ½λμ ꡬ쑰λ₯Ό μμ±νκ² λ§λ€ μ μμΌλ―λ‘ κΆμ₯νμ§ μλλ€.
λ°λ©΄ ν¨μ ννμμ μ¬μ©νλ©΄ ν¨μ νΈμ΄μ€ν μ΄ λ°μνμ§ μλλ€. λ°λΌμ 보ν΅μ κ²½μ°μμλ ν¨μ ννμλ§μ μ¬μ©νλ κ²μ κΆμ₯νλ€.
add(3, 5) // uncaught type error
// ν¨μ ννμμΌλ‘ ν¨μ μ μ
const add = function (a, b){
return a + b;
}
add(3, 5) // 7
Reference
μΈμ¬μ΄λ μλ°μ€ν¬λ¦½νΈ, νλΉλ―Έλμ΄ (μ‘νμ£Ό, κ³ νμ€ μ§μ)
'Javascript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
JavaScript μ½λ κΏνλ€ (0) | 2020.04.05 |
---|---|
ES6 λ¬Έλ² μ 리 (0) | 2020.04.01 |
[μλ¬λ‘κ·Έ] post request status κ° canceled μΈ κ²½μ° (0) | 2020.03.31 |
this ν€μλ (this keyword in JavaScript) (0) | 2020.03.23 |
μλ°μ€ν¬λ¦½νΈ νΈμ΄μ€ν (JavaScript hoisting) (0) | 2020.03.20 |