็„ก์ œ

Variables (๋ณ€์ˆ˜) ๋ณธ๋ฌธ

<script>

Variables (๋ณ€์ˆ˜)

yo-u-loo 2026. 5. 28. 14:17

 

๐ŸŸจ Variables

๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฆ„์„ ๋ถ™์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„.

 

โ—ผ๏ธ ๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ• (3๋‹จ๊ณ„)

๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด '์„ ์–ธ', 'ํ• ๋‹น', '์ฐธ์กฐ'์˜ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค.

1๏ธโƒฃ ์„ ์–ธ (Declaration)

๋ณ€์ˆ˜๋ฅผ ์ƒ์„ ํ•˜๋Š” ๋‹จ๊ณ„.

let myBox; // 'myBox'๋ผ๋Š” ์ด๋ฆ„์˜ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•จ
  • let ๋˜๋Š” const ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค.

 

2๏ธโƒฃ ํ• ๋‹น (Assignment)

๋ณ€์ˆ˜์— ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋‹จ๊ณ„.

myBox = "์‚ฌํƒ•"; // myBox ๋ณ€์ˆ˜์— "์‚ฌํƒ•"์ด๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•จ
  • = (์—ฐ์‚ฐ์ž)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜ค๋ฅธ์ชฝ ๊ฐ’์„ ์™ผ์ชฝ ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค.

 

3๏ธโƒฃ ์ฐธ์กฐ (Reference)

๋ณ€์ˆ˜์— ์ €์žฅ๋œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” ๋‹จ๊ณ„.

console.log(myBox); // ์ถœ๋ ฅ: ์‚ฌํƒ•
  • ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์ž‘์„ฑํ•˜๋ฉด ์ €์žฅ๋œ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

 

โ—ผ๏ธ ์„ ์–ธ๊ณผ ๋™์‹œ์— ํ• ๋‹นํ•˜๊ธฐ

let fruit = "์‚ฌ๊ณผ"; // ์„ ์–ธ๊ณผ ํ• ๋‹น์„ ๋™์‹œ์— ์ˆ˜ํ–‰
const PI = 3.14;   // ์ ˆ๋Œ€ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ’(์ƒ์ˆ˜)์€ const๋กœ ์„ ์–ธ
  • ๋ณ€์ˆ˜๋Š” ์„ ์–ธ๊ณผ ํ• ๋‹น์„ ํ•œ ์ค„์— ํ•จ๊ป˜ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

โ—ผ๏ธ let ๊ณผ const ์ฐจ์ด

๐Ÿ”น let

let score = 10;

score = 20;

console.log(score); // 20
  • ๊ฐ’์„ ๋‹ค์‹œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜์ด๋‹ค. (์žฌํ• ๋‹น ๊ฐ€๋Šฅ)

 

๐Ÿ”น const

const PI = 3.14;

PI = 5; // ์—๋Ÿฌ ๋ฐœ์ƒ
  • ํ•œ ๋ฒˆ ์ €์žฅํ•œ ๊ฐ’์„ ๋‹ค์‹œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋Š” ๋ณ€์ˆ˜์ด๋‹ค. (์žฌํ• ๋‹น ๋ถˆ๊ฐ€๋Šฅ)

 

โ“ ๋ณ€์ˆ˜๋ฅผ ์™œ ์‚ฌ์šฉํ•˜๋‚˜์š” โ“

  • ์žฌ์‚ฌ์šฉ์„ฑ: ํ•œ ๋ฒˆ ์ €์žฅํ•ด๋‘๋ฉด ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณตํ•ด์„œ ์“ธ ์ˆ˜ ์žˆ๋‹ค.
  • ๊ฐ€๋…์„ฑ: ์ˆซ์ž 1000000 ๋Œ€์‹  salary๋ผ๋Š” ์ด๋ฆ„์„ ์“ฐ๋ฉด ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ํ›จ์”ฌ ์‰ฝ๋‹ค.
  • ์œ ์ง€๋ณด์ˆ˜: ๊ฐ’์ด ๋ฐ”๋€Œ์—ˆ์„ ๋•Œ ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ํ•œ ๊ณณ๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๊ทธ ๋ณ€์ˆ˜๋ฅผ ์“ฐ๋Š” ๋ชจ๋“  ๊ณณ์— ์ž๋™์œผ๋กœ ๋ฐ˜์˜๋œ๋‹ค.

 

