Skip to content

Latest commit

Β 

History

History
108 lines (97 loc) Β· 4.25 KB

File metadata and controls

108 lines (97 loc) Β· 4.25 KB

[22.01.25.Tue] - Day 08

Vanilla JS

  • switchλ¬Έ

    • 쑰건식을 넣을 수 μ—†μŒ
    • λ°˜λ“œμ‹œ λ³€ν•˜μ§€ μ•ŠλŠ” μƒμˆ˜κ°’ ν•˜λ‚˜ κ°€μ§€κ³  이용
    • if문보닀 훨씬 λΉ λ₯Ό 수 있음
    • 사싀 μ‹€λ¬΄μ—μ„œλŠ” ifλ¬Έ, switchλ¬Έ λͺ¨λ‘ μ•ˆμ”€
  • 반볡문

    • νŠΉμ • μ½”λ“œ 블둝을 νŠΉμ • 횟수만큼 λ°˜λ³΅ν•΄μ„œ μ‹€ν–‰λ˜κ²Œ λ§Œλ“œλŠ” 것
    • for-loop
    • for-in
      • λ°°μ—΄ 인덱슀
      • object ν”„λ‘œνΌν‹°
    • for-of
      • λ°°μ—΄ μš”μ†Œ
      • λ¬Έμžμ—΄μ˜ 문자
    • whileλ¬Έ
      • do...while λ¬Έ
      • 반볡 횟수 λͺ¨λ₯Ό λ•Œ whileλ¬Έ 맀우 유용
  • ν•¨μˆ˜

    • 반볡적으둜 μ‚¬μš©λ˜λŠ” νŠΉμ • κΈ°λŠ₯ μˆ˜ν–‰ν•˜λŠ” ν•˜λ‚˜μ˜ μ‹€ν–‰ λ‹¨μœ„
    • ν•¨μˆ˜ μ‚¬μš© 이유
      • μ½”λ“œμ˜ μž¬μ‚¬μš©μ„± (μž¬ν™œμš©)
      • μœ μ§€ λ³΄μˆ˜μ„± (운영 및 관리 νŽΈν•΄μ§)
    • ν•¨μˆ˜ λ§Œλ“€κΈ°
      • ν•¨μˆ˜ 선언식
        • JS 엔진이 ν•¨μˆ˜ ν˜Έμ΄μŠ€νŒ…
        • μœ„μΉ˜ μƒκ΄€μ—†μŒ
      • ν•¨μˆ˜ ν‘œν˜„μ‹
        • λ³€μˆ˜ μ„ μ–Έκ³Ό 동일
        • JS 엔진이 λ³€μˆ˜ ν˜Έμ΄μŠ€νŒ…
        • μœ„μΉ˜ 맀우 μ€‘μš”
        • μ½”λ“œ 많이 μžˆμ„ λ•Œ, 가독성 μœ„ν•΄ ν•¨μˆ˜ μ„ μ–Έλ¬Έ λŒ€μ‹  ν•¨μˆ˜ ν‘œν˜„μ‹ ν™œμš© κ°€λŠ₯
      • Function μƒμ„±μž ν•¨μˆ˜
        • λ™μ μœΌλ‘œ ν•¨μˆ˜ 생성
  • 객체

    • λͺ¨λ“  κ°μ²΄λŠ” λ‚΄μž₯ ν•¨μˆ˜λ₯Ό κ°€μ§€κ³  있음
    • String 객체
      • length ν”„λ‘œνΌν‹°
      • indexOf λ©”μ„œλ“œ
        • μ‚¬μš©μžκ°€ μž…λ ₯ν•œ 문자 μžˆλŠ”μ§€ 체크 μœ„ν•œ μš©λ„ (tel; -)
        • λͺ‡ λ²ˆμ§Έμ— μžˆλŠ”μ§€ μ°ΎκΈ°λ³΄λ‹€λŠ” μž…λ ₯ν•œ ν‚€μ›Œλ“œ λ˜λŠ” 문자 μžˆλŠ”μ§€ μ•Œκ³  싢을 λ•Œ μ‚¬μš©!
      • lastIndexOf λ©”μ„œλ“œ
        • κ°€μž₯ λ§ˆμ§€λ§‰μ— λ‚˜νƒ€λ‚œ 인덱슀
      • slice λ©”μ„œλ“œ
        • slice([startIndex, endIndex + 1])
        • μ‹œμž‘ 인덱슀만 μžˆμ–΄λ„ 됨
        • λ§ˆμ΄λ„ˆμŠ€ κ°’ μ‚¬μš© κ°€λŠ₯
          • 싀무) λ§ˆμ§€λ§‰ νŠΉμ • 문자 확인할 λ•Œ 유용 (substring λ©”μ„œλ“œλ³΄λ‹€ 훨씬 νŽΈν•¨)
          • slice(-1)
      • substring λ©”μ„œλ“œ
        • slice λ©”μ„œλ“œμ™€ κΈ°λŠ₯은 λ™μΌν•˜μ§€λ§Œ 무쑰건 μ‹œμž‘ 인덱슀, μ’…λ£Œ 인덱슀 ν•„μš”
        • λ§ˆμ΄λ„ˆμŠ€ κ°’ μ‚¬μš© λΆˆκ°€
      • substr λ©”μ„œλ“œ
        • μ‹œμž‘ μΈλ±μŠ€μ™€ 길이λ₯Ό 쀌
        • κ·Έ 길이만큼 μž˜λΌλƒ„
        • μž˜λΌλ‚Ό λŒ€μƒμ˜ 길이 μ •ν™•νžˆ μ•Œ 경우 substr λ©”μ„œλ“œ 맀우 νŽΈν•¨
          • 싀무) λ‚ μ§œ κ΅¬λΆ„ν•΄μ„œ 자λ₯΄κΈ°
      • replace λ©”μ„œλ“œ
        • λ¬Έμžμ—΄ λ‚΄μ˜ νŠΉμ • 문자λ₯Ό λ‹€λ₯Έ 문자둜 ꡐ체
        • 첫 번째 λ°œκ²¬λ˜λŠ” κ²ƒλ§Œ λ°”κΏ”μ€Œ
        • μ „λΆ€ λ‹€ λ°”κΏ”μ£ΌκΈ° μœ„ν•΄μ„œλŠ” μ •κ·œ ν‘œν˜„μ‹ μ‚¬μš©
      • toUpperCase λ©”μ„œλ“œ
        • λͺ¨λ‘ λŒ€λ¬Έμžλ‘œ λ°”κΎΈκΈ°
      • toLowerCase λ©”μ„œλ“œ
        • λͺ¨λ‘ μ†Œλ¬Έμžλ‘œ λ°”κΎΈκΈ°
      • concat λ©”μ„œλ“œ
        • μ—¬λŸ¬ λ¬Έμžμ—΄ λ”ν•˜κΈ°/κ²°ν•©ν•˜κΈ°
      • trim λ©”μ„œλ“œ
        • ex. μ‚¬μš©μžλͺ… 검색
          • μ‚¬μš©μžκ°€ 검색창에 곡백 ν¬ν•¨ν•΄μ„œ μž…λ ₯ν•  수 있음
          • λ˜λŠ” DB에 μ €μž₯λ˜μ–΄μ•Ό ν•˜λŠ” 값일 λ•Œ ν™œμš©
        • μ•žλ’€ 곡백 제거
          • 사이 사이 κ³΅λ°±κΉŒμ§€ μ œκ±°ν•˜λ €λ©΄ replace, μ •κ·œμ‹ 이용

