[JS] var, let, const

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ๋ณ„๋„๋กœ ์ž๋ฃŒํ˜• ๋ช…์‹œํ•˜์ง€ ์•Š๋Š”๋‹ค.
๋ณ€์ˆ˜์— ์ž…๋ ฅ๋˜๋Š” ๊ฐ’์— ์˜ํ•ด ์ž๋ฃŒํ˜•์ด ํŒ๋ณ„๋˜๊ธฐ์—
์ˆ˜๋‚˜ ๊ฐ์ฒด๋ฅผ ์„ ์–ธํ•  ๋•Œ๋Š” ES5 ์ „์—๋Š” ใ€Œvarใ€๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

Number โžก๏ธ var int_data = 1;
String โžก๏ธ var character1 = 'a';
Boolean โžก๏ธ var result2 = true;
Array โžก๏ธ var array1 = [1, 2, 3];

๊ทธ๋Ÿฌ๋‚˜ ใ€Œvarใ€ ์˜ ๋ฌธ์ œ์ ์„ ์žˆ์–ด์„œ ์ด๋ฅผ ๋ณด์™„ํ•  ใ€Œletใ€๊ณผ ใ€Œconstใ€ํ‚ค์›Œ๋“œ๊ฐ€ ๋„์ž…๋˜์—ˆ๋‹ค.

โš ๏ธ  ใ€Œvarใ€ ์ฃผ์˜์‚ฌํ•ญ

1. Function Scope

๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ ํ•จ์ˆ˜ ๋‚ด์—์„œ๋งŒ ์œ ํšจํ•œ ํ•จ์ˆ˜ ์Šค์ฝ”ํ”„๋ฅผ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋ธ”๋ก ์Šค์ฝ”ํ”„๋ฅผ ๋ฌด์‹œํ•œ๋‹ค.

function exampleScope() {
  if (true) {
    var x = 10;
  }
  console.log(x); // x๋Š” ํ•จ์ˆ˜ ์Šค์ฝ”ํ”„์ด๋ฏ€๋กœ if ๋ธ”๋ก ์™ธ๋ถ€์—์„œ๋„ ์ ‘๊ทผ ๊ฐ€๋Šฅ
}

exampleScope(); // 10 ์ถœ๋ ฅ

 

2. Hoisting

๋ณ€์ˆ˜ ์„ ์–ธ์ด ํ˜ธ์ด์ŠคํŒ…๋˜์–ด, ํ•ด๋‹น ์Šค์ฝ”ํ”„์˜ ์ตœ์ƒ๋‹จ์œผ๋กœ ๋Œ์–ด์˜ฌ๋ ค์ง„๋‹ค.

ํ•œ๋งˆ๋””๋กœ, ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋˜๊ธฐ ์ „์—๋„ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค

console.log(y); // ์—๋Ÿฌ๊ฐ€ ์•„๋‹Œ undefined ์ถœ๋ ฅ
var y = 5;
console.log(y); // 5 ์ถœ๋ ฅ

 

3. ์žฌ์„ ์–ธ ํ—ˆ์šฉ

๋ณ€์ˆ˜๋Š” ๊ฐ™์€ ์Šค์ฝ”ํ”„ ๋‚ด์—์„œ ์˜ค๋ฅ˜ ์—†์ด ์—ฌ๋Ÿฌ ๋ฒˆ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค.

var a = 3;
var a = 6; // ์˜ค๋ฅ˜ ์—†์ด ๋ณ€์ˆ˜๋ฅผ ์žฌ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Œ

 

let: ๋ณ€์ˆ˜

1. ๋ณ€์ˆ˜

์„ ์–ธ ์ดํ›„์— ์žฌํ• ๋‹น์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

let PI = 3.14;
PI = 3.14159;

let r;
r = 5;

 

 

2. ๋ธ”๋ก ์Šค์ฝ”ํ”„

์ค‘๊ด„ํ˜ธ({}) ๋‚ด์—์„œ๋งŒ ์œ ํšจํ•œ๋‹ค.

if (true) {
	let PI = 3.14;
    console.log(PI); // 3.14
}

console.log(PI); // ์—๋Ÿฌ

 

 

3. ํ˜ธ์ด์ŠคํŒ…

๋ณ€์ˆ˜ ์„ ์–ธ์ด ํ˜ธ์ด์ŠคํŒ…๋˜์–ด, ํ•ด๋‹น ์Šค์ฝ”ํ”„์˜ ์ตœ์ƒ๋‹จ์œผ๋กœ ๋Œ์–ด์˜ฌ๋ ค์ง„๋‹ค.

ํ•˜์ง€๋งŒ ์ดˆ๊ธฐํ™” ์ „์— ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜๋ฉด ReferenceError๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

console.log(PI);

let PI = 3.14;

 

const: ์ƒ์ˆ˜

1. ์ƒ์ˆ˜

์„ ์–ธ ์ดํ›„์— ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.

const PI = 3.14;
PI = 3.14159;  // ์—๋Ÿฌ

const r;  // ์—๋Ÿฌ

 

2. ๋ธ”๋ก ์Šค์ฝ”ํ”„

์ค‘๊ด„ํ˜ธ({}) ๋‚ด์—์„œ๋งŒ ์œ ํšจํ•œ๋‹ค.

if (true) {
	const PI = 3.14;
    console.log(PI); // 3.14
}

console.log(PI); // ์—๋Ÿฌ

 

3. ํ˜ธ์ด์ŠคํŒ…

๋ณ€์ˆ˜ ์„ ์–ธ์ด ํ˜ธ์ด์ŠคํŒ…๋˜์–ด, ํ•ด๋‹น ์Šค์ฝ”ํ”„์˜ ์ตœ์ƒ๋‹จ์œผ๋กœ ๋Œ์–ด์˜ฌ๋ ค์ง„๋‹ค.

ํ•˜์ง€๋งŒ ์ดˆ๊ธฐํ™” ์ „์— ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜๋ฉด ReferenceError๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

console.log(PI);

let PI = 3.14;

 

 

'โ˜€๏ธFront-End > ๐Ÿ“—JavaScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[JS] ResizeObserver  (0) 2024.12.09
[JS] Web Worker  (0) 2024.11.18
[JS] JavaScript Engine  (0) 2023.10.23
[JS] ECMAScript  (0) 2023.10.17
[JS] JavaScript  (1) 2023.05.31