λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

λ…μ„œ λͺ©λ‘/λͺ¨λ”₯λ‹€ Modern JS Deep Dive

[λͺ¨λ”₯λ‹€] 23μž₯ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ

728x90

μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ : JS 의 λ™μž‘ 원리λ₯Ό λ‹΄κ³  μžˆλŠ” 핡심 κ°œλ…. 

 

πŸ₯½ 23.1 μ†ŒμŠ€μ½”λ“œμ˜ νƒ€μž…

 

κ΅¬λΆ„ν•˜λŠ” 이유 : μ†ŒμŠ€μ½”λ“œμ˜ νƒ€μž…μ— 따라 μ‹€ν–‰ μ»¨ν…μŠ€νŠΈλ₯Ό μƒμ„±ν•˜λŠ” κ³Όμ •κ³Ό 관리 λ‚΄μš©μ΄ λ‹€λ₯΄κΈ° λ•Œλ¬Έ

μ†ŒμŠ€μ½”λ“œμ˜ νƒ€μž…   μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ
μ „μ—­ μ½”λ“œ 전역에 μ‘΄μž¬ν•˜λŠ” μ†ŒμŠ€μ½”λ“œ. μ „μ—­ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ
ν•¨μˆ˜ μ½”λ“œ ν•¨μˆ˜ 내뢀에 μ‘΄μž¬ν•˜λŠ” μ†ŒμŠ€μ½”λ“œ ν•¨μˆ˜ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ
eval μ½”λ“œ 빌트인 μ „μ—­ ν•¨μˆ˜μΈ eval ν•¨μˆ˜μ— 인수둜 μ „λ‹¬λ˜μ–΄ μ‹€ν–‰λ˜λŠ” μ†ŒμŠ€μ½”λ“œ
(stric mode μ—μ„œ μŠ€μ½”ν”„ 생성)
eval μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ
λͺ¨λ“ˆ μ½”λ“œ λͺ¨λ“ˆ 내뢀에 μ‘΄μž¬ν•˜λŠ” μ†ŒμŠ€μ½”λ“œ λͺ¨λ“ˆ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ

 

 

 

 

πŸ₯½ 23.2 μ†ŒμŠ€μ½”λ“œμ˜ 평가와 μ‹€ν–‰

 

μ†ŒμŠ€ μ½”λ“œ 평가

- μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ 생성 & λ³€μˆ˜, ν•¨μˆ˜ λ“±μ˜ μ„ μ–Έλ¬Έλ§Œ λ¨Όμ € μ‹€ν–‰ -> μƒμ„±λœ λ³€μˆ˜, ν•¨μˆ˜ μ‹λ³„μžλ₯Ό μŠ€μ½”ν”„μ— 등둝

⏬

μ†ŒμŠ€ μ½”λ“œ μ‹€ν–‰

- 선언문을 μ œμ™Έν•œ μ†ŒμŠ€μ½”λ“œκ°€ 순차적으둜 μ‹€ν–‰. 

- λŸ°νƒ€μž„. 

- μ†ŒμŠ€μ½”λ“œ 싀행에 ν•„μš”ν•œ μ •λ³΄λŠ” μŠ€μ½”ν”„μ—μ„œ κ²€μƒ‰ν•΄μ„œ 취득함. 

- λ³€μˆ˜ κ°’ 등이 λ³€κ²½λ˜λ©΄ μ‹€ν–‰ κ²°κ³ΌλŠ” λ‹€μ‹œ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈκ°€ κ΄€λ¦¬ν•˜λŠ” μŠ€μ½”ν”„μ— 등둝이 됨. 

 

 

 

 

πŸ₯½ 23.3 μ‹€ν–‰ μ»¨ν…μŠ€νŠΈμ˜ μ—­ν• 

 

1. μ „μ—­ μ½”λ“œ 평가

- μ„ μ–Έλ¬Έλ§Œ λ¨Όμ € μ‹€ν–‰

 

2. μ „μ—­ μ½”λ“œ μ‹€ν–‰

- λŸ°νƒ€μž„ μ‹œμž‘, 순차적 μ‹€ν–‰

 

3. ν•¨μˆ˜ μ½”λ“œ 평가

- ν•¨μˆ˜ 호좜 μ‹œ 순차적으둜 μ§„ν–‰λ˜λ˜ 싀행이 μΌμ‹œμ€‘μ§€ 됨 -> ν•¨μˆ˜ λ‚΄λΆ€λ‘œ μ§„μž…ν•¨. 

- λ§€κ°œλ³€μˆ˜, 지역 λ³€μˆ˜ μ„ μ–Έλ¬Έ 등이 μ‹€ν–‰λ˜λ©΄μ„œ μŠ€μ½”ν”„μ— 등둝됨. 

 

4. ν•¨μˆ˜ μ½”νŠΈ μ‹€ν–‰