[Note]

  • μ½”λ“œ λ‚΄ μ„±λŠ₯보닀 사싀 제일 μ€‘μš”ν•œ 건 UXμž„!
    • μ‚¬μš©μžμ˜ μ‹€ν–‰/μ‚¬μš© 츑면에 집쀑을 많이 ν•΄μ•Ό 함!
    • μ‹€μ œ μ‚¬μš©μžκ°€ 앱을 μ‚¬μš©ν•˜λŠ”λ° νŠΉμ • ν–‰μœ„ λΆ„μ„ν•˜κ³  속도 κ³ λ €ν•˜λŠ” 것이 더 μ€‘μš”
  • object ν”„λ‘œνΌν‹°λ₯Ό λ™μ μœΌλ‘œ μ ‘κ·Όν•  λ•ŒλŠ” [ ] 이용
    • μ •μ μœΌλ‘œ μ ‘κ·Όν•  λ•ŒλŠ” . 이용
  • λ¦¬λ“œ 개발자
    • common.js νŒŒμΌμ— 자주 μ‚¬μš©ν•  ν•¨μˆ˜λ“€ 미리 λ§Œλ“€μ–΄λ†“μŒ
    • λ‹€λ₯Έ κ°œλ°œμžλ“€μ€ κ·Έ js νŒŒμΌμ„ importν•΄μ„œ μ‚¬μš© (λ§Œμ•½ κ·Έ ν™”λ©΄μ—μ„œ ν•„μš”ν•˜λ©΄)
    • ν•΄λ‹Ή ν™”λ©΄μ—μ„œλ§Œ μ‚¬μš©ν•˜λŠ” ν•¨μˆ˜λ©΄ ν•΄λ‹Ή js νŒŒμΌμ—μ„œ λ§Œλ“€μ–΄ μ‚¬μš©
    • λ§Œμ•½ κ³΅ν†΅μ μœΌλ‘œ μ‚¬μš©λ  것 κ°™μœΌλ©΄ common.js λ˜λŠ” λ‹€λ₯Έ 곡톡 js νŒŒμΌμ— 포함
    • λ™μΌν•œ μ΄λ¦„μ˜ ν•¨μˆ˜κ°€ μ—¬λŸ¬ 개 μ‘΄μž¬ν•˜λ©΄ μ˜€λ²„λΌμ΄λ”©λ¨
  • μ²˜μŒλΆ€ν„° μ™„λ²½ν•˜κ²Œ μ½”λ“œλ₯Ό μ§€ μˆ˜λŠ” μ—†μŒ
    • ν•„μš”ν•œ κΈ°λŠ₯ λΉ λ₯΄κ²Œ κ΅¬ν˜„ν•˜κ³  계속 λ¦¬νŒ©ν† λ§
  • λ‹¨μˆœνžˆ μ‚¬μš©λ²•μ΄ μ•„λ‹ˆλΌ λ©”μ„œλ“œ μš©λ„λ₯Ό μ•„λŠ” 것이 제일 μ€‘μš”!
  • HTMLμƒμ—μ„œ CSS둜 lower/upper case둜 λ°”κΎΌ 건 ν™”λ©΄μƒμ—μ„œλ§Œ λ°”κΎΌ κ²ƒμž„
    • μ‹€μ œ λ°μ΄ν„°λŠ” μ†Œλ¬Έμžλ‘œ μ €μž₯됨
    • 비ꡐλ₯Ό μœ„ν•΄ str.toUpperCase/toLowerCase λ©”μ„œλ“œ μ‚¬μš©

[Q&A]