[🦁 TIL 23일차] 7μ›” 4일

κ·Όλ“€Β·2023λ…„ 7μ›” 4일
0
post-thumbnail

1. λ³€μˆ˜(Variable) 와 μƒμˆ˜(const)

πŸ“Œ λ³€μˆ˜

  • 이름이 뢙은 μ €μž₯μ†Œ
  • 값이 λ³€ν•  수 μžˆλŠ” 수
  • λ³€μˆ˜μ— 값을 ν• λ‹Ήν•˜κ³  ν•˜λ‚˜μ˜ λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•΄μ„œ μ—¬λŸ¬λ²ˆ μ‚¬μš©ν•œλ‹€.
  • 같은 λ³€μˆ˜λ₯Ό μ—¬λŸ¬ 번 μ„ μ–Έν•˜λ©΄ μ—λŸ¬κ°€ λ°œμƒν•œλ‹€.
  • λ³€μˆ˜μ— 담지 μ•Šκ³  같은 μ½”λ“œλ₯Ό λ°˜λ³΅ν•΄μ„œ μ‚¬μš©ν•˜λ©΄ λ©”λͺ¨λ¦¬λ₯Ό μ°¨μ§€ν•˜κΈ° λ•Œλ¬Έμ— μ„±λŠ₯상 μ΄μŠˆκ°€ 있고 μœ μ§€λ³΄μˆ˜κ°€ νž˜λ“€κΈ° λ•Œλ¬Έμ— λ³€μˆ˜λ₯Ό μ‚¬μš©ν•œλ‹€.

πŸ“Œ μƒμˆ˜

  • 값이 항상 고정적인 수

βœ”οΈ λŒ€λ¬Έμžμƒμˆ˜ (μ°μƒμˆ˜)

  • ν”„λ‘œκ·Έλž¨μ—μ„œ κ³ μ •λœ 값을 λ‚˜νƒ€λ‚΄λŠ” μƒμˆ˜λ₯Ό ν‘œν˜„ν•  λ•Œ μ‚¬μš©
  • λŒ€λ¬Έμžμ™€ λ°‘μ€„λ‘œ κ΅¬μ„±λœ 이름을 μ‚¬μš©ν•œλ‹€.
  • μ΄λŸ¬ν•œ 넀이밍 κ·œμΉ™μ€ 가독성을 높이고 μƒμˆ˜μž„μ„ λͺ…μ‹œμ μœΌλ‘œ ν‘œν˜„ν•¨μœΌλ‘œμ¨ μ½”λ“œμ˜ 이해λ₯Ό λ•λŠ”λ‹€.
  • μƒμˆ˜μ˜ μƒμœ„ν˜Έν™˜κ°œλ…κ°™λ‹€πŸ€”
  • ex) const ONE_YEAR = 365

πŸ“Œ λ³€μˆ˜ μ„ μ–Έ 방법

  • let, const, var

2. 엄격λͺ¨λ“œ (Strict Mode)

πŸ“Œ use strict

  • 엄격λͺ¨λ“œλ₯Ό ν™œμ„±ν™”μ‹œμΌœμ€€λ‹€.
  • 이 μ§€μ‹œμžκ°€ 슀크립트 μ΅œμƒλ‹¨μ— 였면 슀크립트 전체가 'λͺ¨λ˜ν•œ(μ΅œμ‹ μ˜)' λ°©μ‹μœΌλ‘œ λ™μž‘ν•œλ‹€.
  • 엄격λͺ¨λ“œλ₯Ό ν•œλ²ˆ ν™œμ„±ν™”μ‹œμΌœμ£Όλ©΄ μ·¨μ†Œν•  방법은 μ—†λ‹€.
  • use strict μœ„μ—λŠ” μ£Όμ„λ§Œ μ‚¬μš©κ°€λŠ₯ν•˜λ‹€.
  • μ½”λ“œλ₯Ό ν΄λž˜μŠ€μ™€ λͺ¨λ“ˆμ„ μ‚¬μš©ν•΄ κ΅¬μ„±ν•œλ‹€λ©΄ use strictκ°€ μžλ™μœΌλ‘œ 적용되기 λ•Œλ¬Έμ— μƒλž΅ν•΄λ„ λœλ‹€.
  • λΈŒλΌμš°μ €μ˜ μ½˜μ†”μ—μ„œλŠ” 기본적으둜 use strictκ°€ μ μš©λ˜μ–΄ μžˆμ§€ μ•Šλ‹€. ν•˜μ§€λ§Œ μ€„λ°”κΏˆμ„ ν•œλ‹€λ©΄ 적용이 κ°€λŠ₯ν•˜λ‹€.

3. 전역객체 (Global This)

