- ν¨μ μμ± μ°μ΅μ μν ν΄λμ λλ€.
- κΈ°λ³Έ λ¬Έλ²
- μμ
- javascript-info λ°λ‘κ°κΈ°
- nλ¨ μΆλ ₯νκΈ° λ°λ‘κ°κΈ°
μ°Έκ³ : κ΅¬κ΅¬λ¨ μμ λ³ν λ°λ‘κ°κΈ° - λμ΄λ³ μ£Όλ₯ νμ© λ¬Έμ λ°λ‘κ°κΈ°
[ν¨μ]
- μ μΈ
- ννμ
function ν¨μμ΄λ¦(λ§€κ°λ³μ) {
// ν¨μ λ³Έλ¬Έ. return κ°μ΄ μμΌλ©΄ undefined λ°ν
// μλ¬ μ§μ λ°μμν¬ κ²½μ°
if (쑰건1 || 쑰건2) { // Truthyν κ²½μ° μ€ν
throw new Error(
'μλ¬ λ¬Έκ΅¬ μ
λ ₯'
);
}
return ...;
}
// ν¨μλ₯Ό λ³μμ ν λΉ ν μΆλ ₯ λλ λ°λ‘ μΆλ ₯ ν΅ν΄ κ²°κ³Όκ° νμΈ
let λ³μ = ν¨μμ΄λ¦1(μΈμ); // ν¨μμ μ λ¬
console.log(λ³μ);let λ³μ1 = function() {
// ν¨μ λ³Έλ¬Έ
}
λ³μ1; // ν¨μ λ³Έλ¬Έ(μμ€ μ½λ)μ λ¬ΈμνμΌλ‘ λ°κΎΈμ΄ μΆλ ₯
const λ³μ2 = ν¨μμ΄λ¦1; // ν¨μλ₯Ό 볡μ¬ν΄ λ€λ₯Έ λ³μμ ν λΉ
λ³μ2(); // ν¨μκ° λ°ν- μλ°μ€ν¬λ¦½νΈλ λ€λ₯Έ μΈμ΄μ λ¬λ¦¬ ν¨μλ₯Ό νΉλ³ν μ’ λ₯μ κ°μΌλ‘ μ·¨κΈνλ€.
| Category | function declaration | function expression |
|---|---|---|
| μμ±μ | λ 립λ ꡬ문 νν | ννμμ μΌλΆ |
| νΈμΆ | μ€μ μ€ν νλ¦μ΄ ν΄λΉ ν¨μμ λλ¬νμλ | μ μλκΈ° μ λ κ°λ₯ -> but. Bad Case |
| lexical environment | ν¨μ λ³Έλ¬Έ μ 체 -> Binding Object. μΈμ λ μ§ | μ μΈλ λ³μλ§ -> TDZ(μμ μ¬κ°μ§μ). ν λΉ μ λΆκ° |
| μμ | var: undefined λ°ν -> ν¨μ νΈμΆ X | let, const: μ°Έμ‘° μ€λ₯ |
| μ€μ½ν | μ½λ λΈλ‘ λ΄ κ°λ₯. λ° λΆκ°λ₯ | λΈλ‘ λ΄μΈ λͺ¨λ κ°λ₯ |
- μ€ν¬λ¦½νΈ μ€ν μ , Global context νκ²½μμ μ μμ μ μΈλ ν¨μ μ μΈλ¬Έμ μ°Ύκ³ , ν΄λΉ ν¨μλ₯Ό μμ±νλ€.
- λ°λΌμ, μ€ν¬λ¦½νΈκ° μ€νλκΈ° μ 'μ΄κΈ°ν λ¨κ³'μμ ν¨μ μ μΈ λ°©μμΌλ‘ μ μν ν¨μκ° μμ±λλ€.
function warning(notification, permit, prohibit){
if (confirm(notification)) permit()
else prohibit();
}
warning(
"μ΄κ³³μ μνν μ μμ΅λλ€. λ€μ΄κ°μκ² μ΅λκΉ?",
function() { console.log("μ
μ₯μ νλ½ν©λλ€."); },
function() { console.log("μ
μ₯μ λΆνν©λλ€."); }
);- ν¨μλ₯Ό μΈμλ‘ μ λ¬νκ³ "λμ€μ νΈμΆ(back)"
- μμ κ°μ΄ μ΄λ¦ μμ΄ μ μΈν ν¨μλ₯Ό "μ΅λͺ ν¨μ(anonymous function)"μ΄λΌ νλ€.
- ν¨μλ‘μμ κΈ°λ₯λ§ μννκΈ° λλ¬Έμ μ±λ₯μ μΌλ‘ ν¨μ¬ κ°λ³λ€.
-
arguments νμ΄ν ν¨μ ->
...args -
constructor, κ°μ²΄λ₯Ό μμ±νλ μμ±μλ₯Ό κ°μ§κ³ μμ§ μλ€. -
thisκ° κ°λ¦¬ν€λ λμμ΄ λ€λ₯΄λ€. - λΆλͺ¨μ thisκ° κ°λ¦¬ν€λ window μΆλ ₯