- ν•¨μˆ˜ λŸ°νƒ€μž„ μ‹œμž‘. 

- ν•¨μˆ˜ μ½”λ“œ 싀행이 μ’…λ£Œλ˜λ©΄ ν•¨μˆ˜ 호좜 μ΄μ „μœΌλ‘œ λŒμ•„κ°€ μ „μ—­ μ½”λ“œ 싀행을 계속함. 

- ν•¨μˆ˜ 호좜이 μ’…λ£Œλ˜λ©΄ -> ν•¨μˆ˜ 호좜 μ΄μ „μœΌλ‘œ λŒμ•„κ°€κΈ° μœ„ν•΄

-> ν˜„μž¬ 싀행쀑인 μ½”λ“œ VS 이전 μ‹€ν–‰ μ½”λ“œ κ΅¬λΆ„ν•˜μ—¬ 관리해야함. 

- 이 λͺ¨λ“  것을 κ΄€λ¦¬ν•˜λŠ”κ²Œ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈμž„. 

 

μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ

: μ†ŒμŠ€μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λŠ” 데 ν•„μš”ν•œ ν™˜κ²½μ„ μ œκ³΅ν•˜κ³  μ½”λ“œμ˜ μ‹€ν–‰ κ²°κ³Όλ₯Ό μ‹€μ œλ‘œ κ΄€λ¦¬ν•˜λŠ” μ˜μ—­. 

- λͺ¨λ“  μ½”λ“œλŠ” μ‹€ν–‰ μ»¨ν…μŠ€νŠΈλ₯Ό 톡해 μ‹€ν–‰λ˜κ³  관리됨. 

 

 

 

πŸ₯½ 23.4 μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ μŠ€νƒ

 

μ‹€ν–‰ μ»¨ν…μŠ€νŠΈλŠ” μŠ€νƒ 자료ꡬ쑰둜 관리됨. 

μ½”λ“œκ°€ μ‹€ν–‰ν•˜λŠ” μ‹œκ°„μ˜ 흐름에 따라, μ‹€ν–‰ μ»¨ν…μŠ€νŠΈκ°€ μΆ”κ°€λ˜κ³  제거됨. 

=> μ½”λ“œμ˜ μ‹€ν–‰ μˆœμ„œλ₯Ό 관리함. 

μ•„λž˜λΆ€ν„° μŒ“μ΄κΈ° λ•Œλ¬Έμ—, μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ μŠ€νƒμ˜ μ΅œμƒμœ„μ—λŠ” μ–Έμ œλ‚˜ ν˜„μž¬ μ‹€ν–‰ 쀑인 μ½”λ“œμ˜ μ‹€ν–‰ μ»¨ν…μŠ€νŠΈμž„. 

 

 

 

πŸ₯½ 23.5 λ ‰μ‹œμ»¬ ν™˜κ²½

 

: μ‹λ³„μžμ™€ μ‹λ³„μžμ— λ°”μΈλ”©λœ κ°’, μƒμœ„ μŠ€μ½”ν”„ μ°Έμ‘°λ₯Ό κΈ°λ‘ν•˜λŠ” 자료ꡬ쑰

: μ‹€ν–‰ μ»¨ν…μŠ€νŠΈλ₯Ό κ΅¬μ„±ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈμž„. 

 

- μŠ€μ½”ν”„λ₯Ό κ΅¬λΆ„ν•˜μ—¬ μ‹λ³„μžλ₯Ό λ“±λ‘ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” μ €μž₯μ†Œ 역할을 ν•˜λŠ” λ ‰μ‹œμ»¬ μŠ€μ½”ν”„μ˜ 싀체라고 ν•  수 있음. 

 

 

 

 

πŸ₯½ 23.6 μ‹€ν–‰ μ»¨ν…μŠ€νŠΈμ˜ 생성과 μ‹λ³„μž 검색 κ³Όμ •

 

μœ„ λ‚΄μš©κ³Ό 쀑볡

 

 

πŸ₯½ 23.7 μ‹€ν–‰ μ»¨ν…μŠ€νŠΈμ™€ 블둝 레벨 μŠ€μ½”ν”„

 

var 둜 μ„ μ–Έν•œ λ³€μˆ˜ => μ˜€λ‘œμ§€ ν•¨μˆ˜μ˜ μ½”λ“œ λΈ”λ‘λ§Œ 지역 μŠ€μ½”ν”„λ‘œ 인정. 

let, const 둜 μ„ μ–Έν•œ λ³€μˆ˜ => λͺ¨λ“  μ½”λ“œ 블둝을 지역 μŠ€μ½”ν”„λ‘œ μΈμ •ν•˜λŠ” '블둝 레벨 μŠ€μ½”ν”„' λ₯Ό 따름

 

 

 

728x90
λ°˜μ‘ν˜•