/
πŸ“™

JS Data type

JavaScript
Table of contents

μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 데이터 νƒ€μž…

μ½”λ“œμ—μ„œ μ‚¬μš©ν•˜λŠ” λͺ¨λ“  λ°μ΄ν„°λŠ” λ©”λͺ¨λ¦¬μ— μ €μž₯ν•˜κ³  μ°Έμ‘°ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€.

Data type은 데이터λ₯Ό λ©”λͺ¨λ¦¬μ— μ €μž₯ν•  λ•Œ 확보해야 ν•˜λŠ” λ©”λͺ¨λ¦¬ κ³΅κ°„μ˜ 크기와 ν• λ‹Ήν•  수 μžˆλŠ” μœ μš”ν•œ 값에 λŒ€ν•œ 정보, 그리고 λ©”λͺ¨λ¦¬μ— μ €μž₯λ˜μ–΄ μžˆλŠ” 2μ§„μˆ˜ 데이터λ₯Ό μ–΄λ–»κ²Œ 해석할 지에 λŒ€ν•œ 정보λ₯Ό 컴퓨터와 κ°œλ°œμžμ—κ²Œ μ œκ³΅ν•œλ‹€.

데이터 νƒ€μž…μ€ ν•œμ •λœ λ©”λͺ¨λ¦¬ 곡간을 효율적으둜 μ‚¬μš©ν•˜κΈ° μœ„ν•΄ μ„œ, 그리고 2μ§„μˆ˜ λ°μ΄ν„°λ‘œ λ©”λͺ¨λ¦¬μ— μ €μž₯된 데이터λ₯Ό λ‹€μ–‘ν•œ ν˜•νƒœλ‘œ μ‚¬μš©ν•˜κΈ° μœ„ν•΄ 쑴재 ν•œλ‹€.

κ°œλ°œμžλŠ” λͺ…ν™•ν•œ μ˜λ„λ₯Ό 가지고 νƒ€μž…μ„ κ΅¬λ³„ν•˜μ—¬ 값을 λ§Œλ“€κ³  javascript엔진은 νƒ€μž…μ„ κ΅¬λ³„ν•˜μ—¬ 값을 μ·¨κΈ‰ν•΄μ•Ό ν•œλ‹€.

μ›μ‹œ 데이터 νƒ€μž…(Primitive data type)

number string boolean null undefined symbol bigint

μ›μ‹œ 데이터 νƒ€μž…μ˜ 값은 Immutable value(λ³€κ²½ λΆˆκ°€λŠ₯ν•œ κ°’)이고 pass-by-value이닀.

number

숫자λ₯Ό ν‘œν˜„, μ •μˆ˜μ™€ μ‹€μˆ˜ ꡬ뢄없이 ν•˜λ‚˜μ˜ 숫자 νƒ€μž…(μ‹€μˆ˜)만 μ‘΄μž¬ν•œλ‹€.
νŠΉμˆ˜ν•œ 값인 NaN(Not a Number)도 μžˆλ‹€.

string

