[FE/JavaScript] var, let, const

waterglassesΒ·2021λ…„ 9μ›” 29일
0

μžλ°”μŠ€ν¬λ¦½νŠΈ

λͺ©λ‘ 보기
5/16
post-thumbnail

πŸ“Œ μŠ€μ½”ν”„

  • var은 ν•¨μˆ˜ μŠ€μ½”ν”„, letκ³Ό constλŠ” 블둝 μ½˜μ„œνŠΈλ₯Ό κ°–λŠ”λ‹€.

πŸ“Œ ν˜Έμ΄μŠ€νŒ…

  • var은 ν•¨μˆ˜ μŠ€μ½”ν”„μ˜ μ΅œμƒλ‹¨μœΌλ‘œ ν˜Έμ΄μŠ€νŒ…λ˜κ³  μ„ μ–Έκ³Ό λ™μ‹œμ— undefined둜 μ΄ˆκΈ°ν™”λœλ‹€.
function run() {
  console.log(foo); // undefined
  var foo = "Foo";
  console.log(foo); // Foo
}
run();
  • letκ³Ό constλŠ” 블둝 μŠ€μ½”ν”„μ˜ μ΅œμƒλ‹¨μœΌλ‘œ ν˜Έμ΄μŠ€νŒ… 되고 μ„ μ–Έν•˜λ©΄ 값이 ν• λ‹Ήλ˜κΈ° μ „κΉŒμ§€ μ–΄λ–€ κ°’μœΌλ‘œλ„ μ΄ˆκΈ°ν™”λ˜μ§€ μ•ŠλŠ”λ‹€.
function checkHoisting() {
  console.log(foo); // ReferenceError
  let foo = "Foo";
  console.log(foo); // Foo
}
checkHoisting();

πŸ“Œ μž¬μ„ μ–Έ

  • var은 μž¬μ„ μ–Έμ΄ κ°€λŠ₯ν•˜λ‹€.
  • letκ³Ό constλŠ” μž¬μ„ μ–Έμ΄ λΈ”κ°€λŠ₯ν•˜λ‹€.
var foo = "foo1";
var foo = "foo2"; // λ¬Έμ œμ—†μŒ

let bar = "bar1";
let bar = "bar2"; // SyntaxError: Identifier 'bar' has already been declared

πŸ“Œ let, var VS const

  • var와 let은 μž¬ν• λ‹Ήμ΄ κ°€λŠ₯ν•˜λ‹€.
  • constλŠ” μ„ μ–Έκ³Ό μ΄ˆκΈ°ν™”κ°€ λ°˜λ“œμ‹œ λ™μ‹œμ— μΌμ–΄λ‚˜μ•Ό ν•˜λ©° μž¬ν• λ‹Ήμ΄ λΆˆκ°€λŠ₯ν•˜λ‹€. 즉, μƒμˆ˜μ™€ 같은 고정값을 μ„ μ–Έν•  λ•Œ μ‚¬μš©ν•˜λŠ” ν‚€μ›Œλ“œμ΄λ‹€.

좜처

var vs let vs const

profile
맀 μˆœκ°„ μ„±μž₯ν•˜λŠ” κ°œλ°œμžκ°€ 되렀고 λ…Έλ ₯ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

0개의 λŒ“κΈ€