๋ณ€์ˆ˜์—๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ์กด์žฌํ•œ๋‹ค.
์˜ค๋Š˜์€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์— ์–ด๋–ค ์ข…๋ฅ˜๊ฐ€ ์žˆ๋Š”์ง€ ์ •๋ฆฌํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

์›์‹œ ํƒ€์ž… VS ๊ฐ์ฒด ํƒ€์ž…

์›์‹œ ํƒ€์ž…(Primitive type)์€ ์ •์ˆ˜, ์‹ค์ˆ˜, ๋ฌธ์ž์—ด, ๋…ผ๋ฆฌ(Boolean) ํƒ€์ž… ๋“ฑ ์‹ค์ œ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ํƒ€์ž…์ด๋‹ค.

๊ฐ์ฒด ํƒ€์ž…(Object type)์€ ์ฐธ์กฐ ํƒ€์ž…(Reference type)์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋ฉฐ, ๊ฐ์ฒด(Object)์˜ ๋ฒˆ์ง€๋ฅผ ์ฐธ์กฐ(์ฃผ์†Œ๋ฅผ ์ €์žฅ)ํ•˜๋Š” ํƒ€์ž…์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋ฒˆ์ง€ ๊ฐ’์„ ํ†ตํ•ด ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํƒ€์ž…์ด๋‹ค.

์›์‹œ ํƒ€์ž…(Primitive type)

์›์‹œ ํƒ€์ž…์˜ ๊ฒฝ์šฐ ์•„๋ž˜์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๊ฐ€์ง„๋‹ค.

  • ์ˆซ์ž(number) ํƒ€์ž… : ์ˆซ์ž, ์ •์ˆ˜, ์‹ค์ˆ˜ ๊ตฌ๋ถ„ ์—†์ด ํ•˜๋‚˜์˜ ์ˆซ์ž ํƒ€์ž…๋งŒ ์กด์žฌ
  • ๋ฌธ์ž์—ด(string) ํƒ€์ž… : ๋ฌธ์ž์—ด
  • ๋ถˆ๋ฆฌ์–ธ(boolean) ํƒ€์ž… : ๋…ผ๋ฆฌ์  true์™€ false
  • undefined : var๋‚˜ let ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜์— ๊ธฐ๋ณธ์ ์œผ๋กœ ํ• ๋‹น๋˜๋Š” ๊ฐ’
  • null : ๊ฐ’์ด ์—†๋‹ค๋Š” ๊ฒƒ์€ ์˜๋„์ ์œผ๋กœ ๋ช…์‹œํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’
  • ์‹ฌ๋ฒŒ(Symbol) ํƒ€์ž… : ES6์—์„œ ์ถ”๊ฐ€๋œ 7๋ฒˆ์งธ ํƒ€์ž…

์›์‹œ ํƒ€์ž…์—์„œ ๋‹ค ๊ฐ™์€ ์›์‹œํƒ€์ž…์ด ์•„๋‹Œ ์œ„์ฒ˜๋Ÿผ ์„ธ๋ถ€์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ๋‚˜๋ˆ„์–ด์ ธ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

์‹ฌ๋ฒŒ(Symbol)ํƒ€์ž…์€ ES6์—์„œ ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ํƒ€์ž…์œผ๋กœ ๋‚˜๋„ ์•„์ง ๋ฐฐ์šฐ์ง€ ์•Š์•„์„œ ํ•™์Šต์ด ๋œ ์ƒํƒœ์—์„œ ์ •๋ฆฌํ•ด์„œ ์˜ฌ๋ฆด ์˜ˆ์ •์ด๋‹ค.

์ˆซ์ž(number) ํƒ€์ž…

์ˆซ์ž๋Š” ๋ง๊ทธ๋Œ€๋กœ ์ •์ˆ˜/์‹ค์ˆ˜ ๋“ฑ ๋ชจ๋‘๋ฅผ ํฌํ•จํ•˜๋Š” ํƒ€์ž…์ด๋‹ค.

์ •์ˆ˜๋Š” ์†Œ์ˆ˜์  ์ดํ•˜๊ฐ€ ์—†๋Š” ์ˆซ์ž(์Œ์ˆ˜ ํฌํ•จ)์ด๊ณ  ์‹ค์ˆ˜๋Š” ์†Œ์ˆ˜์  ์ดํ•˜๊ฐ€ ์žˆ๋Š” ์ˆซ์ž์ด๋‹ค.

