๐Ÿ“Language/๐ŸŸจ Javascript

[JS] ๋ณ€์ˆ˜ ์„ ์–ธ var, let, const

yujch 2023. 7. 25. 05:53
๋ฐ˜์‘ํ˜•

Javascript๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ• ๋•Œ ์ œ์ผ ์•ž์— ๋ณ€์ˆ˜ ์„ ์–ธ ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

var number = 1;
let number = 1;
const number = 1;

 

var

- var ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ์ค‘๋ณต ์„ ์–ธ์ด ๊ฐ€๋Šฅ (์ฒ˜์Œ ์„ ์–ธํ•œ ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋จ)

var x = 1;
console.log(x); //1

var x = 2;
console.log(x); //2

- var ํ‚ค๋“œ์›Œ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜์˜ ์ฝ”๋“œ ๋ธ”๋ก๋งŒ์„ ์ง€์—ญ ์Šค์ฝ”ํ”„๋กœ ์ธ์ • => ๋ชจ๋‘ ์ „์—ญ ๋ณ€์ˆ˜๊ฐ€ ๋จ

var x = 1;
if(true) {
    var x = 2;
}
console.log(x); //2

- ๋Ÿฐํƒ€์ž„ ์ด์ „์— ๋ณ€์ˆ˜ ์„ ์–ธ, ์ดˆ๊ธฐํ™” ๋‘˜๋‹ค ์‹คํ–‰

console.log(x); //undefined

var x;
console.log(x); //undefined

var = 1;
console.log(x); //1

- ์˜๋„์น˜์•Š๊ฒŒ ์ค‘๋ณต ์„ ์–ธํ•œ ๊ฒฝ์šฐ ๊ฐ’์ด ์žฌํ• ๋‹น๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ ์ง€์–‘ํ•จ

 




let

- var ํ‚ค์›Œ๋“œ์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๋„์ž…

- ์ค‘๋ณต ์„ ์–ธ ์•ˆ๋จ / ์žฌํ• ๋‹น์€ ๊ฐ€๋Šฅ

let x = 1;
let x = 2; //์—๋Ÿฌ๋ฐœ์ƒ SyntaxError : Identifier 'x' has already been declared

- ๋ธ”๋ก ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„ (๋ชจ๋“  ์ฝ”๋“œ ๋ธ”๋ก์„ ์ง€์—ญ ์Šค์ฝ”ํ”„๋กœ ์ธ์ •)

let x = 1;
if(true) {
    let x = 2;
}
console.log(x); //1

- ๋Ÿฐํƒ€์ž„ ์ด์ „์— ๋ณ€์ˆ˜ ์„ ์–ธ ์‹คํ–‰ -> ๋Ÿฐํƒ€์ž„์—์„œ ๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ ๋„๋‹ฌ์‹œ ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™” ์‹คํ–‰

console.log(x); //์—๋Ÿฌ๋ฐœ์ƒ ReferenceError : x is not defined

let x;
console.log(x); //undefined

let = 1;
console.log(x); //1

 

 


 

const

- ์ค‘๋ณต ์„ ์–ธ ์•ˆ๋จ / ์žฌํ• ๋‹น ์•ˆ๋จ (์ƒ์ˆ˜)

- const ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ ์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™”๋ฅผ ๋™์‹œ์— ํ•ด์•ผํ•จ => ์„ ์–ธ๋งŒ ํ•˜๋ฉด ์—๋Ÿฌ

 


 

var / let / const

- var๋Š” ์‚ฌ์šฉํ•˜์ง€ ๋ง์ž

- ์žฌํ• ๋‹น์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ let ์‚ฌ์šฉํ•˜๊ณ  ์ด์™ธ์—๋Š” const๋ฅผ ์‚ฌ์šฉํ•˜์ž

๋ฐ˜์‘ํ˜•