๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
javascript๐Ÿช“/์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ณต๋ถ€

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ณ€์ˆ˜์„ ์–ธ : let vs var / const

by hyojinny 2023. 8. 29.

variavle ๋ณ€์ˆ˜ > ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋Š”๊ฐ’

- read / write = ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜์–ด ์“ฐ๊ณ  ์ฝ๋Š”๊ฒƒ ๊ฐ€๋Šฅ 

- ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ์žฌ ํ• ๋‹น์ด ๊ฐ€๋Šฅํ•˜๋‹ค.


๋ณ€์ˆ˜์˜ global scope ์™€ block scope 

 

 

let ์˜ global scope - ์‹คํ–‰์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ

let name = 'ellie'; // name์ด๋ž€ ๋ณ€์ˆ˜์— ellie ์„ ์–ธ
name = 'hello'; // ๋ณ€์ˆ˜name์— hello ์žฌํ• ๋‹น

console.log('name: ', name); // ํ™•์ธ์‹œ name = hello ๊ฐ€๋จ

 

 

let ์˜ block scope {} - ๋ธ”๋Ÿญ์•ˆ์˜ ์ฝ”๋“œ ์ž‘์„ฑ์‹œ ๋ธ”๋Ÿญ๋ฐ–์—์„  ๋ธ”๋Ÿญ์•ˆ์˜ ๋‚ด์šฉ์„ ์ฝ์ง€๋ชปํ•จ

(๋ธ”๋Ÿญ๋ฐ–์—์„œ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋“ค์€ global scope ๋กœ ์–ด๋””์„œ๋‚˜ ์ ‘๊ทผ ๊ฐ€๋Šฅ)

{
  let name2 = 'hyojin';
  name2 = 'hyo';
}

 


๋ณ€์ˆ˜์„ ์–ธ์‹œ let / var ์ฐจ์ด (*var ์‚ฌ์šฉ๊ธˆ์ง€)

 

- ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ฝ”๋“œ ์ž‘์„ฑ์‹œ ๋ณ€์ˆ˜ ์„ ์–ธ ํ›„ ๊ฐ’ ์žฌํ• ๋‹น์ด ์›์น™์ด๋‚˜ var ์€ ์ด์›์น™์ด ๋ฌด์‹œ๋œ๋‹ค.

console.log(age);
age = 4;
var age;

 

์œ„์™€ ๊ฐ™์ด ๊ฐ’์ด ๋จผ์ € ํ• ๋‹น๋œ ํ›„ ๋ณ€์ˆ˜๊ฐ€ ๋‚˜์ค‘์— ๋‚˜์˜ค๊ณ  console.log ๋กœ ๋จผ์ € ์ฐ์–ด๋ณด๋ฉด 

 

var console.log(age); ๊ฐ€ undefind ๋กœ ์ฝํž˜
hoisting ๋ฌด์‹œ > global scope ๋กœ ๋ฌธ๋ฒ•์ž‘์„ฑ์ด ์ดˆ๊ธฐํ™”๋˜ ๋งจ ์ƒ๋‹จ์œผ๋กœ ๋‚˜์˜ด
{} block scope ๋ฌด์‹œ 
let console.log(age); ๊ฐ€ ์—๋Ÿฌ๋กœ ๋‚˜์˜ด (์ •์ƒ)

 


const 

- reed only ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฝ๋Š”๊ฒƒ๋งŒ ๊ฐ€๋Šฅ

- ๋ณ€์ˆ˜ ์žฌํ• ๋‹น ๋ถˆ๊ฐ€ 

 

๋ณ€์ˆ˜์˜ ๊ฐ’์ด ๊ณ„์† ๋ฐ”๊ปด์•ผํ•  ์ด์œ ๊ฐ€ ์—†๋‹ค๋ฉด const ์‚ฌ์šฉ ๊ถŒ์žฅ


const ์‚ฌ์šฉ๋ฒ•

//const ๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด ์žฌ์‚ฌ์šฉ ํ• ์ˆ˜ ์—†์ง€๋งŒ
const ellie = 'ellie';
const ellie = { name: 'ellie', age: 20 };
//์ด ellie ๋Š” const ๋กœ ์ง€์ •์ด ๋˜์–ด์žˆ์–ด์„œ ํ•œ๋ฒˆ ํ• ๋‹น๋œ ์ด ์˜ค๋ธŒ์ ํŠธ๋Š” ๋‹ค๋ฅธ ์˜ค๋ธŒ์ ํŠธ๋กœ ํ• ๋‹น ๋ถˆ๊ฐ€
//๋‹จ ellie ์˜ค๋ธŒ์ ํŠธ ์•ˆ์— name๊ณผ age ๋กœ ๋ณ€์ˆ˜๊ฐ€ ์žˆ์–ด์„œ ellie.name ์œผ๋กœ ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•ด ์žฌํ• ๋‹น ๊ฐ€๋Šฅ

ellie.name = 'ellllllllie';
ellie.age = 30;

console.log('ellie: ', ellie);

 console.log ๋กœ ํ™•์ธ์‹œ ๋ณ€์ˆ˜๋กœ ์žฌํ• ๋‹น ํ•œ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

๋Œ“๊ธ€