π‘ ν¨μ μ μΈλ¬Έ : ννμμ΄ μλ λ¬Έ
π‘ ν¨μ ννμ : ννμμΈ λ¬Έ
ν¨μ μ μΈλ¬Έ
// ν¨μ μ μΈλ¬Έ
function add(x, y) {
return x + y;
}
// ν¨μ μ°Έμ‘°
// console.dir console.logμλ λ¬λ¦¬ ν¨μ κ°μ²΄μ νλ‘νΌν°κΉμ§ μΆλ ₯νλ€.
// λ¨, Node.js νκ²½μμλ console.logμ κ°μ κ²°κ³Όκ° μΆλ ₯λλ€.
console.dir(add); // fadd(x, y)
// ν¨μ νΈμΆ
console.log(add(2, 5)); // 7
// ν¨μ μ μΈλ¬Έμ ν¨μ μ΄λ¦μ μλ΅ν μ μμ
// ν¨μ μ μΈλ¬Έμ ννμμ΄ μλ
function (x, y) {
return x + y;
}
// SyntaxError: Function statements require a function name
- ν¨μ μ μΈλ¬Έμ ννμμ΄ μλ λ¬Έ (ννμμ΄ μλ λ¬Έμ λ³μμ ν λΉν μ μλ€.)
- ν¨μ μ μΈλ¬Έμ ν¨μ 리ν°λ΄κ³Ό ννκ° λμΌ
- ν¨μ 리ν°λ΄μ ν¨μ μ΄λ¦μ μλ΅ν μ μμΌλ ν¨μ μ μΈλ¬Έμ ν¨μ μ΄λ¦μ μλ΅ν μ μμ
- ν¨μλ ν¨μ μ΄λ¦μΌλ‘ νΈμΆνλ κ²μ΄ μλλΌ ν¨μ κ°μ²΄λ₯Ό κ°λ¦¬ν€λ μλ³μλ‘ νΈμΆ
ννμμΈ λ¬Έκ³Ό ννμμ΄ μλ λ¬Έ
// λ³μ μ μΈλ¬Έμ κ°μΌλ‘ νκ°λ μ μμΌλ―λ‘ ννμμ΄ μλλ€.
var x;
// 1, 2, 1 + 2, x = 1 + 2λ λͺ¨λ ννμμ΄λ€.
// x = 1 + 2λ ννμμ΄λ©΄μ μμ ν λ¬Έμ΄κΈ°λ νλ€.
x = 1 + 2;
var x;
// ν λΉμ κ·Έ μμ²΄κ° ννμμ΄μ§λ§ μμ ν λ¬Έμ΄κΈ°λ νλ€.
// μ¦, ν λΉλ¬Έμ ννμμΈ λ¬Έμ΄λ€.
x = 100;
// ννμμ΄ μλ λ¬Έμ κ°μ²λΌ μ¬μ©ν μ μλ€.
var foo = var x; // SyntaxError: Unexpected token var
// ννμμΈ λ¬Έμ κ°μ²λΌ μ¬μ©ν μ μλ€.
var foo = x = 100;
console.log(foo); // 100
κΈ°λͺ ν¨μ 리ν°λ΄λ μ€μμ μΈ μ½λλ€.
ν¨μ μ μΈλ¬ΈμΌλ‘ ν΄μ
// κΈ°λͺ
ν¨μ 리ν°λ΄μ λ¨λ
μΌλ‘ μ¬μ©νλ©΄ ν¨μ μ μΈλ¬ΈμΌλ‘ ν΄μλλ€.
// ν¨μ μ μΈλ¬Έμμλ ν¨μ μ΄λ¦μ μλ΅ν μ μλ€.
function foo() { console.log('foo'); }
foo(); // foo
- fooλ ν¨μ λͺΈμ²΄ λ΄λΆμμλ§ μ ν¨ν μλ³μμΈ ν¨μ μ΄λ¦μ΄λ―λ‘ foo ν¨μλ₯Ό νΈμΆν μ μμ΄μΌ νλ€. μλ³μ fooλ₯Ό μ μΈν μ λ μκ³ ν λΉν μ λ μλλ° νΈμΆμ΄ κ°λ₯ν μ΄μ λ?
- μλ°μ€ν¬λ¦½νΈ μμ§μ ν¨μ μ μΈλ¬Έμ ν΄μν΄ ν¨μ κ°μ²΄λ₯Ό μμ±νλ€.
- μ΄λ ν¨μ μ΄λ¦μ ν¨μ λͺΈμ²΄ λ΄λΆμμλ§ μ ν¨ν μλ³μμ΄λ―λ‘ ν¨μ μ΄λ¦κ³Όλ λ³λλ‘ μμ±λ ν¨μ κ°μ²΄λ₯Ό κ°λ¦¬ν€λ μλ³μκ° νμνλ€.
- ν¨μ κ°μ²΄λ₯Ό κ°λ¦¬ν€λ μλ³μκ° μμΌλ©΄ μμ±λ ν¨μ κ°μ²΄λ₯Ό μ°Έμ‘°ν μ μμΌλ―λ‘ νΈμΆν μλ μλ€.
- λ°λΌμ μλ°μ€ν¬λ¦½νΈ μμ§μ μμ±λ ν¨μλ₯Ό νΈμΆνκΈ° μν΄ ν¨μ μ΄λ¦κ³Ό λμΌν μ΄λ¦μ μλ³μλ₯Ό μ묡μ μΌλ‘ μμ±νκ³ , κ±°κΈ°μ ν¨μ κ°μ²΄λ₯Ό ν λΉνλ€.
ν¨μλ ν¨μ μ΄λ¦μΌλ‘ νΈμΆνλ κ²μ΄ μλλΌ ν¨μ κ°μ²΄λ₯Ό κ°λ¦¬ν€λ μλ³μλ‘ νΈμΆνλ€.
ν¨μ 리ν°λ΄ ννμμΌλ‘ ν΄μ
// ν¨μ 리ν°λ΄μ νΌμ°μ°μλ‘ μ¬μ©νλ©΄ ν¨μ μ μΈλ¬Έμ΄ μλλΌ ν¨μ 리ν°λ΄ ννμμΌλ‘ ν΄μλλ€.
// ν¨μ 리ν°λ΄μμλ ν¨μ μ΄λ¦μ μλ΅ν μ μλ€.
(function bar() { console.log('bar'); });
bar(); // ReferenceError: bar is not defined
- ν¨μ 리ν°λ΄μμ ν¨μ μ΄λ¦μ ν¨μ λͺΈμ²΄ λ΄μμλ§ μ°Έμ‘°ν μ μλ μλ³μλ€λΌκ³ νλ€.
- μ΄λ ν¨μ λͺΈμ²΄ μΈλΆμμλ ν¨μ μ΄λ¦μΌλ‘ ν¨μλ₯Ό μ°Έμ‘°ν μ μμΌλ―λ‘ ν¨μ λͺΈμ²΄ μΈλΆμμλ ν¨μ μ΄λ¦μΌ λ‘ ν¨μλ₯Ό νΈμΆν μ μλ€λ μλ―Έλ€.
- μ¦, ν¨μλ₯Ό κ°λ¦¬ν€λ μλ³μκ° μλ€λ κ²κ³Ό λ§μ°¬κ°μ§λ€.
- λ°λΌμ μ μμ μ bar ν¨μλ νΈμΆν μ μλ€.
ν¨μ ννμ
// κΈ°λͺ
ν¨μ ννμ
const add = function foo(x, y) {
return x + y;
}
console.log(add(2,5)); // 7
// ν¨μ μ΄λ¦μΌλ‘ νΈμΆνλ©΄ ReferenceError λ°μ
console.log(foo(2,5)); // ReferenceError : foo is not defined
- ν¨μ ννμμ ννμμΈ λ¬Έ
- ν¨μλ μΌκΈ κ°μ²΄μ΄λ―λ‘ ν¨μ 리ν°λ΄λ‘ μμ±ν ν¨μ κ°μ²΄λ₯Ό λ³μμ ν λΉν μ μμ
- κ°μ μ±μ§μ κ°λ κ°μ²΄λ₯Ό μΌκΈ κ°μ²΄λΌ νλ€.
- ν¨μ 리ν°λ΄μ ν¨μ μ΄λ¦μ μλ΅ν μ μλ€. μ΄λ¬ν ν¨μλ₯Ό μ΅λͺ
ν¨μλΌ νλ€.
- ν¨μ ννμμ ν¨μ 리ν°λ΄μ ν¨μ μ΄λ¦μ μλ΅νλ κ²μ΄ μΌλ°μ μ΄λ€.
- ν¨μλ₯Ό νΈμΆν λλ ν¨μ μ΄λ¦μ΄ μλλΌ ν¨μ κ°μ²΄λ₯Ό κ°λ¦¬ν€λ μλ³μλ₯Ό μ¬μ©
- ν¨μ μ΄λ¦μ ν¨μ λͺΈμ²΄ λ΄λΆμμλ§ μ ν¨ν μλ³μμ΄λ―λ‘ ν¨μ μ΄λ¦μΌλ‘ ν¨μλ₯Ό νΈμΆν μ μλ€.
'Frontend > JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μμ κ°κ³Ό κ°μ²΄μ λΉκ΅ (0) | 2024.03.14 |
---|---|
μ μ¬ λ°°μ΄ κ°μ²΄, μ΄ν°λ¬λΈ, λνΌ κ°μ²΄ (0) | 2024.03.13 |
ν¨μ νΈμ΄μ€ν (0) | 2024.03.06 |
νΈμ΄μ€ν (hoisting) (0) | 2024.03.05 |
var, let, const μ°¨μ΄ (0) | 2024.03.03 |