Skip to content

Latest commit

Β 

History

History
48 lines (36 loc) Β· 1.34 KB

hoisting.md

File metadata and controls

48 lines (36 loc) Β· 1.34 KB

hoisting μ΄λž€?

hoist: λ“€μ–΄[λŒμ–΄]μ˜¬λ¦¬λ‹€

ν˜Έμ΄μŠ€νŒ…μ€ ν•¨μˆ˜ μ•ˆμ— μžˆλŠ” 선언듀을 λͺ¨λ‘ ν•΄λ‹Ή ν•¨μˆ˜ 유효 λ²”μœ„μ˜ μ΅œμƒλ‹¨μ— μ„ μ–Έν•˜λŠ”κ²ƒμ„ λ§ν•œλ‹€. μžλ°”μŠ€ν¬λ¦½νŠΈ ν•¨μˆ˜λŠ” μ‹€ν–‰λ˜κΈ° μ „ ν•¨μˆ˜ μ•ˆμ— ν•„μš”ν•œ λ³€μˆ˜κ°’λ“€μ„ λͺ¨λ‘ λͺ¨μ•„μ„œ μœ νš¨λ²”μœ„μ˜ μ΅œμƒλ‹¨μ— μ„ μ–Έν•œλ‹€.

// var 선언이 ν˜Έμ΄μŠ€νŒ…λœλ‹€.
console.log(foo); // undefined
var foo = 1;
console.log(foo); // 1

// let, constλŠ” ν˜Έμ΄μŠ€νŒ…λ˜μ§€ μ•ŠλŠ”λ‹€.
console.log(bar); // ReferenceError: bar is not defined
let bar = 2;
console.log(bar); // 2

ν•¨μˆ˜ 선언은 ν•¨μˆ˜ λͺΈμ²΄κ°€ ν˜Έμ΄μŠ€νŒ…λ˜λŠ” 반면, λ³€μˆ˜ μ„ μ–Έ ν˜•νƒœλ‘œ μž‘μ„±λœ ν•¨μˆ˜ ν‘œν˜„μ‹μ€ λ³€μˆ˜ μ„ μ–Έλ§Œ ν˜Έμ΄μŠ€νŒ…λœλ‹€.

// ν•¨μˆ˜μ„ μ–Έ
console.log(foo); // [Function: foo]
foo(); // foooo!
function foo() {
  console.log("fooo!");
}
console.log(foo); // [Function: foo]

// ν•¨μˆ˜ ν‘œν˜„μ‹
console.log(bar); // undefined
bar(); // Uncaught TypeError: bar is not a function
var bar = function () {
  console.log("barrr!");
};
console.log(bar); // [Function: bar]

Reference

- CreatedAt 2022.12.01
- UpdatedAt 2022.12.04

Back