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

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

[λͺ¨λ”₯λ‹€] 13μž₯ μŠ€μ½”ν”„

728x90

13.1 μŠ€μ½”ν”„λž€?

μŠ€μ½”ν”„ : μ‹λ³„μžκ°€ μœ νš¨ν•œ λ²”μœ„

var ν‚€μ›Œλ“œ / const, let ν‚€μ›Œλ“œλŠ” λ‹€λ₯΄κ²Œ λ™μž‘ν•¨.

 

πŸ“Œ λͺ¨λ“  μ‹λ³„μžλŠ” μžμ‹ μ΄ μ„€μ–Έλœ μœ„μΉ˜μ— μ˜ν•΄ μŠ€μ½”ν”„κ°€ κ²°μ •λœλ‹€.

 

μ‹λ³„μž κ²°μ • : JS 엔진이 μŠ€μ½”ν”„λ₯Ό 톡해 μ–΄λ–€ λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•  것인지 κ²°μ •ν•˜λŠ” 것. 

=> μŠ€μ½”ν”„λŠ” JS 엔진이 μ‹λ³„μžλ₯Ό 검색할 λ•Œ μ‚¬μš©ν•˜λŠ” κ·œμΉ™μ΄κΈ°λ„ 함. 

 

πŸ“Œ λ ‰μ‹œμ»¬ ν™˜κ²½ : μ½”λ“œκ°€ μ–΄λ””μ„œ μ‹€ν–‰λ˜λ©°, 주변에 μ–΄λ–€ μ½”λ“œκ°€ μžˆλŠ”μ§€λ₯Ό 의미

-> μ½”λ“œμ˜ λ¬Έλ§₯은 λ ‰μ‹œμ»¬ ν™˜κ²½μœΌλ‘œ 이뀄짐. 

-> 이걸 κ΅¬ν˜„ν•œ 것 : μ‹€ν–‰ μ»¨ν…μŠ€νŠΈ

 

μŠ€μ½”ν”„ λ‚΄μ—μ„œ μ‹λ³„μžλŠ” μœ μΌν•΄μ•Όν•˜μ§€λ§Œ, 

λ‹€λ₯Έ μŠ€μ½”ν”„μ—μ„œλŠ” λ™μΌν•œ μ΄λ¦„μ˜ μ‹λ³„μžλ₯Ό μ‚¬μš©ν•  수 있음.

 

πŸ“Œ var ν‚€μ›Œλ“œ μ‚¬μš©ν•œ λ³€μˆ˜ : 같은 μŠ€μ½”ν”„ λ‚΄μ—μ„œ 쀑볡 선언이 κ°€λŠ₯

=> μ˜λ„μΉ˜ μ•Šκ²Œ λ³€μˆ˜κ°’μ΄ μž¬ν• λ‹Ή & λ³€κ²½λ˜λŠ” λΆ€μž‘μš©

πŸ“Œ let, const ν‚€μ›Œλ“œ μ‚¬μš©ν•œ λ³€μˆ˜ : 같은 μŠ€μ½”ν”„ λ‚΄μ—μ„œ 쀑볡 선언을 ν—ˆμš© ❌

 

 

13.2 μŠ€μ½”ν”„μ˜ μ’…λ₯˜

μ „μ—­ - μ½”λ“œ κ°€μž₯ λ°”κΉ₯ μ˜μ—­, 전체 μ½”λ“œμ—μ„œ μ‚¬μš© κ°€λŠ₯

지역 - ν•¨μˆ˜ λͺΈμ²΄ λ‚΄λΆ€

 

13.2.1 μ „μ—­κ³Ό μ „μ—­ μŠ€μ½”ν”„

μ „μ—­ λ³€μˆ˜λŠ” μ–΄λ””μ„œλ“ μ§€ μ°Έμ‘°ν•  수 μžˆλ‹€.

 

13.2.2 지역과 지역 μŠ€μ½”ν”„

지역 - ν•¨μˆ˜ λͺΈμ²΄ λ‚΄λΆ€λ₯Ό 의미

지역 λ³€μˆ˜λŠ” μžμ‹ μ˜ 지역 μŠ€μ½”ν”„μ™€ ν•˜μœ„ μŠ€μ½”ν”„μ—μ„œ μœ νš¨ν•¨.

 

 