큰 λ”°μ˜΄ν‘œ(") ν˜Ήμ€ μž‘μ€ λ”°μ˜΄ν‘œ(')둜 묢인 0개 μ΄μƒμ˜ λ¬Έμžμ—΄μ„ ν‘œν˜„

template literal

일반 λ¬Έμžμ—΄κ³Ό λΉ„μŠ·ν•΄ λ³΄μ΄μ§€λ§Œ, ' λ˜λŠ” " 같은 톡상적인 λ”°μ˜΄ν‘œ 문자 λŒ€μ‹  λ°±ν‹±(backtick) `을 μ‚¬μš©ν•œλ‹€. ν…œν”Œλ¦Ώ λ¦¬ν„°λŸ΄ λ‚΄μ˜ λͺ¨λ“  쀄 λ°”κΏˆκ³Ό 곡백은 μžˆλŠ” κ·ΈλŒ€λ‘œ μ μš©λœλ‹€.
(typeof둜 ν™•μΈν•˜λ©΄ string으둜 λ‚˜μ˜¨λ‹€)

boolean

논리적 ture와 falseλ₯Ό ν‘œν˜„

null

null을 ν‘œν˜„, 값이 μ—†λ‹€λŠ” 것을 μ˜λ„μ μœΌλ‘œ λͺ…μ‹œν•  λ•Œ μ‚¬μš©λœλ‹€.

typeof null의 κ²°κ³ΌλŠ” "object"

μ–Έμ–΄ 자체의 였λ₯˜μ΄κ³  null은 객체가 μ•„λ‹ˆλ‹€. λ³„λ„μ˜ κ³ μœ ν•œ μžλ£Œν˜•μ„ κ°€μ§€λŠ” 특수 κ°’μœΌλ‘œ 객체가 μ•„λ‹ˆμ§€λ§Œ, ν•˜μœ„ ν˜Έν™˜μ„±μ„ μœ μ§€ν•˜κΈ° μœ„ν•΄ 이런 였λ₯˜λ₯Ό μˆ˜μ •ν•˜μ§€ μ•Šκ³  λ‚¨κ²¨λ‘μ—ˆλ‹€.

undefined

μ΄ˆκΈ°ν™” κ³Όμ •μ—μ„œ ν• λ‹Ήλ˜λŠ” νŠΉμˆ˜ν•œ κ°’, μ„ μ–Έ 이후 값을 ν• λ‹Ήν•˜μ§€ μ•Šμ€ λ³€μˆ˜λŠ”undefinedλ₯Ό 가진닀.

symbol

μœ μΌν•œ μ‹λ³„μžλ₯Ό λ§Œλ“€κΈ° μœ„ν•΄ μ‚¬μš©λ˜λ©° λͺ¨λ“  심볼 값은 κ³ μœ ν•˜λ‹€.
심볼 μ΄μ™Έμ˜ μ›μ‹œκ°’μ€ λ¦¬ν„°λŸ΄μ„ 톡해 생성이 κ°€λŠ₯ ν•˜μ§€λ§Œ 심볼은 Symbol() λ©”μ†Œλ“œλ‘œ μƒμ„±ν•œλ‹€.
μƒμ„±λœ 심볼 값은 λ…ΈμΆœλ˜μ§€ μ•ŠμœΌλ©° λ‹€λ₯Έ κ°’κ³Ό μ ˆλŒ€ μ€‘λ³΅λ˜μ§€ μ•ŠλŠ” μœ μΌλ¬΄μ΄ν•œ 값이닀.
객체의 μœ μΌν•œ ν”„λ‘œνΌν‹° ν‚€λ₯Ό λ§Œλ“€κΈ° μœ„ν•΄ μ‚¬μš©ν•  수 μžˆλ‹€.

bigint

길이에 상관없이 μ •μˆ˜λ₯Ό λ‚˜νƒ€λ‚Ό 수 있고 μ •μˆ˜ λ¦¬ν„°λŸ΄ 끝에 n을 뢙이면 λ§Œλ“€ 수 μžˆλ‹€.
λ„˜λ²„ν˜•μ΄ 가진 ν•œκ³„λ³΄λ‹€ 더 큰 μ •μˆ˜λ₯Ό ν‘œν˜„ν•˜κΈ° μœ„ν•΄ λ§Œλ“€μ–΄μ‘Œκ³  κ°€μž₯ μ΅œκ·Όμ— μΆ”κ°€λœ μ›μ‹œ 데이터 νƒ€μž…μ΄λ‹€.

객체 νƒ€μž…(Object type / Reference type)

object (array, function, regular expression)

object

μ›μ‹œ 데이터 νƒ€μž…μ„ μ œμ™Έν•œ λͺ¨λ“  값은 객체이며, mutable value(λ³€κ²½ κ°€λŠ₯ν•œ κ°’)이고 pass-by-reference이닀.

logo
Things I've Learned