λͺ©λ‘JavaScript πŸ“ (8)

<star />

κ°€λΉ„μ§€ μ½œλ ‰ν„° (garbage collector)

ν˜„μž¬ star λ³€μˆ˜μ˜ 값은 28이닀. star λ³€μˆ˜μ˜ 이전 값인 undefined 와 27은 μ–΄λ–€ λ³€μˆ˜λ„ κ°’μœΌλ‘œ κ°–κ³  μžˆμ§€ μ•ŠλŠ”λ‹€. μ–΄λ–€ μ‹λ³„μžμ™€λ„ μ—°κ²°λ˜μ–΄ μžˆμ§€ μ•Šλ‹€. undefined 와 27이 더 이상 ν•„μš”ν•˜μ§€ μ•Šλ‹¨ 것을 의미. 아무도 μ‚¬μš©ν•˜μ§€ μ•ŠμœΌλ‹ˆ ν•„μš”μ—†λ‹€. 이런 λΆˆν•„μš”ν•œ μ“°λ ˆκΈ° 값듀은 κ°€λΉ„μ§€ μ½œλ ‰ν„° (garbage collector) 에 μ˜ν•΄ λ©”λͺ¨λ¦¬μ—μ„œ μžλ™ ν•΄μ œλœλ‹€. (λ©”λͺ¨λ¦¬μ—μ„œ μ–Έμ œ ν•΄μ œλ μ§€λŠ” 예츑 λΆˆκ°€) κ°€λΉ„μ§€ μ½œλ ‰ν„° (garbage collector) κ°€ 뭐야? - μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ ν• λ‹Ήν•œ λ©”λͺ¨λ¦¬ 곡간을 주기적으둜 κ²€μ‚¬ν•˜μ—¬ 더 이상 μ‚¬μš©λ˜μ§€ μ•ŠλŠ” λ©”λͺ¨λ¦¬λ₯Ό ν•΄μ œν•˜λŠ” κΈ°λŠ₯을 말함. 더 이상 μ‚¬μš©λ˜μ§€ μ•ŠλŠ” λ©”λͺ¨λ¦¬λž€ κ°„λ‹¨νžˆ λ§ν•˜μžλ©΄ μ–΄λ–€ μ‹λ³„μžλ„ μ°Έμ‘°ν•˜μ§€ μ•ŠλŠ” λ©”λͺ¨λ¦¬ 곡간을 μ˜λ―Έν•¨. μžλ°”μŠ€ν¬λ¦½νŠΈλŠ”..

JavaScript πŸ“ 2022. 12. 22. 16:21
null 과 undefined 의 차이점

1. null 1) null νƒ€μž…μ˜ 값은 null 이 μœ μΌν•˜λ‹€. 2) λ³€μˆ˜μ— 값이 μ—†λ‹€λŠ” 것을 μ˜λ„μ μœΌλ‘œ λͺ…μ‹œν•  λ•Œ μ‚¬μš©ν•œλ‹€. 3) λ³€μˆ˜μ— null 을 ν• λ‹Ήν•˜λŠ” 것은 λ³€μˆ˜κ°€ 이전에 μ°Έμ‘°ν•˜λ˜ 값을 더 이상 μ°Έμ‘°ν•˜μ§€ μ•Šκ² λ‹€λŠ” μ˜λ―Έλ‹€. μ΄λŠ” 이전에 ν• λ‹Ήλ˜μ–΄ 있던 값에 λŒ€ν•œ μ°Έμ‘°λ₯Ό λͺ…μ‹œμ μœΌλ‘œ μ œκ±°ν•˜λŠ” 것을 μ˜λ―Έν•˜λ©°, μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 λˆ„κ΅¬λ„ μ°Έμ‘°ν•˜μ§€ μ•ŠλŠ” λ©”λͺ¨λ¦¬ 곡간에 λŒ€ν•΄ κ°€λΉ„μ§€ μ½œλ ‰μ…˜μ„ μˆ˜ν–‰ν•  것이닀. const theboyz = 'tbz'; //이전 μ°Έμ‘°λ₯Ό μ œκ±°ν•œλ‹€ //theboyz λ³€μˆ˜λŠ” 더 이상 'tbz' λ₯Ό μ°Έμ‘°ν•˜μ§€ μ•ŠμŒ! //λ³€μˆ˜μ˜ μŠ€μ½”ν”„λ₯Ό 쒁게 λ§Œλ“€μ–΄ λ³€μˆ˜ 자체λ₯Ό 재빨리 μ†Œλ©Έμ‹œν‚€λŠ” 편이 λ‚˜μŒ theboyz = null; ν•¨μˆ˜κ°€ μœ νš¨ν•œ 값을 λ°˜ν™˜ν•  수 μ—†λŠ” 경우 λͺ…μ‹œμ μœΌλ‘œ null 을 λ°˜ν™˜ν•˜κΈ°λ„ ..

JavaScript πŸ“ 2022. 12. 21. 01:55
이벀트 루프와 νƒœμŠ€ν¬ 큐

