πŸ’‘ NestλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό κΈ°λ³Έ μ–Έμ–΄λ‘œ μ±„νƒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μžλ°”μŠ€ν¬λ¦½νŠΈλ‘œ 섀정을 λ°”κΏ€ μˆ˜λ„ μžˆμ§€λ§Œ νƒ€μž…μŠ€ν¬λ¦½νŠΈμ˜ μž₯점을 λˆ„λ¦¬κΈ° μœ„ν•΄ κΈ°λ³Έ μ„€μ •μœΌλ‘œ μ‚¬μš©ν•˜μ‹œκΈ°λ₯Ό μΆ”μ²œν•©λ‹ˆλ‹€. 이 μ ˆμ—μ„œλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈμ— μ΅μˆ™ν•˜μ§€ μ•Šμ€ 개발자 뢄듀이 Nestλ₯Ό 배우기 μœ„ν•΄ μ•Œμ•„μ•Ό ν•  μ•„μ£Ό 기본적인 νƒ€μž…μŠ€ν¬λ¦½νŠΈ λ¬Έλ²•λ§Œμ„ μ†Œκ°œν•©λ‹ˆλ‹€. κΌ­ μ‹œκ°„μ„ νˆ¬μžν•˜μ—¬ νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό λ°°μ›Œλ³΄μ‹œκΈΈ λ°”λžλ‹ˆλ‹€. ν•˜λ‚˜ μ΄μƒμ˜ 언어에 μ΅μˆ™ν•˜λ‹€λ©΄ μ‰½κ²Œ 읡힐 수 μžˆμ„ κ²ƒμž…λ‹ˆλ‹€. μžλ°” λ˜λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό λ‹€λ£° 쀄 μ•Œμ§€λ§Œ νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό 처음 μ ‘ν•˜λŠ” 뢄듀을 λŒ€μƒμœΌλ‘œ μ΄ν›„μ˜ μ„€λͺ…을 μ§„ν–‰ν•˜κ² μŠ΅λ‹ˆλ‹€.

νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” λ§ˆμ΄ν¬λ‘œμ†Œν”„νŠΈμ—μ„œ κ°œλ°œν•œ μ–Έμ–΄μž…λ‹ˆλ‹€. μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œμ— νƒ€μž… μ‹œμŠ€ν…œμ„ λ„μž…ν•˜μ—¬ λŸ°νƒ€μž„μ— μ—λŸ¬κ°€ λ°œμƒν•  κ°€λŠ₯성이 μžˆλŠ” μ½”λ“œλ₯Ό 정적 뢄석1으둜 μ°Ύμ•„μ€λ‹ˆλ‹€. νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈμ— ꡬ문을 μΆ”κ°€ν•˜μ—¬ λ§Œλ“€μ–΄μ‘ŒμŠ΅λ‹ˆλ‹€.Β tscΒ λͺ…λ ΉμœΌλ‘œ μ»΄νŒŒμΌν•˜μ—¬ μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œλ‘œ λ³€ν™˜μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€. 컴파일 ν›„ μƒμ„±λœ μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” νƒ€μž…μ΄ μ—†μŠ΅λ‹ˆλ‹€. μžλ°”μŠ€ν¬λ¦½νŠΈμ— μ›λž˜ νƒ€μž…μ΄ μ—†κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. νƒ€μž…μŠ€ν¬λ¦½νŠΈκ°€ μ œκ³΅ν•˜λŠ” νƒ€μž… 좔둠은 νƒ€μž…μ˜€λ₯˜λ‘œ 인해 λŸ°νƒ€μž„μ— λ°œμƒν•˜λŠ” 였λ₯˜λ₯Ό 컴파일 νƒ€μž„μ— μž‘μ•„μ€λ‹ˆλ‹€. VS Code2와 같은 IDEμ—μ„œλŠ” μ†ŒμŠ€μ½”λ“œμ— μ—λŸ¬λ₯Ό ν‘œμ‹œν•΄ μ£Όλ―€λ‘œ 일일히 컴파일 λͺ…령을 μ‹€ν–‰ν•˜μ§€ μ•Šμ•„λ„ λ©λ‹ˆλ‹€.