<script>
  let int = 10; // ์–‘์˜ ์ •์ˆ˜ํ˜• ์ˆซ์ž ํƒ€์ž…
  let negative = -10; // ์Œ์˜ ์ •์ˆ˜ํ˜• ์ˆซ์ž ํƒ€์ž…
  let float = 3.14 // ์‹ค์ˆ˜ํ˜• ์ˆซ์ž ํƒ€์ž… 
</script>

์—ฌ๊ธฐ์„œ ํŠน์ˆ˜ํ•œ ์ˆซ์ž ํƒ€์ž…์ด ์žˆ๋Š”๋ฐ NaN๊ณผ Infinity์ด๋‹ค.
NaN์€ Not a number์˜ ์•ฝ์ž๋กœ ๋ง๊ทธ๋Œ€๋กœ ์ˆซ์ž๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ๋œป์ด๋‹ค. ์ฃผ๋กœ ๊ฐ’์ด ์ˆซ์ž ํƒ€์ž…์ด ์•„๋‹Œ ๋ณ€์ˆ˜์™€ ์—ฐ์‚ฐ์„ ํ–ˆ์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ˆซ์ž ํƒ€์ž…์ด๋‹ค.

<script>
  let notANumber = "์ˆซ์ž"/2 // ๋ฌธ์ž์—ด์„ 2๋กœ ๋‚˜๋ˆ„๋‹ˆ ๊ฒฐ๊ณผ๋Š” NaN์ด ๋ฐ˜ํ™˜๋œ๋‹ค.
</script>

Infinity๋Š” ๋œป๋Œ€๋กœ ๋ฌดํ•œ๋Œ€๋ฅผ ์˜๋ฏธํ•œ๋‹ค. -Infinity์™€ Infinity๊ฐ€ ์กด์žฌํ•œ๋‹ค.

<script>
  let Infi = 10 / 0 // 10์„ 0 ๋‚˜๋ˆ„๋ฉด "Infinity"๋ผ๋Š” ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  let negativeInfi = 10 / -0 // 10์„ -0 ๋‚˜๋ˆ„๋ฉด "-Infinity"๋ผ๋Š” ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
</script>

์ˆซ์žํ˜•์—์„œ ์ฃผ์˜ํ•  ์ ์€ ๋ถ€๋™์†Œ์ˆ˜์ ์œผ๋กœ ์ธํ•ด ์ธ๊ฐ„์ด ์ƒ๊ฐํ•˜๊ธฐ์—” ๊ฐ™์€ ์ˆซ์ž์ด์ง€๋งŒ ์ปดํ“จํ„ฐ๊ฐ€ ์—ฐ์‚ฐํ•˜๋Š”๋ฐ๋Š” ๋‹ค๋ฅธ ์ˆซ์ž์ธ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

<script>
	0.1 + 0.2 == 0.3 // ์ธ๊ฐ„์€ 'true'๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.
</script>

ํ•˜์ง€๋งŒ ์ฝ˜์†” ๋‚ด์—์„œ ์—ฐ์‚ฐ์„ ํ•ด๋ณด๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

์—ฌ๊ธฐ์„œ 0.3์€ ์†Œ์ˆ˜์  ์ดํ•˜์˜ ์ˆซ์ž๊ฐ€ ์—†๋Š” 0.3์„ ์˜๋ฏธํ•˜์ง€๋งŒ 0.1 + 0.2๋ฅผ ์—ฐ์‚ฐํ•œ ๊ฐ’์€ 0.30000000000000004์ด๋ผ๋Š” ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์„œ ๋น„๊ต์‹œ false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋œ๋‹ค.




๋ฌธ์ž์—ด(string) ํƒ€์ž…

๋ฌธ์ž์—ด ํƒ€์ž…์€ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค.
๋ฌธ์ž์—ด ํƒ€์ž…์„ ํ‘œํ˜„ํ•  ๋•Œ๋Š” ์ž‘์€ ๋”ฐ์˜ดํ‘œ(''), ํฐ ๋”ฐ์˜ดํ‘œ(""), ๋ฐฑํ‹ฑ(``)์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

๋ฐฑํ‹ฑ(``)์€ ES6์—์„œ ์ฒ˜์Œ ๋‚˜์˜จ ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด์ด๋ผ๊ณ  ํ•œ๋‹ค.
ํ•˜์ง€๋งŒ ๋ณดํŽธ์ ์œผ๋กœ๋Š” ์ž‘์€ ๋”ฐ์˜ดํ‘œ('')๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

