πŸ” μžλ°”μŠ€ν¬λ¦½νŠΈ 문법

1. λŠμŠ¨ν•œ νƒ€μž…μ²΄ν¬

- μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ λŠμŠ¨ν•œ νƒ€μž…μ²΄ν¬λŠ” λ‹€λ₯Έ μ–Έμ–΄λ“€μ˜ κ°•λ ₯ν•œ νƒ€μž…μ²΄ν¬ 방식에 λΉ„ν•΄ 였λ₯˜μ°ΎκΈ°μ˜ 어렀움이 μ•„λ‹Œ μžμœ λ‘œμ›€ μ΄λΌλŠ” 점에 μ§‘μ€‘λ˜μ–΄ 섀계 λ˜μ—ˆλ‹€.

- κ·Έλ ‡κΈ° λ•Œλ¬Έμ— λ³΅μž‘ν•œ 클래슀 계측을 ꡬ성할 ν•„μš”μ—†μœΌλ©° νƒ€μž… μΊμŠ€νŒ…μ— μ†Œλͺ¨λ˜λŠ” μ‹œκ°„λ„ 쀄일 수 μžˆλ‹€.

2. 객체 λ¦¬ν„°λŸ΄(Literal) ν‘œκΈ°λ²•

var o = {};
var o = { a: "foo", b: 42, c: {} };

var a = "foo", b = 42, c = {};
var o = { a: a, b: b, c: c };

var o = {
  property: function ([parameters]) {},
  get property() {},
  set property(value) {},
};

- λ‹¨μˆœνžˆ ν•„μš”ν•œ μš”μ†Œλ₯Ό μ—΄κ±°ν•˜λŠ” λ°©μ‹μœΌλ‘œ 객체λ₯Ό μƒμ„±ν•˜λŠ” λ°©λ²•μœΌλ‘œ 더 짧고 직관적이며 객체λ₯Ό μƒμ„±ν•˜κΈ° μš©μ΄ν•œμ λ“±μ˜ μž₯점을 κ°–λŠ”λ‹€.

3. ν”„λ‘œν† νƒ€μž…μ— μ˜ν•œ 상속

- μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ 클래슀 λŒ€μ‹  객체λ₯Ό λ³΅μ‚¬ν•˜μ—¬ μƒˆλ‘œμš΄ 객체λ₯Ό μƒμ„±ν•˜λŠ” 방법.

  • prototype 속성( prototype Object ) - μžμ‹ μœΌλ‘œλΆ€ν„° λ§Œλ“€μ–΄μ§ˆ 객체듀에 λŒ€ν•œ 속성
  • 객체 멀버인 proto속성이 μ°Έμ‘°ν•˜λŠ” μˆ¨μ€ 링크( Prototype Link ) - μƒμœ„μ—μ„œ 물렀받은 객체의 ν”„λ‘œν† νƒ€μž…μ— λŒ€ν•œ 정보

4. μ „μ—­λ³€μˆ˜λ₯Ό κ·Όκ°„μœΌλ‘œ ν•˜λŠ” 문제

  • λ³€μˆ˜ μ΄λ¦„μ˜ 좩돌 κ°€λŠ₯μ„±
  • 변경에 μ·¨μ•½ν•œ 문제
    • λͺ¨λ“  ν•¨μˆ˜μ—μ„œ μ „μ—­λ³€μˆ˜μ˜ 값이 변경될 수 μžˆμ–΄ μ‹ λ’°μ„± 보μž₯이 μ–΄λ ΅λ‹€.

βœ’οΈ μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 문법

1. 숫자(Numbers)

- λ‹€λ₯Έ μ–Έμ–΄μ™€λŠ” 달리 μ •μˆ˜μ™€ μ‹€μˆ˜μ˜ ꡬ뢄이 μ—†λ‹€.

- μž‘μ€ λ‹¨μœ„μ˜ μžλ£Œν˜•μ„ μ‚¬μš©ν•΄ μ˜€λ²„ν”Œλ‘œμš°κ°€ λ°œμƒν•  일이 μ—†μ–΄ νŽΈλ¦¬ν•˜λ‹€.

- NaN은 Not-A-NumberλΌλŠ” 의미둜 정상적인 값이 μ•„λ‹λ•Œλ₯Ό λ‚˜νƒ€λ‚΄λŠ” 값을 λ§ν•œλ‹€.

NaN은 μ „μ—­κ°μ²΄λ‘œμ¨ μ‘΄μž¬ν•˜κΈ°μ— μ˜ˆμ™Έμƒν™©μ„ κ°€μ •ν•˜κΈ°μœ„ν•΄ NaN을 νŒλ³„ν•˜κΈ° μœ„ν•΄μ„œλŠ” isNaN()μ΄λΌλŠ” ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄ μ²˜λ¦¬ν•œλ‹€.

NaN === NaN;        // false (NaN κ°μ²΄λŠ” μžκΈ°μžμ‹ κ³Όλ„ κ°™μ§€μ•Šλ‹€.)
Number.NaN === NaN; // false
isNaN(NaN);         // true
isNaN(Number.NaN);  // true

2. λ¬Έμžμ—΄(Strings)

- JSμ—μ„œλŠ” 문자 νƒ€μž…μ΄ μ—†λ‹€.

- JAVA와 같이 λ¬Έμžμ—΄μ— κ΄€ν•œ λ©”μ†Œλ“œλ„ μ‘΄μž¬ν•œλ‹€.

- μ΄μŠ€μΌ€μ΄ν”„ μ‹œν€€μŠ€λ‚˜ \ , 같은 문자λ₯Ό λ¬Έμžμ—΄μ— μ‚½μž…ν•΄ ν‘œν˜„ν•  수 μžˆλ‹€.

3. λ¬Έμž₯(Statements)

- μ›Ή λΈŒλΌμš°μ €μ—μ„œ 각각의 <script>νƒœκ·ΈλŠ” μ»΄νŒŒμΌλ˜μ–΄ μ¦‰μ‹œ μ‹€ν–‰λ˜λŠ” ν•˜λ‚˜μ˜ 컴파일 λ‹¨μœ„λ₯Ό λ§ν•œλ‹€.

- varλŠ” ν•¨μˆ˜λ‚΄λΆ€μ—μ„œ μ‚¬μš©λ λ•Œ ν•¨μˆ˜μ˜ privateλ³€μˆ˜λ₯Ό μ •μ˜ν•œλ‹€.