λ³€μˆ˜ μ„ μ–Έ

νƒ€μž…μŠ€ν¬λ¦½νŠΈμ—μ„œ λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜λŠ” 방식은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

[μ„ μ–Έν‚€μ›Œλ“œ] [λ³€μˆ˜λͺ…]: [νƒ€μž…]

Typescriptμ—μ„œ μ§€μ›ν•˜λŠ” νƒ€μž…

νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ κ°€μ§€κ³  μžˆλŠ” μžλ£Œν˜•μ„ λͺ¨λ‘ ν¬ν•¨ν•©λ‹ˆλ‹€. μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ νƒ€μž…μ€ κΈ°λ³Ένƒ€μž…(Primitive value)κ³Ό κ°μ²΄ν˜•(Object), ν•¨μˆ˜ν˜•(Function)이 μžˆμŠ΅λ‹ˆλ‹€.Β typeofΒ ν‚€μ›Œλ“œλ₯Ό μ΄μš©ν•˜μ—¬ μΈμŠ€ν„΄μŠ€μ˜ νƒ€μž…μ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

typeof instance === "undefined"

κΈ°λ³Έ νƒ€μž…

typeof μ„€λͺ… ν• λ‹Ή κ°€λŠ₯ν•œ κ°’
boolean μ°Έ, 거짓을 λ‚˜νƒ€λ‚΄λŠ” 논리값 true, false
null "μœ νš¨ν•˜μ§€ μ•ŠμŒ"을 λ‚˜νƒ€λ‚Έλ‹€ null
undefined 값이 μ‘΄μž¬ν•˜μ§€ μ•ŠμŒ. 즉, λ³€μˆ˜ μ„ μ–Έ ν›„ "값이 ν• λ‹Ήλ˜μ§€ μ•ŠμŒ"을 λ‚˜νƒ€λ‚Έλ‹€ undefined
number 배정밀도 64λΉ„νŠΈ ν˜•μ‹ IEEE 754의 κ°’ -(2^53 -1) 와 2^53 -1 μ‚¬μ΄μ˜ μ •μˆ˜μ™€ μ‹€μˆ˜+Infinity,Β InfinityNaN (Not a Number)
bigint Number의 λ²”μœ„λ₯Ό λ„˜μ–΄μ„œλŠ” μ •μˆ˜λ₯Ό μ•ˆμ „ν•˜κ²Œ μ €μž₯ν•˜κ³  μ—°μ‚°ν•  수 있게 ν•΄ μ€€λ‹€ ex) const x = 2n ** 53n;μ •μˆ˜ 끝에 n을 μΆ”κ°€ν•œλ‹€
string λ¬Έμžμ—΄. λ³€κ²½ λΆˆκ°€λŠ₯(immutable)ν•˜λ‹€ ν™‘λ”°μ˜΄ν‘œ λ˜λŠ” μŒλ”°μ˜΄ν‘œλ‘œ λ‘˜λŸ¬μ‹ΈμΈ λ¬Έμžμ—΄ex) 'hello', "world"
symbol μœ μΌν•˜κ³ Β λ³€κ²½ λΆˆκ°€λŠ₯ν•œΒ (immutable) κΈ°λ³Έκ°’(primitive value)객체 μ†μ„±μ˜ ν‚€λ‘œ μ‚¬μš©ν•  수 μžˆλ‹€

객체 νƒ€μž…

객체 νƒ€μž…μ€ 속성(Property, ν”„λ‘œνΌν‹°)을 κ°€μ§€κ³  μžˆλŠ” 데이터 μ»¬λ ‰μ…˜μž…λ‹ˆλ‹€. Cμ–Έμ–΄μ˜ ꡬ쑰체와 μœ μ‚¬ν•©λ‹ˆλ‹€. 속성은 킀와 κ°’μœΌλ‘œ ν‘œν˜„ λ˜λŠ”λ° 값은 λ‹€μ‹œ μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ νƒ€μž…μ„ κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ λ‹€μŒ μ˜ˆμ™€ 같이 데이터λ₯Ό ꡬ쑰적으둜 ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.