<script>
  let string1 = '์ €๋Š” ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.'
  let string2 = "์ €๋Š” ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค."
  let string3 = `์ €๋Š” ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.`
</script>

โ“ ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด์ด๋ž€?

ES6๋ถ€ํ„ฐ ์ƒˆ๋กญ๊ฒŒ ๋„์ž…๋œ ๋ฌธ์ž์—ด ํ‘œ๊ธฐ๋ฒ•์ด๋‹ค.
ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด์€ ์—ฌ๋Ÿฌ ์ค„์˜ ๋ฌธ์ž์—ด์„ ํ•œ๋ฒˆ์— ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๊ณ (๋ฉ€ํ‹ฐ๋ผ์ธ), ํ‘œํ˜„์‹์„ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๊ณ , ํƒœ๊ทธ๋ฅผ ์‚ฝ์ž…(ํƒœ๊ทธ๋“œ ํ…œํ”Œ๋ฆฟ)ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

1. ๋ฉ€ํ‹ฐ๋ผ์ธ ๋ฌธ์ž์—ด ํ‘œํ˜„

<script>
  let case1 = `Hello
  world`
</script>

์œ„์˜ ์ด๋ฏธ์ง€๋ฅผ ๋ณด๋ฉด ์ค„๋ฐ”๊ฟˆ์ด ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ์ž…๋ ฅํ•œ ๊ฒƒ๊ณผ ๋‹ค๋ฅธ ๋ฌธ์ž ํ•˜๋‚˜๊ฐ€ ์‚ฌ์ด์— ์žˆ๋‹ค.

\n์ธ๋ฐ ์ด๊ฒƒ์€ '์ด์Šค์ผ€์ดํ”„ ์‹œํ€€์Šค'๋กœ ์ค„๋ฐ”๊ฟˆ, ๋ฐฑ์ŠคํŽ˜์ด์Šค, ํƒญ ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž์ด๋‹ค.

\n๋ง๊ณ ๋„ ๋งŽ์€ ์ข…๋ฅ˜์˜ ์ด์Šค์ผ€์ดํ”„ ์‹œํ€€์Šค๊ฐ€ ์žˆ์œผ๋‹ˆ ์œ„์˜ ๋งํฌ์—์„œ ๋ณด๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค.

2. ํ‘œํ˜„์‹ ์‚ฝ์ž…

ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด์€ ํ‘œํ˜„์‹ ์‚ฝ์ž…์„ ๊ฐ„๋‹จํžˆ ๋ฌธ์ž์—ด์„ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค.

์•„๋ž˜์ฒ˜๋Ÿผ ๋ณดํ†ต ๋ฌธ์ž์—ด์„ ์ด์–ด์„œ ์—ฐ๊ฒฐํ•  ๋•Œ๋Š” ๋”ฐ์˜ดํ‘œ์™€ ์—ฐ์‚ฐ์ž '+'๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฒˆ๊ฑฐ๋กญ๊ฒŒ ์ด์–ด์„œ ์‚ฌ์šฉํ–ˆ๋‹ค.

<script>
	// ๊ธฐ์กด์˜ ๋ฌธ์ž์—ด
  	var name = "์‹ ํ˜„์šฐ";
  	var age = "29";
  
  	console.log("์•ˆ๋…•ํ•˜์„ธ์š”, " + "์ €๋Š” " + name + "์ด๊ณ , " + "๋‚˜์ด๋Š” " + age + "์‚ด์ž…๋‹ˆ๋‹ค." )
</script>

ํ•˜์ง€๋งŒ ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด์€ ์•„์ฃผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ•˜์—ฌ ๊ฐ€๋…์„ฑ์„ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

<script>
	// ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด ์‚ฌ์šฉ
  	var name = "์‹ ํ˜„์šฐ";
  	var age = "29";
  
  	console.log(`์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋Š” ${name}์ด๊ณ  ๋‚˜์ด๋Š” ${age}์‚ด์ž…๋‹ˆ๋‹ค.`)
</script>

์—ฌ๊ธฐ์„œ ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด์˜ ํŠน์ง•์€ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ํ‘œํ˜„์‹์— ๋„ฃ๊ณ  ์‹ถ์„ ๋•Œ๋Š” ${๋ณ€์ˆ˜๋ช…}์œผ๋กœ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.

