Hello Kitty Eyes Shut
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ป๊ณต๋ถ€ ๊ธฐ๋ก/๐Ÿ“Œ Frontend

[Frontend] ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์—์„œ const ๋ž€?

๋ฐ˜์‘ํ˜•

 

 

 

โœจ ๋“ค์–ด๊ฐ€๋ฉฐ

const name = "์†Œ์—ฐ";

 

์œ„ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด "name"์ด๋ผ๋Š” ๋ณ€์ˆ˜์— "์†Œ์—ฐ"์ด๋ผ๋Š” ๋ฌธ์ž์—ด์„ ๋‹ด๊ณ  ์žˆ๋Š”๋ฐ,

์—ฌ๊ธฐ์„œ ์‚ฌ์šฉ๋œ const๋ž€ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ’์„ ์„ ์–ธํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ‚ค์›Œ๋“œ์ด๋‹ค.

์ฆ‰, ์ƒ์ˆ˜ (Constant)๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด ์ •๋ง ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฑธ๊นŒ?

๊ทธ๋Ÿผ ๋ณ€์ˆ˜ let์ด๋ž‘ const๋Š” ๋ญ๊ฐ€ ๋‹ค๋ฅธ ๊ฑธ๊นŒ?

const๋กœ ๊ฐ์ฒด๋‚˜ ๋ฐฐ์—ด์„ ๋งŒ๋“ค๋ฉด ๋‚ด๋ถ€ ๊ฐ’๋„ ๋ชป ๋ฐ”๊พธ๋Š” ๊ฑธ๊นŒ?

 

์ด๋Ÿฐ ๊ถ๊ธˆ์ฆ๋“ค์ด ์ƒ๊ฒจ์„œ ํ•˜๋‚˜์”ฉ ์ž์„ธํžˆ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

 


๐Ÿท๏ธ ๊ธฐ๋ณธ ๊ฐœ๋…

โœ… const๋ž€

const๋Š” ์žฌํ• ๋‹น์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ‚ค์›Œ๋“œ์ด๋‹ค.

 

์ฆ‰, ํ•œ ๋ฒˆ ๊ฐ’์„ ์ง€์ •ํ•˜๋ฉด, ๊ทธ ๋ณ€์ˆ˜ ์ด๋ฆ„์— ์ ˆ๋Œ€ ๋‹ค๋ฅธ ๊ฐ’์„ ๋„ฃ์„ ์ˆ˜ ์—†๋‹ค.

 

const animal = "๊ฐ•์•„์ง€";
animal = "๊ณ ์–‘์ด"; // โŒ ์˜ค๋ฅ˜! ์žฌํ• ๋‹น ๋ถˆ๊ฐ€

 

๋”ฐ๋ผ์„œ ์œ„์™€ ๊ฐ™์€ ์ฝ”๋“œ๋Š” ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค.

์™œ๋ƒํ•˜๋ฉด animal์€ const๋กœ ์„ ์–ธ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฒ˜์Œ์— ํ• ๋‹น๋œ "๊ฐ•์•„์ง€" ๋ง๊ณ  ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ๋Š” ๋‹ค์‹œ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

 


๐Ÿ“ฆ const VS let VS var ๋น„๊ต

ํ‚ค์›Œ๋“œ ์žฌ์„ ์–ธ ๊ฐ€๋Šฅ ์žฌํ• ๋‹น ๊ฐ€๋Šฅ ๋ธ”๋ก ์Šค์ฝ”ํ”„
var โœ… O โœ… O โŒ X (ํ•จ์ˆ˜ ์Šค์ฝ”ํ”„)
let โŒ X โœ… O โœ… O
const โŒ X โŒ X โœ… O

 

์œ„ ํ‘œ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด const๋Š” ๊ฐ€์žฅ ์•ˆ์ „ํ•œ ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐฉ์‹์ด๋‹ค.

์‹ค์ˆ˜๋กœ ๊ฐ’์„ ๋ฐ”๊พธ๋Š” ์ผ์ด ์—†์œผ๋ฏ€๋กœ ์ฝ”๋“œ๊ฐ€ ๋”์šฑ ์•ˆ์ •์ ์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

 


๐Ÿงฉ ์†์„ฑ ๋ณ€๊ฒฝ์€ ๊ฐ€๋Šฅํ• ๊นŒ?

const user = {
  name: "์†Œ์—ฐ",
  age: 23
};

user.name = "์†Œ์—ฐ2";
console.log(user.name); // ๐Ÿ‘‰ "์†Œ์—ฐ2"

 