πŸ“Œ μ „μ—­ 객체

  • μ–΄λ””μ„œλ‚˜ μ‚¬μš©κ°€λŠ₯ν•œ λ³€μˆ˜λ‚˜ ν•¨μˆ˜λ₯Ό λ§Œλ“€ 수 μžˆλ‹€.
  • λΈŒλΌμš°μ € ν™˜κ²½μ—μ„œ μ „μ—­ 객체λ₯Ό window, Node.js ν™˜κ²½μ—μ„œ global이라고 λΆ€λ₯Έλ‹€.
  • 두 가지가 ν†΅ν•©λ˜μ–΄ globalThis둜 ν‘œμ€€ν™”λ˜μ—ˆλ‹€. (μ΅μŠ€ν”Œλ‘œλŸ¬λŠ” ν˜Έν™˜λ˜μ§€ μ•ŠμŒ μ°Έκ³ )
  • var둜 μ„ μ–Έν•˜κ²Œ 되면 μ „μ—­ 객체의 ν”„λ‘œνΌν‹°κ°€ 되기 λ•Œλ¬Έμ— 전역객체λ₯Ό μ˜€μ—Όμ‹œν‚¨λ‹€.
  • varλŠ” globalThis ν™˜κ²½μ— μ €μž₯되고 letκ³Ό constλŠ” λ©”λͺ¨λ¦¬μ— μ €μž₯λœλ‹€.

πŸ“Œ 폴리필 (polyfill)

  • λΈŒλΌμš°μ €μ˜ κ΅¬λ²„μ „μ—μ„œ μ§€μ›ν•˜μ§€ μ•ŠλŠ” κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λŠ” μ½”λ“œ 쑰각

4. 였래된 var⭐⭐⭐

πŸ“Œ varλŠ” 블둝 μŠ€μ½”ν”„(λ³€μˆ˜μ˜ μ‚¬μš© λ²”μœ„)κ°€ μ—†λ‹€.

  • μŠ€μ½”ν”„μ—λŠ” λΈ”λ‘μŠ€μ½”ν”„ ({})와 ν•¨μˆ˜ μŠ€μ½”ν”„(function(){})κ°€ μžˆλ‹€.
  • varλŠ” λΈ”λ‘μŠ€μ½”ν”„κ°€ μ μš©λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” λœ»μ΄λ‹€. κ·Έ μ΄μœ λŠ” μ„ μ–Έν•˜λ©΄ μ „μ—­ 객체 ν”„λ‘œνΌν‹°κ°€ 되기 λ•Œλ¬Έμ΄λ‹€.
  • μ½”λ“œ 블둝이 ν•¨μˆ˜ μ•ˆμ— μžˆλ‹€λ©΄, varλŠ” ν•¨μˆ˜ μŠ€μ½”ν”„μ˜ 영ν–₯을 λ°›λŠ”λ‹€.
  • λ³€μˆ˜μ˜ 쀑볡 선언을 ν—ˆμš©ν•œλ‹€.
  • ❗ 선언은 ν˜Έμ΄μŠ€νŒ… λ˜μ§€λ§Œ 할당은 ν˜Έμ΄μŠ€νŒ… λ˜μ§€ μ•ŠλŠ”λ‹€.

πŸ“Œ μ¦‰μ‹œ μ‹€ν–‰ ν•¨μˆ˜ ν‘œν˜„μ‹ (IIFE)

(function() {

  let message = "Hello";

  alert(message); // Hello

})();
  • μœ„μ˜ μ½”λ“œλ₯Ό 보면 ν•¨μˆ˜ ν‘œν˜„μ‹μ΄ λ§Œλ“€μ–΄μ§€κ³ , λ°”λ‘œ ν˜ΈμΆœλ˜λ©΄μ„œ, ν•΄λ‹Ή ν•¨μˆ˜κ°€ λ°”λ‘œ μ‹€ν–‰λ˜μ—ˆλ‹€.
  • IIFEλ₯Ό λ§Œλ“€ λ•ŒλŠ” ν•¨μˆ˜ ν‘œν˜„μ‹μ„ κ΄„ν˜Έλ‘œ λ‘˜λŸ¬μŒ“μ•„ (function {...})와 같은 ν˜•νƒœλ‘œ λ§Œλ“ λ‹€. -> κ΄„ν˜Έλ‘œ λ‘˜λŸ¬μ‹Έμ§€ μ•ŠμœΌλ©΄ μ—λŸ¬κ°€ λ°œμƒν•œλ‹€.
  • μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” ν•¨μˆ˜ μ„ μ–Έλ¬ΈμœΌλ‘œ μ •μ˜ν•œ ν•¨μˆ˜λ₯Ό μ •μ˜μ™€ λ™μ‹œμ— λ°”λ‘œ ν˜ΈμΆœν•œλ‹€λŠ” 것을 κΈ°μ–΅ν•˜μž
  • ν•¨μˆ˜λ₯Ό κ΄„ν˜Έλ‘œ 감싸면 μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ ν•¨μˆ˜λ₯Ό ν‘œν˜„μ‹μœΌλ‘œ μΈμ‹ν•˜λ„λ‘ 속일 수 μžˆλ‹€.