3. ํƒœ๊ทธ๋“œ ํ…œํ”Œ๋ฆฟ

๋ง ๊ทธ๋Œ€๋กœ ํƒœ๊ทธ๋ฅผ ๋„ฃ์–ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋งŒ์•ฝ <ul>ํƒœ๊ทธ ์•ˆ์— <li>ํƒœ๊ทธ๋ฅผ ๋„ฃ๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.

<script>
  let tag = `<ul>
  <li>hello<li>
</ul>`
</script>

์›Œ๋‚™ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ๋ฌธ์ž์—ด ํ‘œ๊ธฐ๋ฒ•์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ ์ˆ™์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.




๋ฌธ์ž์—ด์€ ์ฃผ์˜ํ•  ์ ์€ "๋”ฐ์˜ดํ‘œ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ–ˆ๋Š”์ง€"์ด๋‹ค.

์•„๋ž˜์ฒ˜๋Ÿผ ๋”ฐ์˜ดํ‘œ๋ฅผ ๊ฐ์‹ธ๊ณ  ์•ˆ์— ๊ฐ™์€ ์ข…๋ฅ˜์˜ ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ๋ฌธ๋ฒ• ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

<script>
  let errCase1 = "๋‚˜๋Š” ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. "๋‚˜๋Š” ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค."";
  let errCase2 = '๋‚˜๋Š” ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. '๋‚˜๋Š” ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.'';
</script>

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

๋˜ํ•œ ๋ณ€์ˆ˜์— ๋ฌธ์ž์—ด์„ ๋„ฃ๊ณ  ์‹ถ์„ ๋•Œ ๋”ฐ์˜ดํ‘œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด "๋ณ€์ˆ˜๋ช…"์œผ๋กœ ์ธ์‹ํ•œ๋‹ค.

<script>
  let string = hello;
</script>

์œ„์ฒ˜๋Ÿผ hello๋ผ๋Š” ๋ณ€์ˆ˜๋ช…์„ ๊ฐ€์ง„ ๋ณ€์ˆ˜๋ฅผ ์ฐพ์•˜์ง€๋งŒ ์•„์ง ์ •์˜๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.
๊ทธ๋ž˜์„œ ๋ฐ˜๋“œ์‹œ ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋”ฐ์˜ดํ‘œ๋‚˜ ๋ฐฑํ‹ฑ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.




๋ถˆ๋ฆฌ์–ธ(boolean) ํƒ€์ž…

ํƒ€์ž… ์ค‘ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๊ฐ’ 2๊ฐ€์ง€๋ฅผ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด๋‹ค.

true์™€ false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๋ถˆ๋ฆฌ์–ธ ๊ฐ’์€ ์ง์ ‘ ํ• ๋‹น์„ ํ•˜๊ธฐ๋ณด๋‹ค '์กฐ๊ฑด์‹'์„ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” '์กฐ๊ฑด๋ฌธ'์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•œ๋‹ค.

<script>
	let num1 = 5;
  	let num2 = 10;
  
  	if(num1 > num2){
		console.log("num1 is big");
  	}else{
		console.log("num2 is big");
  	}
</script>

์กฐ๊ฑด๋ฌธ if์€ ์กฐ๊ฑด์‹(num1 > num2)์ด true๋ผ๋ฉด ์ฒซ๋ฒˆ์งธ ๋ช…๋ น๋ฌธ(console.log("num1 is big"))์„ ์‹คํ–‰ํ•˜๊ณ  false์ผ ๊ฒฝ์šฐ else์˜ ๋ช…๋ น๋ฌธ์„ ์‹คํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.

์œ„์—์„œ ๋งํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์กฐ๊ฑด์ด ์ผ์น˜ํ•˜๋Š” ๋ช…๋ น๋ฌธ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ์˜ˆ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.




undefined

undefined๋Š” ์œ„์—์„œ ์ •๋ฆฌํ•œ ๋“ฏ์ด "var์™€ let ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ์„ ์–ธํ•œ ๋ณ€์ˆ˜์— ๊ฐ’์ด ํ• ๋‹น๋˜์ง€ ์•Š์€ ์ƒํƒœ์˜ ์•”๋ฌต์ ์œผ๋กœ ํ•Ÿ๋‹น๋˜๋Š” ๊ฐ’"์ด๋ผ๊ณ  ํ–ˆ๋‹ค.

