๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“ TIL

๐Ÿ“… 2025๋…„ 1์›” 24์ผ - ์˜ค๋Š˜ ๋ฐฐ์šด ๋‚ด์šฉ (TIL)

by Sjungwon 2025. 1. 24.

1. const, immutable, final์˜ ์ฐจ์ด

  • const (์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ):
    • ๋ณ€์ˆ˜์˜ **"์ฐธ์กฐ๊ฐ’(์ฃผ์†Œ)"**์ด ๊ณ ์ •๋จ. ์ฐธ์กฐํ•˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ.
    • ์˜ˆ: ๊ฐ์ฒด๋‚˜ ๋ฐฐ์—ด ๋‚ด๋ถ€์˜ ๊ฐ’์€ ์ˆ˜์ • ๊ฐ€๋Šฅ.
  • immutable (๋ถˆ๋ณ€):
    • ๋ฐ์ดํ„ฐ ์ž์ฒด๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋„๋ก ์„ค๊ณ„.
    • ์˜ˆ: ๋ฌธ์ž์—ด(String)์ด๋‚˜ ์ผ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ถˆ๋ณ€ ๊ฐ์ฒด.
  • final (์ž๋ฐ”):
    • ๊ฐ’์ด๋‚˜ ์ฐธ์กฐ ์ž์ฒด๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Œ.
    • ์„ ์–ธ ํ›„ ์ˆ˜์ • ๋ถˆ๊ฐ€๋Šฅ.

2. undefined์™€ null์˜ ์ฐจ์ด

  • undefined:
    • ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋˜์—ˆ์ง€๋งŒ ๊ฐ’์ด ํ• ๋‹น๋˜์ง€ ์•Š์€ ์ƒํƒœ.
    • "์•„์˜ˆ ๊ฐ’์ด ์—†๋Š” ์ƒํƒœ(์—†๋˜ ์ƒํƒœ)".
  • null:
    • ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜๋„์ ์œผ๋กœ "๊ฐ’์ด ์—†์Œ"์„ ๋ช…์‹œ.
    • "๊ฐ’์ด ์—†๊ธฐ๋กœ ์ •ํ•œ ์ƒํƒœ."

3. ์‚ผํ•ญ ์—ฐ์‚ฐ์ž

  • ๊ตฌ์กฐ:
    javascript
    ๋ณต์‚ฌํŽธ์ง‘
    ์กฐ๊ฑด ? ์ฐธ์ผ ๋•Œ์˜ ๊ฐ’ : ๊ฑฐ์ง“์ผ ๋•Œ์˜ ๊ฐ’;
  • ์กฐ๊ฑด๋ฌธ์„ ์งง๊ฒŒ ํ‘œํ˜„ํ•  ๋•Œ ์‚ฌ์šฉ.
  • ์˜ˆ:
    javascript
    ๋ณต์‚ฌํŽธ์ง‘
    let age = 18; let message = age >= 20 ? "์„ฑ์ธ์ž…๋‹ˆ๋‹ค." : "๋ฏธ์„ฑ๋…„์ž์ž…๋‹ˆ๋‹ค."; console.log(message); // "๋ฏธ์„ฑ๋…„์ž์ž…๋‹ˆ๋‹ค."

4. typeof์™€ instanceof

  • typeof:
    • ๋ฐ์ดํ„ฐ์˜ **ํƒ€์ž…(์ž๋ฃŒํ˜•)**์„ ํ™•์ธ.
    • ์˜ˆ: typeof 42 → "number", typeof "hello" → "string".
    • typeof null์ด "object"๋กœ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ฒ„๊ทธ.
  • instanceof:
    • ๊ฐ์ฒด๊ฐ€ ํŠน์ • ์ƒ์„ฑ์ž๋‚˜ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค์ธ์ง€ ํ™•์ธ.
    • ์˜ˆ:
      javascript
      ๋ณต์‚ฌํŽธ์ง‘
      let arr = []; console.log(arr instanceof Array); // true console.log(arr instanceof Object); // true

5. Math.random()

  • 0 ์ด์ƒ 1 ๋ฏธ๋งŒ(0 ≤ ๊ฐ’ < 1)์˜ ๋žœ๋คํ•œ ์†Œ์ˆ˜๋ฅผ ์ƒ์„ฑ.
  • ํŠน์ • ๋ฒ”์œ„์—์„œ ๋‚œ์ˆ˜๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ๊ณฑ์…ˆ๊ณผ ์ •์ˆ˜ ๋ณ€ํ™˜ ํ•„์š”:
    javascript
    ๋ณต์‚ฌํŽธ์ง‘
    let rand = Math.floor(Math.random() * 6); // 0๋ถ€ํ„ฐ 5 ์‚ฌ์ด์˜ ์ •์ˆ˜