๋งˆ์ง€๋ง‰ ์ค„์˜ ์ฝ˜์†” ๋กœ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด name์ด ๋ฐ”๋€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

cosnt๋Š” ๋ณ€์ˆ˜(user) ์ž์ฒด๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋‹ค๋Š” ์˜๋ฏธ์ด์ง€

๊ทธ ์•ˆ์— ๋‹ด๊ธด ๊ฐ์ฒด๋‚˜ ๋ฐฐ์—ด์˜ ์†์„ฑ์€ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

์ฆ‰,

user = {} ๐Ÿ‘‰๐Ÿป (โŒ)

user.name = "์†Œ์—ฐ2" ๐Ÿ‘‰๐Ÿป (โœ…)

 

 

๋ฐฐ์—ด๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค.

const fruits = ["๐ŸŽ", "๐ŸŒ"];

fruits.push("๐Ÿ‡"); // โœ… ๊ฐ€๋Šฅ
console.log(fruits); // ๐Ÿ‘‰ ["๐ŸŽ", "๐ŸŒ", "๐Ÿ‡"]

fruits = ["๐Ÿ“"]; // โŒ ์˜ค๋ฅ˜! ์žฌํ• ๋‹น ์•ˆ๋จ

 

const๋กœ ์„ ์–ธํ•œ ๊ฐ์ฒด ๋ฐ ๋ฐฐ์—ด์€ ๋‚ด๋ถ€ ์š”์†Œ ๋ณ€๊ฒฝ์€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ,

๋ณ€์ˆ˜ ์ž์ฒด๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜๋Š” ์—†๊ธฐ ๋•Œ๋ฌธ์—

๐Ÿ‡๋ฅผ ์‚ฝ์ž…ํ•œ ๊ฒƒ์€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ,

fruits ์ž์ฒด๋ฅผ ๐Ÿ“๋กœ ๋ฐ”๊ฟ”๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์€ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋Š” ๊ฒƒ์ด๋‹ค.

 

 


๐Ÿ’ก const๋ฅผ ์–ธ์ œ ์จ์•ผ ํ• ๊นŒ

  • ๊ฐ’์ด ๋ฐ”๋€Œ์ง€ ์•Š์•„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๐Ÿ‘‰๐Ÿป ๋ฌด์กฐ๊ฑด const
  • ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด๋ฅผ ์žฌํ• ๋‹น์€ ํ•˜์ง€ ์•Š๊ณ , ๋‚ด๋ถ€ ์†์„ฑ๋งŒ ์ˆ˜์ •ํ•œ๋‹ค๋ฉด ๐Ÿ‘‰๐Ÿป const
  • ๊ฐ’์ด ๋ณ€ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๐Ÿ‘‰๐Ÿป let

 

๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์—” const๋ฅผ ๋จผ์ € ์“ฐ๊ณ ,

๊ผญ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ let์„ ์“ฐ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ํ•œ๋‹ค.

 

 


๐ŸŽ ์˜ˆ์ œ ์ •๋ฆฌ

const name = "์†Œ์—ฐ"; // ์ถ”ํ›„ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€ โŒ

const favoriteNumbers = [1, 2, 3]; // ์ถ”ํ›„ ๋ฐฐ์—ด ์ „์ฒด ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€ โŒ, ๋‚ด๋ถ€ ์ˆ˜์ • ๊ฐ€๋Šฅ โญ•

favoriteNumbers.push(4); // ๋‚ด๋ถ€ ์ˆ˜์ • ๊ฐ€๋Šฅ โญ•

const profile = { nickname: "๋ฐ๋ฐ" }; // ์ถ”ํ›„ ๊ฐ์ฒด ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€ โŒ, ์†์„ฑ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ โญ•

profile.nickname = "์˜์˜"; // ์†์„ฑ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ โญ•

let age = 22; // ์ถ”ํ›„ ๊ฐ’ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ โญ•

age = 23; // ๊ฐ’ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ โญ•

 

 


๐Ÿ“ ๋งˆ๋ฌด๋ฆฌ

const๋Š” ์ ˆ๋Œ€ ์•ˆ ๋ฐ”๋€Œ๋Š” ์ƒ์ˆ˜ ๊ฐ’์„ ์œ„ํ•œ ์„ ์–ธ ํ‚ค์›Œ๋“œ์ด์ง€๋งŒ,

๊ฐ์ฒด๋‚˜ ๋ฐฐ์—ด์˜ ๋‚ด๋ถ€๋Š” ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์–ด์•ผ๊ฒ ๋‹ค.

๋ฐ˜์‘ํ˜•