13.3 μŠ€μ½”ν”„ 체인

지역 μŠ€μ½”ν”„λ„ 쀑첩될 수 있음

-> μŠ€μ½”ν”„κ°€ ν•¨μˆ˜μ˜ 쀑첩에 μ˜ν•΄μ„œ 계측적 ꡬ쑰λ₯Ό κ°–λŠ”λ‹€λŠ” 것을 의미.

 

μŠ€μ½”ν”„ 체인 : μŠ€μ½”ν”„κ°€ ν•˜λ‚˜μ˜ 계측적 ꡬ쑰둜 μ—°κ²°λœ 것. 

 

λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•  λ•Œ -> JS 엔진은 μŠ€μ½”ν”„ 체인을 톡해 점점 μƒμœ„λ‘œ μ΄λ™ν•˜λ©° 검색함. 

 

13.3.1 μŠ€μ½”ν”„ 체인에 μ˜ν•œ λ³€μˆ˜ 검색

μƒμœ„ μŠ€μ½”ν”„μ—μ„œ μœ νš¨ν•œ λ³€μˆ˜λŠ” ν•˜μœ„ μŠ€μ½”ν”„μ—μ„œ 자유둭게 μ°Έμ‘°ν•  수 μžˆμ§€λ§Œ, 

ν•˜μœ„ μŠ€μ½”ν”„μ—μ„œ μœ μš”ν•œ λ³€μˆ˜λ₯Ό μƒμœ„ μŠ€μ½”ν”„μ—μ„œ μ°Έμ‘°ν•  수 μ—†λ‹€.

 

13.3.2 μŠ€μ½”ν”„ 체인에 μ˜ν•œ ν•¨μˆ˜ 검색

 

 

13.4 ν•¨μˆ˜ 레벨 μŠ€μ½”ν”„

지역 -ν•¨μˆ˜ λͺΈμ²΄λ₯Ό 의미 => 지역 μŠ€μ½”ν”„λŠ” μ½”λ“œλΈ”λ‘μ΄ μ•„λ‹Œ ν•¨μˆ˜μ— μ˜ν•΄ 생성됨.

 

λŒ€λΆ€λΆ„μ˜ λ‹€λ₯Έ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λŠ” λͺ¨λ“  μ½”λ“œλΈ”λ‘μ΄ 지역 μŠ€μ½”ν”„λ₯Ό λ§Œλ“¦ (블둝 레벨 μŠ€μ½”ν”„)

ν•˜μ§€λ§Œ JSμ—μ„œμ˜ μ˜ˆμ™Έ :: var ν‚€μ›Œλ“œλ‘œ μ„ μ–Έλœ λ³€μˆ˜ =>  ν•¨μˆ˜μ˜ μ½”λ“œ 블둝을 지역 μŠ€μ½”ν”„λ‘œ 인정함. (ν•¨μˆ˜ 레벨 μŠ€μ½”ν”„)

 

13.5 λ ‰μ‹œμ»¬ μŠ€μ½”ν”„

JS λŠ” λ ‰μ‹œμ»¬ μŠ€μ½”ν”„λ₯Ό 따름

-> ν•¨μˆ˜λ₯Ό μ–΄λ””μ„œ ν˜ΈμΆœν–ˆλŠ”μ§€κ°€ μ•„λ‹ˆλΌ

ν•¨μˆ˜λ₯Ό μ–΄λ””μ„œ μ •μ˜ν–ˆλŠ”μ§€μ— 따라 μƒμœ„ μŠ€μ½”ν”„λ₯Ό 결정함. 

 

ν•¨μˆ˜κ°€ 호좜된 μœ„μΉ˜λŠ” μƒμœ„ μŠ€μ½”ν”„μ— μ „ν˜€ 영ν–₯을 주지 μ•ŠμŒ.

 

ν•¨μˆ˜μ˜ μƒμœ„ μŠ€μ½”ν”„ : ν•¨μˆ˜ μ •μ˜κ°€ 싀행될 λ•Œ μ •μ μœΌλ‘œ 결정됨.

ν•¨μˆ˜ μ •μ˜κ°€ μ‹€ν–‰ -> μ΄λ ‡κ²Œ κ²°μ •λœ μƒμœ„ μŠ€μ½”ν”„λ₯Ό 기얡함.

 

728x90
λ°˜μ‘ν˜•