(κ°€μš”κ³„μ—λŠ” λ”λ³΄μ΄μ¦ˆ 큐가 μžˆλ‹€.) μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” μ‹±κΈ€ μŠ€λ ˆλ“œλ‘œ λ™μž‘ν•œλ‹€. πŸ™‚ μ‹±κΈ€ μŠ€λ ˆλ“œ 방식은 ν•œ λ²ˆμ— ν•˜λ‚˜μ˜ νƒœμŠ€ν¬λ§Œ μ²˜λ¦¬ν•  수 μžˆλ‹€λŠ” 것을 μ˜λ―Έν•œλ‹€. 1️⃣ ν•˜μ§€λ§Œ, λΈŒλΌμš°μ € λ™μž‘μ„ μ‚΄νŽ΄λ³΄λ©΄ μˆ˜λ§Žμ€ νƒœμŠ€ν¬κ°€ λ™μ‹œμ— μ²˜λ¦¬λ˜λŠ” κ²ƒμ²˜λŸΌ λŠκ»΄μ§„λ‹€. πŸŒͺ 1) 이벀트 루프 - μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ λ™μ‹œμ„± (concurrency) 을 μ§€μ›ν•œλ‹€. - λΈŒλΌμš°μ €μ— λ‚΄μž₯된 κΈ°λŠ₯ 쀑 ν•˜λ‚˜. ⭐️ 콜 μŠ€νƒ (call stack) - μ†ŒμŠ€ μ½”λ“œ (μ „μ—­ μ½”λ“œλ‚˜ ν•¨μˆ˜ μ½”λ“œ λ“±...) 평가 κ³Όμ •μ—μ„œ μƒμ„±λœ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈκ°€ μΆ”κ°€λ˜κ³ , μ œκ±°λ˜λŠ” μŠ€νƒ 자료ꡬ쑰인 μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ μŠ€νƒμ΄ λ°”λ‘œ 콜 μŠ€νƒμ΄λ‹€. - ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λ©΄ ν•¨μˆ˜ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈκ°€ 순차적으둜 콜 μŠ€νƒμ— ν‘Έμ‹œλ˜μ–΄ 순차적으둜 μ‹€ν–‰λœλ‹€. - μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 단 ν•˜λ‚˜μ˜ 콜 μŠ€νƒμ„ ..

JavaScript πŸ“ 2022. 12. 18. 15:07
동기/비동기

1. 동기 (Synchronous) λž€ λ¬΄μ—‡μΌκΉŒ? - 동기 방식은 μ„œλ²„μ—μ„œ μš”μ²­μ„ λ³΄λƒˆμ„ λ•Œ 응닡이 λŒμ•„μ™€μ•Ό λ‹€μŒ λ™μž‘μ„ μˆ˜ν–‰ν•  수 μžˆλ‹€. 즉, Aμž‘μ—…μ΄ λͺ¨λ‘ μ§„ν–‰ λ λ•ŒκΉŒμ§€ Bμž‘μ—…μ€ λŒ€κΈ°ν•΄μ•Όν•œλ‹€. μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 단 ν•˜λ‚˜μ˜ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ μŠ€νƒμ„ κ°–λŠ”λ‹€. μ‹€ν–‰ 쀑인 μ‹€ν–‰ μ»¨ν…μŠ€νŠΈλ₯Ό μ œμ™Έν•œ λͺ¨λ“  μ‹€ν–‰ μ»¨ν…μŠ€νŠΈλŠ” λͺ¨λ‘ μ‹€ν–‰ λŒ€κΈ° 쀑인 νƒœμŠ€ν¬λ“€μ΄λ‹€. λŒ€κΈ° 쀑인 νƒœμŠ€ν¬λ“€μ€ ν˜„μž¬ μ‹€ν–‰ 쀑인 μ‹€ν–‰ μ»¨ν…μŠ€νŠΈκ°€ νŒλ˜μ–΄ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ μŠ€νƒμ—μ„œ 제거되면, λ‹€μ‹œ 말해 ν˜„μž¬ μ‹€ν–‰ 쀑인 ν•¨μˆ˜κ°€ μ’…λ£Œν•˜λ©΄ λΉ„λ‘œμ†Œ μ‹€ν–‰λ˜κΈ° μ‹œμž‘ν•œλ‹€. μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 ν•œ λ²ˆμ— ν•˜λ‚˜μ˜ νƒœμŠ€ν¬λ§Œ μ‹€ν–‰ν•  수 μžˆλŠ” μ‹±κΈ€ μŠ€λ ˆλ“œ (single thread) λ°©μ‹μœΌλ‘œ λ™μž‘ν•œλ‹€. μ‹±κΈ€ μŠ€λ ˆλ“œ 방식은 ν•œ λ²ˆμ— ν•˜λ‚˜μ˜ νƒœμŠ€ν¬λ§Œ μ‹€ν–‰ν•  수 있기 λ•Œλ¬Έμ— μ²˜λ¦¬μ— μ‹œ..

JavaScript πŸ“ 2022. 12. 10. 12:56