๐Ÿ’ฅ ๋ณ€์ˆ˜์˜ ์ƒ๋ช…์ฃผ๊ธฐ (Life Cycle) ๐Ÿ’ฅ

์„ ์–ธ(Declaration) → ์ƒ์„ฑ(Creation) → ์ดˆ๊ธฐํ™”(Initialization) → ์‚ฌ์šฉ(Usage) → ์Šค์ฝ”ํ”„ ์ข…๋ฃŒ → ์ฐธ์กฐ ํ™•์ธ → ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(GC)
  • ์ฐธ์กฐ ์žˆ์Œ → ๋ฉ”๋ชจ๋ฆฌ ์œ ์ง€
  • ์ฐธ์กฐ ์—†์Œ → ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(GC) ๋Œ€์ƒ

 

 

๐Ÿ“‹ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•ต์‹ฌ ์šฉ์–ด ์ •๋ฆฌ ๐Ÿ“‹

์šฉ์–ด ๋œป ์„ค๋ช… ์˜ˆ์‹œ ์ฝ”๋“œ
Declare ์„ ์–ธ "์ด์ œ๋ถ€ํ„ฐ ์ด๋Ÿฐ ์ด๋ฆ„์˜ ์ƒ์ž๋ฅผ ์“ธ ๊ฑฐ์•ผ!"๋ผ๊ณ  ์•Œ๋ฆฌ๋Š” ๊ฒƒ let box;
Assign ํ• ๋‹น ๋งŒ๋“ค์–ด๋‘” ์ƒ์ž์— ๊ฐ’(๋ฌผ๊ฑด)์„ ๋„ฃ๋Š” ๊ฒƒ box = 10;
Initialization ์ดˆ๊ธฐํ™” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด์„œ ์ฒ˜์Œ ๊ฐ’์„ ๋„ฃ๋Š” ๊ฒƒ let box = 10;
Reassign ์žฌํ• ๋‹น ์ด๋ฏธ ๊ฐ’์ด ์žˆ๋Š” ๋ณ€์ˆ˜์— ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋„ฃ๋Š” ๊ฒƒ box = 20;
Define ์ •์˜ ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜์˜ ์˜๋ฏธ์™€ ๊ฐ’์„ ํ™•์ •ํ•˜๋Š” ๊ฒƒ (๋ณดํ†ต ์„ ์–ธ + ์ดˆ๊ธฐํ™”) let box = 10;
Redefine ์žฌ์ •์˜ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ์‹๋ณ„์ž๋ฅผ ๋‹ค์‹œ ์„ ์–ธํ•˜๋Š” ๊ฒƒ (var์—์„œ๋งŒ ๊ฐ€๋Šฅ) var a=1; var a=2;
Undefined ๊ฐ’์ด ์—†์Œ ๋ณ€์ˆ˜๋Š” ์กด์žฌํ•˜์ง€๋งŒ ์•„์ง ๊ฐ’์ด ํ• ๋‹น๋˜์ง€ ์•Š์€ ์ƒํƒœ (JS์˜ ๊ธฐ๋ณธ๊ฐ’). let a; // undefined

 

๐Ÿ“Œ ํŠนํžˆ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฐœ๋… ๐Ÿ“Œ

1๏ธโƒฃ Declare vs Declaration

  • Declare (๋™์‚ฌ): ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ํ–‰๋™.
    • ์˜ˆ: "You need to declare a variable first."
  • Declaration (๋ช…์‚ฌ): ์„ ์–ธ๋ฌธ ์ž์ฒด.
    • ์˜ˆ: "Where is the variable declaration?"

2๏ธโƒฃ Assign vs Assignment

  • Assign (๋™์‚ฌ): ๋ณ€์ˆ˜์— ๊ฐ’์„ ๋„ฃ๋Š” ํ–‰๋™.
    • ์˜ˆ: "Let's assign the value 5 to x."
  • Assignment (๋ช…์‚ฌ): ํ• ๋‹น๋ฌธ ๋˜๋Š” ํ• ๋‹น ๊ณผ์ •.
    • ์˜ˆ: "This assignment causes an error."