6. ํ๋ฆ„ ์ œ์–ด (์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ, switch)

์กฐ๊ฑด๋ฌธ

  • if, else if, else๋กœ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์‹คํ–‰ ์ฝ”๋“œ ๊ฒฐ์ •:
    javascript
    ๋ณต์‚ฌํŽธ์ง‘
    if (age >= 20) { console.log("์„ฑ์ธ์ž…๋‹ˆ๋‹ค."); } else { console.log("๋ฏธ์„ฑ๋…„์ž์ž…๋‹ˆ๋‹ค."); }

switch๋ฌธ

  • ๊ฐ’์— ๋”ฐ๋ผ ์‹คํ–‰ํ•  ์ฝ”๋“œ ๋ถ„๊ธฐ:
    javascript
    ๋ณต์‚ฌํŽธ์ง‘
    let num = 2; switch (num) { case 1: console.log("1์ž…๋‹ˆ๋‹ค."); break; case 2: console.log("2์ž…๋‹ˆ๋‹ค."); break; default: console.log("๊ฐ’์ด ์—†์Šต๋‹ˆ๋‹ค."); }

๋ฐ˜๋ณต๋ฌธ

  • while๊ณผ for๋ฅผ ์‚ฌ์šฉํ•ด ํŠน์ • ์กฐ๊ฑด ๋™์•ˆ ๋ฐ˜๋ณต:
    javascript
    ๋ณต์‚ฌํŽธ์ง‘
    let count = 0; while (count < 5) { console.log(count); count++; } for (let i = 0; i < 5; i++) { console.log(i); }

continue์™€ break

  • continue: ํ˜„์žฌ ๋ฐ˜๋ณต์„ ๊ฑด๋„ˆ๋›ฐ๊ณ  ๋‹ค์Œ ๋ฐ˜๋ณต ์‹คํ–‰.
  • break: ๋ฐ˜๋ณต๋ฌธ์„ ์ฆ‰์‹œ ์ข…๋ฃŒ.
    javascript
    ๋ณต์‚ฌํŽธ์ง‘
    for (let i = 0; i < 10; i++) { if (i % 2 === 0) continue; // ์ง์ˆ˜๋Š” ๊ฑด๋„ˆ๋œ€ console.log(i); // ํ™€์ˆ˜๋งŒ ์ถœ๋ ฅ }

7. ๊ธฐํƒ€

๋ฌดํ•œ ๋ฃจํ”„์™€ Math.random() ํ™œ์šฉ

  • ๋ฌดํ•œ ๋ฃจํ”„(while (true))์—์„œ ๋žœ๋ค ์กฐ๊ฑด์œผ๋กœ ๋ฃจํ”„ ์ข…๋ฃŒ:
    javascript
    ๋ณต์‚ฌํŽธ์ง‘
    while (true) { if (Math.random() > 0.5) { console.log("HEAD!"); break; } else { console.log("TAIL ใ… ใ… "); } }

8. ๋ฐ˜๋ณต๋ฌธ์„ ํ™œ์šฉํ•œ ๋ฐฐ์—ด ์ˆœํšŒ

  • for๋ฌธ์œผ๋กœ ๋ฐฐ์—ด ์š”์†Œ๋ฅผ ์ˆœํšŒ:
    javascript
    ๋ณต์‚ฌํŽธ์ง‘
    let fruits = ["์‚ฌ๊ณผ", "๋ฐ”๋‚˜๋‚˜", "์˜ค๋ Œ์ง€"]; for (let index = 0; index < fruits.length; index++) { console.log(fruits[index]); }

์˜ค๋Š˜ ๋ฐฐ์šด ๊ตํ›ˆ

  • ๋‹จ์ถ• ํ‰๊ฐ€, ํƒ€์ž… ํ™•์ธ (typeof, instanceof), ๋žœ๋ค ์ƒ์„ฑ ๋“ฑ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ธฐ์ดˆ์ ์ธ ํ๋ฆ„๊ณผ ์ œ์–ด์— ๋Œ€ํ•ด ํ•™์Šตํ–ˆ์–ด.
  • ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ฝ๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ์™€ ๊ฐ€๋…์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ์Šต๊ด€์ด์•ผ!