B3 : ๋ณ€์ˆ˜, ์ƒ์ˆ˜, ์ž๋ฃŒํ˜•

2025. 8. 5. 17:46ใ†Front-end/JavaScript

๋ฐ˜์‘ํ˜•

 

๋ชฉ์ฐจ

1. ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜

    1-1. ๋ณ€์ˆ˜

    1-2. ์ƒ์ˆ˜

    1-3. ๋ณ€์ˆ˜๋ช…, ์ƒ์ˆ˜๋ช… ์ง“๋Š” ๋ฒ•

2. var, let, const์˜ ๋น„๊ต (์ค‘๋ณต์„ ์–ธ/์Šค์ฝ”ํ”„/ํ˜ธ์ด์ŠคํŒ…)

3. ์ž๋ฃŒํ˜•

    3-1. ์—ฌ๋Ÿ๊ฐ€์ง€ ์ž๋ฃŒํ˜•

    3-2. typeof ์—ฐ์‚ฐ์ž


1. ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜

1. ๋ณ€์ˆ˜ (variable)

๋ณ€์ˆ˜๋Š” ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์ด๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” var, let ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

let msg;	// ๋ณ€์ˆ˜ ์„ ์–ธ
let user = 'bang', age = 26;	// ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜ ํ•œ๊บผ๋ฒˆ์— ์„ ์–ธ

msg = 'Hello';
alert(msg);		// Hello

msg = 'world';
alert(msg);		// world

 

ํ•œ ๋ณ€์ˆ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ๋ณต์‚ฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

let a = 'a';
let b = a;

alert(a);	// a;
alert(b);	// a;

์—„๊ฒฉ ๋ชจ๋“œ๊ฐ€ ์•„๋‹ ์‹œ, ๋ณ€์ˆ˜๋ฅผ let์œผ๋กœ ์„ ์–ธํ•˜์ง€ ์•Š๊ณ  ์•„๋ฌด๋ ‡๊ฒŒ๋‚˜ ์‚ฌ์šฉํ•ด๋„ ์ƒ์„ฑ๋˜์ง€๋งŒ,

์œ ์ง€๋ณด์ˆ˜ ๋“ฑ์˜ ์ด์œ ๋กœ ๋ณ€์ˆ˜๋Š” ์„ ์–ธ์„ ํ•˜์—ฌ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

 

var๋Š” ์˜ˆ์ „์— ๋งŽ์ด ์‚ฌ์šฉํ•˜๋˜ ๋ณ€์ˆ˜ ์„ ์–ธ ํ‚ค์›Œ๋“œ๋กœ, ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฌธ์ œ์ ์ด ์žˆ์–ด ์ด์ œ๋Š” ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

  • ๋ธ”๋ก์Šค์ฝ”ํ”„๊ฐ€ ์•„๋‹Œ ํ•จ์ˆ˜์Šค์ฝ”ํ”„/์ „์—ญ ์Šค์ฝ”ํ”„์ด๋‹ค.
  • ๋ณ€์ˆ˜์˜ ์ค‘๋ณต ์„ ์–ธ์„ ํ—ˆ์šฉํ•œ๋‹ค.
  • ์„ ์–ธํ•˜๊ธฐ ์ „์— ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

2. ์ƒ์ˆ˜ (constant)

์ƒ์ˆ˜๋Š” ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์ด๋‹ค.

์ƒ์ˆ˜๋Š” ์žฌํ• ๋‹น์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ, ์ƒ์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” const๋กœ ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•œ๋‹ค.

const pi = '3.14';

 

๋Œ€๋ฌธ์ž๋กœ ์ƒ์ˆ˜๋ช…์„ ์ง€์–ด ๊ฐ€๋…์„ฑ์„ ๋†’์ผ ์ˆ˜๋„ ์žˆ๋‹ค.

const COLOR_RED = "#F00";
const COLOR_BLUE = "#00F";

 

 

3. ๋ณ€์ˆ˜๋ช…, ์ƒ์ˆ˜๋ช… ์ง“๋Š” ๋ฒ•

๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์ง€์„ ๋•Œ๋Š” ์ œ์•ฝ ์‚ฌํ•ญ์ด 3๊ฐ€์ง€ ์žˆ๋‹ค.

  1. ๋ณ€์ˆ˜๋ช…์—๋Š” ์ˆซ์ž์™€ ๋ฌธ์ž, ๊ทธ๋ฆฌ๊ณ  ๊ธฐํ˜ธ $, _๋งŒ ์‚ฌ์šฉ
  2. ์ฒซ ๊ธ€์ž๋Š” ์ˆซ์ž๊ฐ€ ๋  ์ˆ˜ ์—†์Œ
  3. ์˜ˆ์•ฝ์–ด๋Š” ๋ณ€์ˆ˜๋ช…์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ (let, return, class, function ๋“ฑ JS์—์„œ ์ด๋ฏธ ์‚ฌ์šฉ์ค‘์ธ ๋‹จ์–ด๋“ค)

๋‹ค์Œ์œผ๋กœ ์ œ์•ฝ์‚ฌํ•ญ์€ ์•„๋‹ˆ์ง€๋งŒ, ์—ฌ๋Ÿฌ ๋‹จ์–ด๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ๋ณ€์ˆ˜๋ช…์„ ์ง€์„ ๋•Œ ํ”ํžˆ ์นด๋ฉœ ํ‘œ๊ธฐ๋ฒ•(camelCase)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๋˜ํ•œ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ณ„ํ•˜์—ฌ, apple๊ณผ Apple์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ณ€์ˆ˜๊ฐ€ ๋œ๋‹ค.

let $ = 1;
let _ = 2;
let userName;
let commit_msg;

 

๋ณ€์ˆ˜๋ช…์„ ์ง“๋Š”๋ฐ์— ๊ฐ•๋ ฅํ•œ ์ œ์•ฝ์€ ์—†์ง€๋งŒ ํ†ต์ƒ์ ์œผ๋กœ ์ ์šฉ๋˜๋Š” ๊ทœ์น™์ด ์žˆ๋‹ค. ์นด๋ฉœํ‘œ๊ธฐ๋ฒ• ๊ฐ™์€ ๊ฒƒ๋“ค

  • ์ง๊ด€์ ์ด๊ณ  ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋„๋ก ์ง“๊ธฐ
  • ์ค„์ž„๋ง, ๋„ˆ๋ฌด ์งง์€ ์ด๋ฆ„์€ ํ”ผํ•˜๊ธฐ
  • ์ตœ๋Œ€ํ•œ ์„œ์ˆ ์ ์ด๊ณ  ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋ช…๋ช…ํ•˜๊ธฐ
  • ์ž์‹ ๋งŒ์˜ ๊ทœ์น™์ด๋‚˜ ์†Œ์†๋œ ํŒ€์˜ ๊ทœ์น™ ๋”ฐ๋ฅด๊ธฐ

2. var, let, const์˜ ๋น„๊ต (์ค‘๋ณต์„ ์–ธ/์Šค์ฝ”ํ”„/ํ˜ธ์ด์ŠคํŒ…)

JS์—์„œ ๋ณ€์ˆ˜, ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ํ‚ค์›Œ๋“œ๋กœ var, let, const๊ฐ€ ์žˆ๋‹ค.

์ด ํ‚ค์›Œ๋“œ๋“ค์„ ์ค‘๋ณต ์„ ์–ธ ํ—ˆ์šฉ ์—ฌ๋ถ€, ์Šค์ฝ”ํ”„, ํ˜ธ์ด์ŠคํŒ… ๊ด€์ ์—์„œ ๋น„๊ต๋ฅผ ํ•ด๋ณด์ž.

  var let const
์ค‘๋ณต ์„ ์–ธ โœ… ๊ฐ™์€ ์Šค์ฝ”ํ”„ ๋‚ด์—์„œ ์ค‘๋ณต ์„ ์–ธ ํ—ˆ์šฉ
⋅ ๊ฐ’์€ ๋ฎ์–ด์“ด๋‹ค
โŒ ๊ฐ™์€ ์Šค์ฝ”ํ”„ ๋‚ด์—์„œ ๋ถˆ๊ฐ€ โŒ ๊ฐ™์€ ์Šค์ฝ”ํ”„ ๋‚ด์—์„œ ๋ถˆ๊ฐ€
์Šค์ฝ”ํ”„  ํ•จ์ˆ˜ ์Šค์ฝ”ํ”„(function scope)
๋ธ”๋ก{} ์Šค์ฝ”ํ”„๋Š” ๋ฌด์‹œํ•œ๋‹ค
 ๋ธ”๋ก ์Šค์ฝ”ํ”„(block scope)  ๋ธ”๋ก ์Šค์ฝ”ํ”„(block scope)