3๏ธโƒฃ Initialize vs Initialization

  • Initialize (๋™์‚ฌ): ๋ณ€์ˆ˜์— ์ฒ˜์Œ ๊ฐ’์„ ๋„ฃ๋Š” ํ–‰๋™.
    • ์˜ˆ: "Initialize a with 10."
  • Initialization (๋ช…์‚ฌ): ์„ ์–ธ๊ณผ ๋™์‹œ์— ์ฒ˜์Œ ๊ฐ’์„ ๋„ฃ๋Š” ๊ฒƒ.
    • ์˜ˆ: "This is the initialization of a."

๐Ÿ‘‰ ๋™์‚ฌ๋Š” ์‹ค์ œ๋กœ ํ•˜๋Š” ํ–‰๋™์ด๊ณ , ๋ช…์‚ฌ๋Š” ๊ทธ ํ–‰๋™์˜ ๊ฒฐ๊ณผ๋‚˜ ๊ฐœ๋…์„ ์˜๋ฏธํ•œ๋‹ค.

 

๐ŸŒŸ ๊ฟ€ํŒ: ํ•ต์‹ฌ ์ฐจ์ด ์š”์•ฝ

  • Declare vs Define: ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ๋‘ ์šฉ์–ด๋ฅผ ํ˜ผ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์ง€๋งŒ, ์—„๋ฐ€ํžˆ ๊ตฌ๋ถ„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    • Declare (์„ ์–ธ): ์ด๋ฆ„(์‹๋ณ„์ž)์„ ๋“ฑ๋กํ•˜๋Š” ๊ฒƒ.
    • Define (์ •์˜): ๋“ฑ๋ก๋œ ์ด๋ฆ„์— ์‹ค์ œ ๊ฐ’์ด๋‚˜ ๋กœ์ง(ํ•จ์ˆ˜ ๋“ฑ)์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ.
  • Const์˜ ํŠน์ง•: const๋Š” ์žฌํ• ๋‹น(Reassignment)์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์„ ์–ธ๋งŒ ํ•  ์ˆ˜ ์—†๊ณ , ์„ ์–ธ๊ณผ ๋™์‹œ์— ์ดˆ๊ธฐํ™”(Initialization) ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

 

๐Ÿ“โ€Š POINT ๐Ÿ“โ€Š

โœ”๏ธ ๋ณ€์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ์ด๋ฆ„์ด๋‹ค. โœ”๏ธ

โœ”๏ธ let์€ ๊ฐ’์ด ๋ฐ”๋€” ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜์—, const๋Š” ๊ฐ’์ด ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์ƒ์ˆ˜์— ์‚ฌ์šฉํ•œ๋‹ค. โœ”๏ธ

โœ”๏ธ ๋ณ€์ˆ˜ ์ด๋ฆ„์€ ๊ทธ ์•ˆ์— ๋‹ด๊ธด ๋‚ด์šฉ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ๊ธฐ ์‰ฝ๊ฒŒ ์ง“๋Š” ๊ฒƒ์ด ์ข‹์€ ์Šต๊ด€์ด๋‹ค. โœ”๏ธ

 


 

โš™๏ธ ์‹ค์ „ ์˜ˆ์ œ ์ฝ”๋“œ โš™๏ธ

// 1. ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„
let apple = "์‚ฌ๊ณผ";
let Apple = "๋‹ค๋ฅธ ์‚ฌ๊ณผ";
console.log(apple === Apple); // false

// 2. ์นด๋ฉœ ์ผ€์ด์Šค ์‚ฌ์šฉ
let userLoginStatus = true;

// 3. ์ƒ์ˆ˜ ํ‘œ๊ธฐ๋ฒ•
const MAX_LOGIN_ATTEMPTS = 5;

// 4. ์ˆซ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ด๋ฆ„ (์—๋Ÿฌ ๋ฐœ์ƒ)
// let 1stPlace = "Kim"; // SyntaxError