λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Programming/Javascript

[μΈμ‚¬μ΄λ“œ μžλ°”μŠ€ν¬λ¦½νŠΈ] μžλ°”μŠ€ν¬λ¦½νŠΈ 데이터 νƒ€μž…κ³Ό μ—°μ‚°μž 1 - κΈ°λ³Έ νƒ€μž…κ³Ό μ°Έμ‘° νƒ€μž…

μžλ°”μŠ€ν¬λ¦½νŠΈ 값듀은 크게 κΈ°λ³Έ νƒ€μž…κ³Ό μ°Έμ‘° νƒ€μž…μœΌλ‘œ λ‚˜λ‰œλ‹€.

 

 

μžλ°”μŠ€ν¬λ¦½νŠΈ κΈ°λ³Έ νƒ€μž…

typeof μ—°μ‚°μž : ν”Όμ—°μ‚°μžμ˜ νƒ€μž…μ„ λ¦¬ν„΄ν•œλ‹€.

μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” λŠμŠ¨ν•œ νƒ€μž… 체크 언어이닀.

- λ³€μˆ˜ μ„ μ–Έ μ‹œ νƒ€μž…μ„ 미리 μ •ν•˜μ§€ μ•Šκ³ , varλΌλŠ” ν•œ κ°€μ§€ ν‚€μ›Œλ“œλ‘œλ§Œ λ³€μˆ˜λ₯Ό μ„ μ–Έ

 

숫자

Cμ–Έμ–΄μ˜ 경우 μ •μˆ˜λƒ μ‹€μˆ˜λƒμ— 따라 int, long, float, double λ“±κ³Ό 같은 λ‹€μ–‘ν•œ 숫자 νƒ€μž…μ΄ μ‘΄μž¬ν•˜μ§€λ§Œ, μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” ν•˜λ‚˜μ˜ μˆ«μžν˜•λ§Œ μ‘΄μž¬ν•œλ‹€.

→ μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” λͺ¨λ“  숫자λ₯Ό 64λΉ„νŠΈ 뢀동 μ†Œμˆ˜μ  ν˜•νƒœλ‘œ μ €μž₯ (Cμ–Έμ–΄μ˜ double νƒ€μž…κ³Ό μœ μ‚¬)

μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œλŠ” μ •μˆ˜ν˜•μ΄ λ”°λ‘œ μ—†κ³  λͺ¨λ“  숫자λ₯Ό μ‹€μˆ˜λ‘œ μ²˜λ¦¬ν•˜λ―€λ‘œ λ‚˜λˆ—μ…ˆ 연산을 ν•  λ•Œ μ£Όμ˜ν•΄μ•Ό ν•œλ‹€.

λ¬Έμžμ—΄

