ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄/JavaScript

JavaScript λ©΄μ ‘ μ˜ˆμƒ 질문?

μˆ˜ν˜€μ΄0812 2025. 1. 6. 16:12
728x90
λ°˜μ‘ν˜•
  1. μžλ°”μŠ€ν¬λ¦½νŠΈλž€
    넀이버, ꡬ글과 같은 μ›Ή νŽ˜μ΄μ§€λ₯Ό λ™μ μœΌλ‘œ λ§Œλ“€κΈ° μœ„ν•΄ 개발된 ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄

  2. λΌμ΄λΈŒλŸ¬λ¦¬μ™€ ν”„λ ˆμž„μ›Œν¬μ˜ μ°¨μ΄λŠ”?
    1) 라이브러리 : κ°œλ°œμžκ°€ νŠΉμ • κΈ°λŠ₯을 μˆ˜ν–‰ν•  수 μžˆλ„λ‘ μ œκ³΅ν•˜λŠ” 도ꡬ λͺ¨μŒ, ν•„μš”ν•  λ•Œ ν˜ΈμΆœν•΄μ„œ μ‚¬μš©ν•  수 μžˆλ‹€. Numpy, Pandas 등이 있음
    2) ν”„λ ˆμž„μ›Œν¬ : 전체 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°œλ°œμ„ μœ„ν•œ κΈ°λ³Έ ꡬ쑰λ₯Ό 제곡, κ°œλ°œμžκ°€ κ·Έ ν‹€ μ•ˆμ—μ„œ ν•„μš”ν•œ μ½”λ“œλ₯Ό μž‘μ„±

  3. μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ νƒ€μž… λΆ„λ₯˜?
    1) μ›μ‹œ νƒ€μž… μžλ£Œν˜• : ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λ˜λŠ” 도쀑에 단 ν•˜λ‚˜μ˜ κ°’λ§Œ κ°€μ§€λŠ” SYMBOLν˜• : BigInt, 문자, boolean, null, undefined
    2) λΉ„μ›μ‹œ νƒ€μž… μžλ£Œν˜• : ν•œ λ²ˆμ— μ—¬λŸ¬ 개의 값을 κ°€μ§€λŠ” νƒ€μž… : 객체, ν•¨μˆ˜, λ°°μ—΄

  4. Infinity와 Nan에 λŒ€ν•΄μ„œ μ„€λͺ…?
    1) Infinity : λ¬΄ν•œλŒ€λ₯Ό λ‚˜νƒ€λ‚΄λŠ” κ°’μœΌλ‘œ, μ–΄λŠ μˆ«μžλ“ μ§€ 0으둜 λ‚˜λˆ„λŠ” 경우 λ°˜ν™˜λ˜λŠ” 값이기도 ν•˜λ‹€
    2) NaN : μˆ«μžκ°€ μ•„λ‹ˆλΌλŠ” 의미λ₯Ό 가지고 있고 λ¬Έμžμ—΄μ„ 숫자둜 λ‚˜λˆ„λŠ” 것과 같이 λΆ€μ •ν™•ν•œ 연산을 ν•  경우 λ°˜ν™˜λ˜λŠ” 값같은 κ²½μš°μ΄λ‹€

  5. nullκ³Ό undefined의 차이에 λŒ€ν•΄μ„œ μ„€λͺ…?
    1) null : 였직 null κ°’λ§Œ ν¬ν•¨ν•˜λŠ” μžλ£Œν˜•μœΌλ‘œ μ‚¬μš©λ˜κ³  μ‘΄μž¬ν•˜μ§€ μ•Šκ±°λ‚˜ μ•Œ 수 μ—†λŠ” 값을 λ‚˜νƒ€λ‚Ό λ•Œ μ‚¬μš©
    2) undefined : λ³€μˆ˜μ— 값이 ν• λ‹Ήλ˜μ§€ μ•Šμ€ μƒνƒœμΌ λ•Œ μžλ™μœΌλ‘œ undefined 값이 할당됨!

  6. === μ—°μ‚°μžμ™€ == μ—°μ‚°μžμ˜ 차이점?
    1) === μ—°μ‚°μž : 두 κ°’κ³Ό 두 λ³€μˆ˜μ˜ μžλ£Œν˜•κΉŒμ§€ 같은지λ₯Ό λΉ„κ΅ν•˜λŠ” μ—°μ‚°μž
    2) == μ—°μ‚°μž : 두 κ°’μ˜ μžλ£Œν˜•μ€ λΉ„κ΅ν•˜μ§€ μ•Šκ³ , 였직 값이 μΌμΉ˜ν•˜λŠ”μ§€λ₯Ό λΉ„κ΅ν•˜λŠ” μ—°μ‚°μž
  7. let과 var의 차이점 +const?
    1) let
    - μž¬ν• λ‹Ή κ°€λŠ₯ μ—¬λΆ€ : κ°€λŠ₯
    - μŠ€μ½”ν”„ : 블둝 μŠ€μ½”ν”„
    - ν˜Έμ΄μŠ€νŒ… : μ„ μ–Έλ§Œ ν˜Έμ΄μŠ€νŒ…λ˜λ©° TDZ 적용
    - μ΄ˆκΈ°ν™” ν•„μˆ˜ μ—¬λΆ€ : 선택
    - μΆ”μ²œ 상황 : 값이 변경될 κ°€λŠ₯성이 μžˆμ„ λ•Œ

    2) var
    - μž¬ν• λ‹Ή κ°€λŠ₯ μ—¬λΆ€ : κ°€λŠ₯
    - μŠ€μ½”ν”„ : ν•¨μˆ˜ μŠ€μ½”ν”„
    - ν˜Έμ΄μŠ€νŒ… : μ„ μ–Έκ³Ό μ΄ˆκΈ°ν™” λͺ¨λ‘ ν˜Έμ΄μŠ€νŒ…λ¨
    - μ΄ˆκΈ°ν™” ν•„μˆ˜ μ—¬λΆ€ : 선택
    - μΆ”μ²œ 상황 : μ‚¬μš© λΉ„μΆ”μ²œ(였래된 방식)

    3) const
    - μž¬ν• λ‹Ή κ°€λŠ₯ μ—¬λΆ€ : λΆˆκ°€λŠ₯
    - μŠ€μ½”ν”„ : 블둝 μŠ€μ½”ν”„
    - ν˜Έμ΄μŠ€νŒ… : μ„ μ–Έλ§Œ ν˜Έμ΄μŠ€νŒ…λ˜λ©° TDZ 적용
    - μ΄ˆκΈ°ν™” ν•„μˆ˜ μ—¬λΆ€ : μ„ μ–Έ μ‹œ λ°˜λ“œμ‹œ μ΄ˆκΈ°ν™” ν•„μš”
    - μΆ”μ²œ 상황 : 값이 λ³€κ²½λ˜μ§€ μ•Šμ•„μ•Ό ν•  λ•Œ


  8. ν˜Έμ΄μŠ€νŒ…μ΄λž€?
    아직 μ„ μ–Έλ˜μ§€ μ•Šμ€ ν•¨μˆ˜λ‚˜ λ³€μˆ˜λ₯Ό ν•΄λ‹Ή μŠ€μ½”ν”„μ˜ 맨 μœ„λ‘œ λŒμ–΄μ˜¬λ €μ„œ μ‚¬μš©ν•˜λŠ” κ²ƒμ²˜λŸΌ 보이게 ν•˜λŠ” js의 λ™μž‘ 방식

  9. κ΅¬μ‘°λΆ„ν•΄ν• λ‹Ήμ΄λž€?
    λ°°μ—΄ μš”μ†Œλ‚˜ 객체의 ν”„λ‘œνΌν‹°λ₯Ό λΆ„ν•΄ν•΄μ„œ κ·Έ 값듀을 각각의 λ³€μˆ˜μ— ν• λ‹Ήν•˜λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ ν‘œν˜„μ‹('...'기호λ₯Ό μ‚¬μš©)

  10. spread와 rest
    1) spread
    - νŠΉμ • λ°°μ—΄μ˜ μš”μ†Œλ‚˜ 객체의 ν”„λ‘œνΌν‹° 값을 νŽΌμΉ˜λŠ” 역할을 ν•œλ‹€
    - λ™μΌν•œ μ½”λ“œλ₯Ό μ—¬λŸ¬ 번 μž‘μ„±ν•΄μ•Ό ν•˜λŠ” κ³Όμ •μ—μ„œ μ½”λ“œλ₯Ό λ”μš± κ°„λ‹¨ν•˜κ²Œ μž‘μ„±ν•  수 μžˆλ‹€
    - μˆœμ„œμ— 상관없이 μ—¬λŸ¬ 번 λ°˜λ³΅ν•΄μ„œ μ‚¬μš©ν•  수 μžˆλ‹€

    2) rest
    - νŠΉμ • 뢀뢄을 ν•˜λ‚˜μ˜ λ°°μ—΄μ΄λ‚˜ 객체둜 λ¬ΆλŠ” 역할을 ν•˜λŠ” 문법
    - κ°μ²΄μ—μ„œ restλŠ” ꡬ쑰 λΆ„ν•΄ ν• λ‹Ήκ³Ό ν•¨κ»˜ μ‚¬μš©λ˜λ©°, μ›ν•˜λŠ” 값듀을 κΊΌλ‚΄κ³  λ‚˜λ¨Έμ§€ 값을 λ³„λ„λ‘œ λ¬Άμ–΄μ„œ ν• λ‹Ήν•  수 μžˆλ‹€
    - rest 문법은 spreadμ™€λŠ” λ‹€λ₯΄κ²Œ μˆœμ„œμ— 상관없이 μ—¬λŸ¬λ²ˆ μž‘μ„±ν•  수 μ—†κ³ , 항상 맨 λ§ˆμ§€λ§‰μ— μž‘μ„±ν•΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— μ£Όμ˜ν•΄μ„œ μž‘μ„±ν•΄μ•Ό ν•œλ‹€

  11. promise κ°μ²΄λž€?
    - jsμ—μ„œ νŠΉμ • μž‘μ—…μ„ λΉ„λ™κΈ°λ‘œ μ²˜λ¦¬ν•  λ•Œ μ‚¬μš©ν•˜λŠ” 객체
    - ν”„λ‘œλ―ΈμŠ€ κ°μ²΄λŠ” 객체 생성 μ‹œ 인수둜 excutorλΌλŠ” μ‹€ν–‰ ν•¨μˆ˜λ₯Ό μ „λ‹¬ν•˜κ³ , μ‹€ν–‰ ν•¨μˆ˜μ—λŠ” λ§€κ°œλ³€μˆ˜λ‘œ resolve와 rejectλΌλŠ” μ½œλ°±ν•¨μˆ˜λ₯Ό μ „λ‹¬ν•œλ‹€ 
    - ν”„λ‘œλ―ΈμŠ€ 객체가 생성됨과 λ™μ‹œμ— excutorκ°€ μ‹€ν–‰λ˜κ³ , excutorμ—μ„œ μ›ν•˜λŠ” μž‘μ—…μ΄ μ²˜λ¦¬λœλ‹€
    - ν”„λ‘œλ―ΈμŠ€ 객체의 excutorλŠ” μž‘μ—… 처리의 μ„±κ³  여뢀에 따라 μ„±κ³΅ν–ˆμ„ 경우 resolve, μ‹€νŒ¨ν–ˆμ„ 경우 rejectκ°€ ν˜ΈμΆœλœλ‹€

  12. async & awaitλž€?
    1) async
    - "비동기 μž‘μ—…μ„ 약속(Promise)ν•˜λŠ” ν•¨μˆ˜"λ₯Ό ν‘œμ‹œν•˜λŠ” κ°„νŒ 같은 μ—­ν• μž…λ‹ˆλ‹€.
    - κ°„νŒ(async)을 보면 "이 ν•¨μˆ˜λŠ” λ‚˜μ€‘μ— κ²°κ³Όλ₯Ό 쀄 κ±°μ•Ό"라고 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.
    - ν•¨μˆ˜μ— asyncλ₯Ό 뢙이면 μžλ™μœΌλ‘œ Promiseλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
    - 비동기 μž‘μ—…μ„ ν¬ν•¨ν•˜κ³  μžˆλŠ” ν”„λ‘œλ―ΈμŠ€ 객체λ₯Ό λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜μ— μž‘μ„±ν•˜λŠ” ν‚€μ›Œλ“œμ΄κΈ°λ•Œλ¬Έμ—, asyncλ₯Ό μž‘μ„±ν•˜λ©΄ μ½”λ“œλ₯Ό 더 μ§κ΄€μ μœΌλ‘œ 해석할 수 μžˆλ‹€

    2) await
    - async ν•¨μˆ˜ μ•ˆμ—μ„œλ§Œ μ‚¬μš©ν•  수 μžˆλŠ” ν‚€μ›Œλ“œλ‘œ, 비동기 μž‘μ—…(Promise)이 끝날 λ•ŒκΉŒμ§€ κΈ°λ‹€λ Έλ‹€κ°€ κ·Έ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
    - awaitλŠ” 마치 μ‹λ‹Ήμ—μ„œ μŒμ‹μ΄ λ‚˜μ˜¬ λ•ŒκΉŒμ§€ κΈ°λ‹€λ¦¬λŠ” μ†λ‹˜κ³Ό 같은데, μ†λ‹˜μ€ μŒμ‹μ„ κΈ°λ‹€λ¦¬μ§€λ§Œ, μŒμ‹μ΄ λ‚˜μ˜¬ λ•ŒκΉŒμ§€ λ‹€λ₯Έ μ‚¬λžŒκ³Ό λŒ€ν™”λ₯Ό ν•  μˆ˜λ„ 있음(비동기 μž‘μ—…)

  13. JSONμ΄λž€?
    - 데이터λ₯Ό ν…μŠ€νŠΈ ν˜•μ‹μœΌλ‘œ μ €μž₯ν•˜κ³  κ΅ν™˜ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” 가볍고 읽기 μ‰¬μš΄ 데이터 포맷
    - μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ κ°„ 데이터λ₯Ό 주고받을 λ•Œ μ‚¬μš©
    - JSON은 JavaScript 문법을 기반으둜 ν•˜μ§€λ§Œ, Python, Java, C++, PHP λ“± 거의 λͺ¨λ“  ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œ μ‚¬μš© κ°€λŠ₯
    - ν‚€-κ°’ 쌍으둜 데이터λ₯Ό ν‘œν˜„

  14. DOMμ΄λž€?
    - μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” DOM을 톡해 μ›Ή νŽ˜μ΄μ§€ μš”μ†Œμ— μ ‘κ·Όν•  수 μžˆλ‹€
    - DOM을 μ‚¬μš©ν•˜λ©΄ HTML λ¬Έμ„œλ₯Ό λ™μ μœΌλ‘œ μˆ˜μ •, μΆ”κ°€, μ‚­μ œν•˜κ³  μ‚¬μš©μžμ™€ μƒν˜Έμž‘μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    - μ£Όμš” 객체: document, Node, μš”μ†Œ λ…Έλ“œ λ“±
    - μ£Όμš” λ©”μ„œλ“œ: getElementById, querySelector, createElement, appendChild λ“±
    - DOM은 μ›Ή νŽ˜μ΄μ§€λ₯Ό 트리 ꡬ쑰둜 ν‘œν˜„ν•˜λ©°, JavaScriptλ₯Ό 톡해 λ™μ μœΌλ‘œ μ‘°μž‘ν•  수 μžˆλŠ” μΈν„°νŽ˜μ΄μŠ€μž…λ‹ˆλ‹€.

  15. 둜컬 μŠ€ν† λ¦¬μ§€λž€?
    - μ›Ή λΈŒλΌμš°μ €μ˜ 데이터λ₯Ό μ €μž₯ν•  수 μžˆλŠ” μ €μž₯μ†Œμ™€ 같은 κΈ°λŠ₯
    - 둜컬 μŠ€ν† λ¦¬μ§€λ₯Ό μ‚¬μš©ν•˜λ©΄ μ‚¬μš©μžκ°€ λΈŒλΌμš°μ €λ₯Ό μ’…λ£Œν•˜λ”λΌλ„ 기쑴에 μ›Ή νŽ˜μ΄μ§€ λ‚΄μ—μ„œ μ €μž₯ν•œ 데이터λ₯Ό 계속 μœ μ§€ν•  수 μžˆλ‹€
    - 둜컬 μŠ€ν† λ¦¬μ§€λŠ” ν…μŠ€νŠΈ λ°μ΄ν„°λ§Œ μ €μž₯ν•  수 있기 λ•Œλ¬Έμ— 객체 ν˜Ήμ€ λ°°μ—΄ ν˜•νƒœμ˜ 데이터λ₯Ό 둜컬 μŠ€ν† λ¦¬μ§€μ— μ €μž₯ν•˜λ €λ©΄ 데이터λ₯Ό λ¬Έμžμ—΄λ‘œ λ³€ν™˜ν•΄μ•Ό ν•œλ‹€
    - JSON κ°μ²΄μ—λŠ” νŠΉμ • λ¬Έμžμ—΄μ„ μžλ°”μŠ€ν¬λ¦½νŠΈ 객체둜 λ³€ν™˜ν•˜λŠ” JSON.parse(), νŠΉμ • 객체λ₯Ό JSON ν˜•νƒœλ‘œ λ³€ν™˜ν•˜λŠ” JSON.stringify() λ©”μ„œλ“œκ°€ μžˆλ‹€ 
728x90
λ°˜μ‘ν˜•