5. μžλ£Œν˜• (Data Type) ⭐⭐⭐⭐⭐

  • 자료의 νƒ€μž…μ€ μžˆμ§€λ§Œ λ³€μˆ˜μ— μ €μž₯λ˜λŠ” κ°’μ˜ νƒ€μž…μ΄ μ–Έμ œλ“ μ§€ λ°”λ€” 수 μžˆλŠ” μ–Έμ–΄λ₯Ό '동적 νƒ€μž… μ–Έμ–΄ (dynamically typed)'라고 ν•œλ‹€. -> μ•”μ‹œμ  ν˜•λ³€ν™˜

πŸ“Œ μˆ«μžν˜•

  • μ •μˆ˜ν˜•κ³Ό μ†Œμˆ˜ν˜•

πŸ“Œ BigInt

  • 큰 μ •μˆ˜ ν‘œν˜„
  • 끝에 n을 뢙이면 BigInt μžλ£Œν˜•μ΄λ‹€.

πŸ“Œ λ¬Έμžν˜•

  • 큰 λ”°μ˜΄ν‘œ(""), μž‘μ€ λ”°μ˜΄ν‘œ(''), λ°±ν‹± (``)으둜 λ¬ΆλŠ”λ‹€.

πŸ“Œ λΆˆλ¦°ν˜•

  • true, false

πŸ“Œ null

  • μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”, λΉ„μ–΄μžˆλŠ”, μ•Œμˆ˜μ—†λŠ” 값을 λ‚˜νƒ€λ‚΄λŠ”λ° μ‚¬μš©ν•œλ‹€.
  • 객체가 μ•„λ‹ˆλ‹€.

πŸ“Œ undefined κ°’

  • 'ν• λ‹Ήλ˜μ§€ μ•Šμ€ μƒνƒœ'

πŸ“Œ 객체

  • 데이터 μ»¬λ ‰μ…˜μ΄λ‚˜ λ³΅μž‘ν•œ 개체λ₯Ό ν‘œν˜„
  • Array, Function

πŸ“Œ 심볼

  • 객체의 κ³ μœ ν•œ μ‹λ³„μžλ₯Ό λ§Œλ“€ λ•Œ μ‚¬μš©

πŸ“Œ typeof μ—°μ‚°μž

  • 인수의 μžλ£Œν˜•μ„ λ°˜ν™˜ν•œλ‹€.
  • μ—°μ‚°μžν˜• typeof x , ν•¨μˆ˜ν˜• typeof(x)

6. 회고

HTML배울 λ•Œμ— λΉ„ν•΄ 배울 양이 λ§Žμ•„μ„œ κ·ΈλŸ°κ±΄μ§€ ν•˜λ£¨μ— λ‚˜κ°€λŠ” μ§„λ„λŸ‰μ΄ 정말 λ§Žλ‹€. 그리고 λ‚΄κ°€ μ§€κΈˆκΉŒμ§€ κ³΅λΆ€ν–ˆλ˜ μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ μ•„λ‹ˆμ˜€λ‹€. 였늘 배운 λ‚΄μš©λ§Œ 해도 λ‚΄κ°€ μ•„λŠ” λ‚΄μš©μ€ 2%정도 μ˜€κ³  λ‚˜λ¨Έμ§€λŠ” μ „ν˜€ λͺ¨λ₯΄λŠ” λ‚΄μš©μ΄μ—ˆλ‹€. λ³΅μŠ΅ν•˜λ©΄μ„œ μ–΄λŠμ •λ„ μ •λ¦¬λŠ” λμ§€λ§Œ μš©μ–΄λ•Œλ¬Έμ— ν—·κ°ˆλ¦¬λŠ”κ²Œ λ„ˆλ¬΄ λ§Žλ‹€. νšŒκ³ μ‘°λΆ„λ“€ν•˜κ³  μ–˜κΈ°ν•˜λ©΄μ„œ μ•Œκ²Œλœ λ‚΄μš©μΈλ° Deep dive μ±…μ˜ 70p정도 λΆ„λŸ‰μ„ 벌써 배운 것이닀. 내일 μΉœκ΅¬ν•œν…Œ 책을 λ°›κΈ°λ‘œν–ˆλŠ”λ° 내일 λͺ¨λž˜λΆ€ν„° μŠ€ν„°λ””μ‹œκ°„μ— μ±…μ½λŠ” 것을 λͺ©ν‘œλ‘œ μž‘μ•„μ•Όκ² λ‹€. TIL도 μž‘μ„±ν•˜λŠ”κ²Œ 점점 μ‹œκ°„μ΄ 뢀쑱해진닀ㅠㅠ

profile
ν”„λ‘ νŠΈμ—”λ“œ 개발자 μ·¨μ€€μƒμž…λ‹ˆλ‹€.

0개의 λŒ“κΈ€