ํ˜ธ์ด์ŠคํŒ… โœ… ์„ ์–ธ์ด ํ˜ธ์ด์ŠคํŒ…๋จ
์Šค์ฝ”ํ”„ ์ตœ์ƒ๋‹จ์œผ๋กœ ๋Œ์–ด์˜ฌ๋ ค์ ธ
   undefined๋กœ ์ดˆ๊ธฐํ™”๋œ๋‹ค
โœ… ์„ ์–ธ์ด ํ˜ธ์ด์ŠคํŒ…๋จ
โŒ Temporal Dead Zone(TDZ)๋•Œ๋ฌธ์—
   ์„ ์–ธ ์ „ ์ ‘๊ทผ ์‹œ ReferenceError ๋ฐœ์ƒ

โœ… ์„ ์–ธ์ด ํ˜ธ์ด์ŠคํŒ…๋จ
โŒ Temporal Dead Zone(TDZ)๋•Œ๋ฌธ์—
   ์„ ์–ธ ์ „ ์ ‘๊ทผ ์‹œ ReferenceError ๋ฐœ์ƒ
์ดˆ๊ธฐํ™” ์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š์•„๋„ undefined ํ• ๋‹น ⋅์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š์•„๋„ undefined ํ• ๋‹น  ์„ ์–ธ๊ณผ ๋™์‹œ์— ๋ฐ˜๋“œ์‹œ ์ดˆ๊ธฐํ™” ํ•„์š”
์žฌํ• ๋‹น  ๊ฐ€๋Šฅ  ๊ฐ€๋Šฅ โŒ ๋ถˆ๊ฐ€๋Šฅ

 

์Šค์ฝ”ํ”„์™€ ํ˜ธ์ด์ŠคํŒ…์— ๋Œ€ํ•œ ๋” ์ž์„ธํ•˜๊ณ  ๋”ฅํ•œ ๋‚ด์šฉ์€ ๋”ฐ๋กœ ์ •๋ฆฌํ–ˆ๋‹ค.

์Šค์ฝ”ํ”„์™€ ํ˜ธ์ด์ŠคํŒ… ํŒŒํ—ค์น˜๊ธฐ

 

(WIP) ์Šค์ฝ”ํ”„์™€ ํ˜ธ์ด์ŠคํŒ… ํŒŒํ—ค์น˜๊ธฐ

[ ๋Œ€ํ‘œ ์ด๋ฏธ์ง€ ]๋ชฉ์ฐจ1. ์Šค์ฝ”ํ”„์™€ ํ˜ธ์ด์ŠคํŒ…์˜ ๊ฐœ๋…2. JS์—”์ง„์ด ์Šค์ฝ”ํ”„์™€ ํ˜ธ์ด์ŠคํŒ…์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ์‹3. 001. ์Šค์ฝ”ํ”„์™€ ํ˜ธ์ด์ŠคํŒ…์˜ ๊ฐœ๋…โœ… ์Šค์ฝ”ํ”„๋ณ€์ˆ˜์™€ ํ•จ์ˆ˜๊ฐ€ ์œ ํšจํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„์Šค์ฝ”ํ”„ ์ข…

ldd6cr-adness.tistory.com

 


3. ์ž๋ฃŒํ˜•

1. ์—ฌ๋Ÿ๊ฐ€์ง€ ์ž๋ฃŒํ˜•

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—๋Š” ์—ฌ๋Ÿ๊ฐ€์ง€์˜ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์ด ์žˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ณ€์ˆ˜๋Š” ํŠน์ • ์ž๋ฃŒํ˜•์œผ๋กœ ์ •ํ•ด์ง€์ง€ ์•Š๊ณ , ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ž๋ฃŒํ˜•์ด ๋  ์ˆ˜ ์žˆ๋‹ค.