<script>
  let value;
  console.log(value);
</script>




null

null์€ ๋ณ€์ˆ˜์— ๊ฐ’์ด ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋„์ ์œผ๋กœ ๋ช…์‹œํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’์ด๋‹ค.

<script>
  let noValue;
  let empty = null;
  
  console.log(noValue, empty);
</script>

undefined๋Š” ๋ณ€์ˆ˜๋Š” ์„ ์–ธ์„ ํ–ˆ์ง€๋งŒ ๊ฐ’์ด ์ •ํ•ด์ง€์ง€ ์•Š์€ ๊ฒƒ์„ ๋งํ•œ๋‹ค.

'๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive'์—์„œ๋Š” ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋˜๋ฉด ์ฒ˜์Œ ํ• ๋‹น์ด ์ด๋ค„์งˆ ๋•Œ๊นŒ์ง€ ๋นˆ ์ƒํƒœ๋กœ ๋‚ด๋ฒ„๋ ค๋‘์ง€ ์•Š๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์ด undefined๋กœ ํ• ๋‹นํ•œ๋‹ค'๋ผ๊ณ  ๊ธฐ์žฌ๋˜์–ด์žˆ๋‹ค.

ํ•˜์ง€๋งŒ null์˜ ๊ฒฝ์šฐ, ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜๋„์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ์…€์ด ๋น„์–ด์žˆ๋‹ค๋ผ๋Š” ๊ฒƒ์„ ๋ช…์‹œํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’์ด๋ฏ€๋กœ undefined์™€๋Š” ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

๋˜ null์˜ ํŠน์ˆ˜ํ•œ ์ ์€ null์˜ ํƒ€์ž…์€ object์ธ ๊ฒƒ์ด๋‹ค.

์ด๊ฒƒ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐœ๋ฐœ์ž '๋ธŒ๋žœ๋“œ ์•„์ดํฌ'๊ฐ€ null์˜ ํƒ€์ž…์„ object๋กœ ํ•œ ๊ฒƒ์€ ์‹ค์ˆ˜๋ผ๊ณ  ์ธ์ •ํ•œ ๋ฐ” ์žˆ๋‹ค.




์ •๋ฆฌ๋ฅผ ๋งˆ์น˜๋ฉฐ โ›ณ๏ธ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ณ€์ˆ˜๋ฅผ ๋‹ค์‹œ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋Š๋‚€ ์ ์€ 'ํ™•์‹คํžˆ ๊ณต๋ถ€ํ•  ๊ฒƒ์ด ๋งŽ๋‹ค'๋ผ๋Š” ๊ฒƒ์ด๋‹ค.

๋ณ€์ˆ˜๋ฅผ ๊ณต๋ถ€ํ•  ๋•Œ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ณต๋ถ€ํ•˜๋ฉด ์ ๋‹นํ•œ ์‹œ๊ฐ„ ๋‚ด์— ๋„˜๊ธธ ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ ๋‹ค์‹œ ๊ณต๋ถ€ํ•˜๋Š” ์ž…์žฅ์—์„œ ๊ฐ•์˜๋งŒ์œผ๋กœ ๋งŒ์กฑํ•˜์ง€ ์•Š๊ณ  ์„œ์ ๋“ค์„ ํ•จ๊ป˜ ๋ณด๋ฉด์„œ ์ •๋ฆฌํ•ด์„œ ๋”์šฑ ์•Œ์•„๊ฐ€๊ณ  ์‹ถ์€ ์š•์‹ฌ์ด ์ปค์ง„๋‹ค.

์ง€๊ธˆ ์ด๋ ‡๊ฒŒ ํ™•์‹คํžˆ ์•Œ์•„๋‘๋ฉด ๋‚˜์ค‘์— ๊ฐ”์„ ๋•Œ ํ˜ผ๋ž€์ด ์—†์„ ๊ฒƒ์ด๋ผ๋Š” ๊ธฐ๋Œ€๋ฅผ ๊ฐ€์ง€๊ณ  ๋”์šฑ ์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ•˜๊ณ  ์Šค์Šค๋กœ ์ฐพ์•„๋ณด๋Š” ํƒœ๋„๋ฅผ ์œ ์ง€ํ•ด์•ผ๊ฒ ๋‹ค.

profile
untiring_dev

0๊ฐœ์˜ ๋Œ“๊ธ€