๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
JavaScript/JavaScript

[JavaScript] var, let, const ์ฐจ์ด

by ์ฝ”๋”ฉํ•˜๋Š” ๋ถ•์–ด 2021. 11. 20.
๋ฐ˜์‘ํ˜•

โญ var

1. variable(๋ณ€์ˆ˜)

2. ์žฌ์„ ์–ธ ๊ฐ€๋Šฅ

ex)

var a = 1;
console.log(a); // 1
var a = 10;
console.log(a); // 10

 

3. ์žฌ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ ์„ ์–ธํ•œ ๋ณ€์ˆ˜ ์ด๋ฆ„์— ๋‹ค๋ฅธ ๊ฐ’์„ ๋„ฃ์–ด ์„ ์–ธํ•˜๋ฉด ๋‹ค๋ฅธ ๊ฐ’์ด ์ถœ๋ ฅ๋œ๋‹ค.

ex)

var name = 'cat';
console.log(name); // cat
var name = 'dog';
console.log(name); // dog

 

4. ์žฌํ• ๋‹น ๊ฐ€๋Šฅ

ex)

var a = 1;
console.log(a); // 1
a = 10;
console.log(a); // 10

 

5. ํ˜ธ์ด์ŠคํŒ…(Hoisting) ๊ฐ€๋Šฅ

var์€ ์„ ์–ธ ๋‹จ๊ณ„์™€ ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„๊ฐ€ ํ•œ๋ฒˆ์— ์ด๋ฃจ์–ด์ง„๋‹ค.

 

๐Ÿ”ฅ ํ˜ธ์ด์ŠคํŒ…(Hoisting)์ด๋ž€?

ํ•จ์ˆ˜ ์•ˆ์— ์žˆ๋Š” ์„ ์–ธ๋“ค์„ ๋ชจ๋‘ ๋Œ์–ด์˜ฌ๋ ค์„œ ํ•ด๋‹น ํ•จ์ˆ˜ ์œ ํšจ ๋ฒ”์œ„์˜ ์ตœ์ƒ๋‹จ์— ์„ ์–ธํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

 

ex)

console.log(name);  // Undefined
var name;

name = cat;
console.log(name); // cat

 

6. ์‚ฌ์šฉ ๋ฒ”์œ„(scope)

function ๊ธฐ์ค€์œผ๋กœ ๋ฒ”์œ„๊ฐ€ ์ง€์ •๋œ๋‹ค.



 

โญ let

1. ES6 ์ดํ›„ var์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€๋œ ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐฉ์‹.

2. ์žฌ์„ ์–ธ ๋ถˆ๊ฐ€๋Šฅ

 

ex)

let a = 1;
console.log(a);
let a = 5;
console.log(a);  // Identifier 'a' has already been declared.
                 // ์‹๋ณ„์ž 'a'๊ฐ€ ์ด๋ฏธ ์„ ์–ธ๋˜์–ด์žˆ๋‹ค

 

3. ์žฌํ• ๋‹น ๊ฐ€๋Šฅ

 

ex)

let a = 1;
console.log(a);
a = 5;
console.log(a); // 5

 

4. ํ˜ธ์ด์ŠคํŒ…(Hoisting) ๊ฐ€๋Šฅ. but ์ฐธ์กฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

let์€ ์„ ์–ธ ๋‹จ๊ณ„์™€ ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ์ด๋ฃจ์–ด์ง„๋‹ค.

 

ex)

console.log(name);  // Error : Uncaught ReferenceError: bar is not defined.
let name;

 

5. ์‚ฌ์šฉ ๋ฒ”์œ„(scope)

๋Œ€๊ด„ํ˜ธ {} ๊ธฐ์ค€์œผ๋กœ ๋ฒ”์œ„๊ฐ€ ์ง€์ •๋œ๋‹ค.



 

โญ const

1. ES6 ์ดํ›„ var์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€๋œ ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐฉ์‹.

2. constant(์ƒ์ˆ˜)

3. ์žฌ์„ ์–ธ, ์žฌํ• ๋‹น ๋ชจ๋‘ ๋ถˆ๊ฐ€๋Šฅ

์„ ์–ธํ•˜๋ฉด์„œ ์ดˆ๊ธฐํ™”๋ฅผ ํ•ด์ค˜์„œ ๊ทธ ์ดํ›„์—” ์ˆ˜์ •์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

4. ์‚ฌ์šฉ ๋ฒ”์œ„(scope)

๋Œ€๊ด„ํ˜ธ {} ๊ธฐ์ค€์œผ๋กœ ๋ฒ”์œ„๊ฐ€ ์ง€์ •๋œ๋‹ค.

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€