์ž๋ฃŒ์˜ ํƒ€์ž…์€ ์žˆ์ง€๋งŒ, ๋ณ€์ˆ˜์— ์ €์žฅ๋˜๋Š” ๊ฐ’์˜ ํƒ€์ž…์ด ์–ธ์ œ๋“ ์ง€ ๋ฐ”๋€” ์ˆ˜ ์žˆ๋Š” ๋™์  ํƒ€์ž… ์–ธ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์›์‹œ ์ž๋ฃŒํ˜• Number • ์ •์ˆ˜, ๋ถ€๋™์†Œ์ˆ˜์  ์ˆซ์ž๋ฅผ ํ‘œํ˜„
์ผ๋ฐ˜ ์ˆซ์ž ์™ธ ํŠน์ˆ˜ ์ˆซ์ž๊ฐ’์„ ํฌํ•จ (Infinity, -Infinity, NaN)
BigInt ์ˆซ์žํ˜• ๋ฒ”์œ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํฐ๊ฐ’, ์ž‘์€ ๊ฐ’์„ ํ‘œํ˜„
์ •์ˆ˜ ๋ฆฌํ„ฐ๋Ÿด ๋์— n์„ ๋ถ™์ด๊ฑฐ๋‚˜ ํ•จ์ˆ˜ BigInt()๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋ฌธ์ž์—ด/์ˆซ์ž → BigInt๋กœ ํ˜•๋ณ€ํ™˜ ๊ฐ€๋Šฅ
 ์ผ๋ฐ˜ ์ˆซ์ž์™€ ์—ฐ์‚ฐ ๋ถˆ๊ฐ€๋Šฅ
String  "", '', `` ์œผ๋กœ ๋ฌถ์–ด์„œ ํ‘œํ˜„
๋ฐฑํ‹ฑ(``)์œผ๋กœ ๋ฌถ์€ ๊ฒฝ์šฐ, ๋ฌธ์ž์—ด ์ค‘๊ฐ„์— ๋ณ€์ˆ˜, ํ‘œํ˜„์‹ ์‚ฝ์ž… ๊ฐ€๋Šฅ
๋ฌธ์ž์—ด ๋‚ด์— ์ค„๋ฐ”๊ฟˆ, ๋”ฐ์˜ดํ‘œ ๋“ฑ์„ ์“ฐ๊ณ  ์‹ถ๋‹ค๋ฉด escape character โ‚ฉ๋ฅผ ๋„ฃ๋Š”๋‹ค. (\n, \", \\, \t, ...)
Boolean true, false ๋‘ ๊ฐ€์ง€ ๊ฐ’๋งŒ ์žˆ๋‹ค
true = 1, false = 0
Null null ๊ฐ’๋งŒ ํ‘œํ˜„ํ•œ๋‹ค
์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฐ’, ๋น„์–ด์žˆ๋Š” ๊ฐ’, ์•Œ ์ˆ˜ ์—†๋Š” ๊ฐ’์„ ๋‚˜ํƒ€๋‚ธ๋‹ค
Undefined ๊ฐ’์ด ์•„์ง ํ• ๋‹น๋˜์ง€ ์•Š์€ ์ƒํƒœ์ด๋‹ค.
๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ๋งŒ ํ•˜๊ณ  ๊ฐ’์„ ํ• ๋‹นํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด, undefined๊ฐ€ ์ž๋™ ํ• ๋‹น ๋œ๋‹ค.
Symbol ์œ ์ผํ•˜๊ณ  ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ’์ด๋‹ค.
์ฃผ๋กœ ๊ฐ์ฒด์˜ ๊ณ ์œ ํ•œ ์‹๋ณ„์ž๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค
๊ฐ์ฒด ์ž๋ฃŒํ˜• Object ๋ฐ์ดํ„ฐ ์ปฌ๋ ‰์…˜์ด๋‚˜ ๋” ๋ณต์žกํ•œ ๊ฐœ์ฒด๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.(๋‹ค์–‘ํ•œ ์›์‹œ ์ž๋ฃŒํ˜• ํฌํ•จ ๊ฐ€๋Šฅ)

 

 

2. typeof ์—ฐ์‚ฐ์ž

typeof ์—ฐ์‚ฐ์ž๋Š” ์ž๋ฃŒํ˜•์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

typeof x , typeof(x) ์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

typeof undefined	// undefined
typeof 0	// number
typeof 10n	// bigint
typeof true	// boolean
typeof 'foo'	// string
typeof Symbol("id")	// symbol
typeof []		// object
typeof Math		// object (๋‚ด์žฅ ๊ฐ์ฒด)
typeof null		//object	(์–ธ์–ด ์ž์ฒด์˜ ์˜ค๋ฅ˜๋กœ, null์€ object๊ฐ€ ์•„๋‹˜)
typeof alert	// function	(ํ•จ์ˆ˜ํ˜•์€ ๋”ฐ๋กœ ์—†์œผ๋‚˜ typeof๋Š” ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ํ•จ์ˆ˜๋ฉด function์„ ๋ฐ˜ํ™˜ํ•จ)

 

 

 

 

 

์ฐธ๊ณ 

 

๋ฐ˜์‘ํ˜•