λ¬Έμžμ—΄μ€ μž‘μ€ λ”°μ˜΄ν‘œ(')λ‚˜ 큰 λ”°μ˜΄ν‘œ(")둜 μƒμ„±ν•œλ‹€.

ν•œ 번 μ •μ˜λœ λ¬Έμžμ—΄μ€ λ³€ν•˜μ§€ μ•ŠλŠ”λ‹€. → μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ ν•œ 번 μƒμ„±λœ λ¬Έμžμ—΄μ€ 읽기만 κ°€λŠ₯ν•˜κ³  μˆ˜μ •μ€ λΆˆκ°€λŠ₯ν•˜λ‹€.

λ¬Έμžμ—΄μ€ 문자 λ°°μ—΄μ²˜λŸΌ 인덱슀λ₯Ό μ΄μš©ν•΄μ„œ μ ‘κ·Όν•  수 μžˆλ‹€.

 

λΆˆλ¦°κ°’

μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” true와 false 값을 λ‚˜νƒ€λ‚΄λŠ” 뢈린 νƒ€μž…μ„ κ°€μ§„λ‹€.

 

nullκ³Ό undefined

이 두 νƒ€μž…μ€ λͺ¨λ‘ μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ '값이 λΉ„μ–΄μžˆμŒ'을 λ‚˜νƒ€λ‚Έλ‹€. μžλ°”μŠ€ν¬λ¦½νŠΈ ν™˜κ²½ λ‚΄μ—μ„œ 기본적으둜 값이 ν• λ‹Ήλ˜μ§€ μ•Šμ€ λ³€μˆ˜λŠ” undefined νƒ€μž…μ΄λ²Ό, undefined νƒ€μž…μ˜ λ³€μˆ˜λŠ” λ³€μˆ˜ 자체의 κ°’ λ˜ν•œ undefined이닀.

→ undefinedλŠ” νƒ€μž…μ΄μž 값을 λ‚˜νƒ€λ‚Έλ‹€.

null νƒ€μž… λ³€μˆ˜λŠ” κ°œλ°œμžκ°€ λͺ…μ‹œμ μœΌλ‘œ 값이 λΉ„μ–΄μžˆμŒμ„ λ‚˜νƒ€λ‚΄λŠ” 데 μ‚¬μš©ν•œλ‹€.

null κ°’μ˜ λ³€μˆ˜μ˜ typeof 값은 null이 μ•„λ‹ˆλΌ object이닀.

→ null νƒ€μž… λ³€μˆ˜μΈμ§€λ₯Ό ν™•μΈν•˜κΈ° μœ„ν•΄μ„œλŠ” typeofκ°€ μ•„λ‹Œ 일치 μ—°μ‚°μž(===)λ₯Ό μ‚¬μš©ν•˜μ—¬ λ³€μˆ˜μ˜ 값을 직접 확인해야 ν•œλ‹€.

 

μžλ°”μŠ€ν¬λ¦½νŠΈ μ°Έμ‘° νƒ€μž…

μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ 숫자, λ¬Έμžμ—΄, λΆˆλ¦°κ°’, null, undefined 같은 κΈ°λ³Έ νƒ€μž…μ„ μ œμ™Έν•œ λͺ¨λ“  값은 객체닀.

→ λ°°μ—΄, ν•¨μˆ˜, μ •κ·œν‘œν˜„μ‹ 등은 λͺ¨λ‘ μžλ°”μŠ€ν¬λ¦½νŠΈ 객체.

μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ κ°μ²΄λŠ” λ‹¨μˆœνžˆ '이름(key):κ°’(value)' ν˜•νƒœμ˜ ν”„λ‘œνΌν‹°λ“€μ„ μ €μž₯ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆλ‘œμ„œ, 컴퓨터 κ³Όν•™ λΆ„μ•Όμ—μ„œ ν•΄μ‹œ(hash)λΌλŠ” μžλ£Œκ΅¬μ‘°μ™€ μƒλ‹Ήνžˆ μœ μ‚¬ν•˜λ‹€.

μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ κΈ°λ³Έ νƒ€μž…μ€ ν•˜λ‚˜μ˜ κ°’λ§Œμ„ κ°€μ§€λŠ” 데 λΉ„ν•΄, μ°Έμ‘° νƒ€μž…μΈ κ°μ²΄λŠ” μ—¬λŸ¬ 개의 ν”„λ‘œνΌν‹°λ“€μ„ 포함할 수 μžˆλ‹€. μ΄λŸ¬ν•œ ν”„λ‘œνΌν‹°μ˜ μ„±μ§ˆμ— 따라 객체의 ν”„λ‘œνΌν‹°λŠ” ν•¨μˆ˜λ‘œ 포함할 수 있으며, μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œλŠ” μ΄λŸ¬ν•œ ν”„λ‘œνΌν‹°λ₯Ό λ©”μ„œλ“œλΌκ³  λΆ€λ₯Έλ‹€.

 

객체 생성

μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 객체 κ°œλ…μ€ 생성 λ°©λ²•μ΄λ‚˜ 상속 방식 λ“±μ—μ„œ C++μ΄λ‚˜ μžλ°”μ™€ 같은 κΈ°μ‘΄ 객체 μ§€ν–₯ μ–Έμ–΄μ—μ„œμ˜ 객체 κ°œλ…κ³ΌλŠ” μ•½κ°„ λ‹€λ₯΄λ‹€. μžλ°”μ—μ„œλŠ” 클래슀λ₯Ό μ •μ˜ν•˜κ³ , 클래슀의 μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜λŠ” κ³Όμ •μ—μ„œ 객체가 λ§Œλ“€μ–΄μ§„λ‹€. 이에 λΉ„ν•΄ μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œλŠ” ν΄λž˜μŠ€λΌλŠ” κ°œλ…μ΄ μ—†κ³ , 객체 λ¦¬ν„°λŸ΄μ΄λ‚˜ μƒμ„±μž ν•¨μˆ˜ λ“± λ³„λ„μ˜ 생성 방식이 μ‘΄μž¬ν•œλ‹€.

 

μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ 객체λ₯Ό μƒμ„±ν•˜λŠ” 방법은 크게 μ„Έ κ°€μ§€κ°€ μžˆλ‹€.

  1. κΈ°λ³Έ 제곡 Object() 객체 μƒμ„±μž ν•¨μˆ˜
  2. 객체 λ¦¬ν„°λŸ΄
  3. μƒμ„±μž ν•¨μˆ˜

 

1. Object() μƒμ„±μž ν•¨μˆ˜ 이용

μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œλŠ” 객체λ₯Ό 생성할 λ•Œ λ‚΄μž₯ Object() μƒμ„±μž ν•¨μˆ˜λ₯Ό μ œκ³΅ν•œλ‹€.

 

2. 객체 λ¦¬ν„°λŸ΄ 방식 이용

λ¦¬ν„°λŸ΄ : ν‘œκΈ°λ²•

객체 λ¦¬ν„°λŸ΄ : 객체λ₯Ό μƒμ„±ν•˜λŠ” ν‘œκΈ°λ²• (κ°„λ‹¨ν•œ ν‘œκΈ°λ²•λ§ŒμœΌλ‘œ 객체λ₯Ό 생성할 수 μžˆλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ κ°•λ ₯ν•œ 문법)

  • μ€‘κ΄„ν˜Έ μ‚¬μš© ({})
  • μ€‘κ΄„ν˜Έ λ‚΄ 아무것도 적지 μ•Šμ€ κ²½μš°λŠ” 빈 객체가 생성
  • μ€‘κ΄„ν˜Έ λ‚΄ "ν”„λ‘œνΌν‹° 이름":"ν”„λ‘œνΌν‹° κ°’" ν˜•νƒœλ‘œ ν‘œκΈ°ν•˜λ©΄ ν•΄λ‹Ή ν”„λ‘œνΌν‹°κ°€ μΆ”κ°€λœ 객체λ₯Ό 생성
  • ν”„λ‘œνΌν‹° 이름은 λ¬Έμžμ—΄μ΄λ‚˜ μˆ«μžκ°€ 올 수 있고, ν”„λ‘œνΌν‹° κ°’μœΌλ‘œλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 값을 λ‚˜νƒ€λ‚΄λŠ” μ–΄λ–€ ν‘œν˜„μ‹λ„ 올 수 있음 (이 값이 ν•¨μˆ˜μΌ 경우 μ΄λŸ¬ν•œ ν”„λ‘œνΌν‹°λ₯Ό λ©”μ„œλ“œλΌκ³  ν•œλ‹€.)

 

3. μƒμ„±μž ν•¨μˆ˜ 이용

μƒμ„±μž ν•¨μˆ˜ : 객체λ₯Ό μƒμ„±ν•˜λŠ” ν•¨μˆ˜

κΈ°μ‘΄ ν•¨μˆ˜μ— new μ—°μ‚°μžλ₯Ό λΆ™μ—¬μ„œ ν˜ΈμΆœν•˜λ©΄ ν•΄λ‹Ή ν•¨μˆ˜λŠ” μƒμ„±μž ν•¨μˆ˜λ‘œ λ™μž‘ν•œλ‹€.

νŠΉμ • ν•¨μˆ˜κ°€ μƒμ„±μž ν•¨μˆ˜λ‘œ μ •μ˜λ˜μ–΄ μžˆμŒμ„ μ•Œλ¦¬κΈ° μœ„ν•΄ ν•¨μˆ˜ μ΄λ¦„μ˜ 첫 문자λ₯Ό λŒ€λ¬Έμžλ‘œ μ“°κΈ°λ₯Ό κΆŒν•˜κ³  μžˆλ‹€.

 

객체 ν”„λ‘œνΌν‹° 읽기/μ“°κΈ°/κ°±μ‹ 

객체의 ν”„λ‘œνΌν‹°μ— μ ‘κ·Όν•˜λŠ” 방법

  1. λŒ€κ΄„ν˜Έ([]) ν‘œκΈ°λ²•
  2. λ§ˆμΉ¨ν‘œ(.) ν‘œκΈ°λ²•

* NaN (Not a Number) κ°’

μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ NaN은 수치 연산을 ν•΄μ„œ 정상적인 값을 μ–»μ§€ λͺ»ν•  λ•Œ 좜λ ₯λ˜λŠ” 값이닀.

 

for in λ¬Έκ³Ό 객체  ν”„λ‘œνΌν‹° 좜λ ₯

for in 문을 μ‚¬μš©ν•˜λ©΄ 객체에 ν¬ν•¨λœ λͺ¨λ“  ν”„λ‘œνΌν‹°μ— λŒ€ν•΄ 루프λ₯Ό μˆ˜ν–‰ν•  수 μžˆλ‹€.

 

객체 ν”„λ‘œνΌν‹° μ‚­μ œ

delete μ—°μ‚°μžλ₯Ό μ΄μš©ν•΄ 객체의 ν”„λ‘œνΌν‹°λ₯Ό μ‚­μ œν•  수 μžˆλ‹€.

delete μ—°μ‚°μžλŠ” 객체의 ν”„λ‘œνΌν‹°λ₯Ό μ‚­μ œν•  뿐, 객체 자체λ₯Ό μ‚­μ œν•˜μ§€λŠ” λͺ»ν•œλ‹€.