[ES6+] πŸ“ λ³€μˆ˜μ™€ μƒμˆ˜

Mec.D's BlogΒ·2022λ…„ 5μ›” 30일
0

JS ES6+ 비곡식 λ…ΈνŠΈ

λͺ©λ‘ 보기
3/17
post-thumbnail

πŸ’‘ λ³€μˆ˜ (Variable)

값을 μ €μž₯ν•  수 있으며 κ°’ ν• λ‹Ή ν›„ 변경이 κ°€λŠ₯ν•œ 이름이 뢙은 λ©”λͺ¨λ¦¬ 곡간

πŸ’‘ μƒμˆ˜ (Constant)

값을 μ €μž₯ν•  수 있으며 μ΄ˆκΈ°κ°’ ν• λ‹Ή ν›„ 변경이 λΆˆκ°€λŠ₯ν•œ 이름이 뢙은 λ©”λͺ¨λ¦¬ 곡간

letΒ  constΒ  var


ꡬ성

λ³€μˆ˜, μƒμˆ˜μ˜ ꡬ성

  1. ν‚€μ›Œλ“œ (Keyword)
  2. μ‹λ³„μž (Identifier)
  3. μžλ£Œν˜• (Data Type)

비ꡐ

letconstvar
μ΄ˆκΈ°ν™”uninitializeduninitializedundefined
μŠ€μ½”ν”„λΈ”λ‘ μŠ€μ½”ν”„λΈ”λ‘ μŠ€μ½”ν”„ν•¨μˆ˜ μŠ€μ½”ν”„
쀑볡 μ„ μ–Έ ν—ˆμš©βŒβŒβœ…
TDZβœ…βœ…βŒ
ν˜Έμ΄μŠ€νŒ…βœ…βœ…βœ…
κ°’ λ³€κ²½βœ…βŒβœ…
단계선언, μ΄ˆκΈ°ν™”, ν• λ‹Ή
이 λ”°λ‘œ 일어남
μ„ μ–Έ + μ΄ˆκΈ°ν™” + ν• λ‹Ή
이 λ™μ‹œμ— 일어남
μ„ μ–Έ + μ΄ˆκΈ°ν™”
κ°€ λ™μ‹œμ— 일어남

πŸ‘‰ 블둝 μŠ€μ½”ν”„λž€?

μ€‘κ΄„ν˜Έ ( { } ) 둜 감싼 λ²”μœ„ (if, for, which λ“±)

보좩 자료 | var μŠ€μ½”ν”„ μ œν•œ 기법

πŸ’‘ μ¦‰μ‹œ μ‹€ν–‰ ν•¨μˆ˜ (IIFE; Immediately Invoked Function Expression)

읡λͺ… ν•¨μˆ˜λ₯Ό μ •μ˜ν•˜λŠ” λ™μ‹œμ— μ‹€ν–‰μ‹œν‚€λŠ” κΈ°λ²•μž…λ‹ˆλ‹€.


μ˜ˆμ‹œ

// 3가지 방법 λͺ¨λ‘ λ™μΌν•˜κ²Œ λ™μž‘ν•©λ‹ˆλ‹€.

(function() {
    console.log("μ¦‰μ‹œ μ‹€ν–‰");
})();

!function() {
    console.log("μ¦‰μ‹œ μ‹€ν–‰");
}();

+function() {
    console.log("μ¦‰μ‹œ μ‹€ν–‰");
}();

μš©λ„

  1. μŠ€μ½”ν”„ μ œν•œ
    β†’ var의 ν˜Έμ΄μŠ€νŒ…μ„ λ°©μ§€ν•˜κΈ° μœ„ν•΄ IIFE둜 감싸 μ‚¬μš©ν•˜κ³€ ν–ˆμŠ΅λ‹ˆλ‹€.
  2. 전역곡간 μ˜€μ—Ό 방지

νŠΉμ§•

  1. ES6 이전 λ²„μ „μ—μ„œ 많이 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.
  2. ES6+μ—μ„œλŠ” let, const 문법 λ“±μœΌλ‘œ μ™„μ „νžˆ λŒ€μ²΄λμŠ΅λ‹ˆλ‹€.

μ‚¬μš© μ‹œ 주의 사항

🚨 μ•žμ— μ„Έλ―Έμ½œλ‘ μ΄ μ—†μœΌλ©΄ μ„Έλ―Έμ½œλ‘  μžλ™ μ‚½μž… (ASI) 이 λ˜μ§€ μ•Šμ•„ 잘λͺ» μž‘λ™ν•  μœ„ν—˜μ΄ μžˆμŠ΅λ‹ˆλ‹€.
(이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ κ΄„ν˜Έλ‘œ κ°μ‹ΈλŠ” λŒ€μ‹  맨 μ•žμ— !, + λ₯Ό 뢙여쓰기도 ν•©λ‹ˆλ‹€.)

profile
기술둜 더 λ‚˜μ€ 미래λ₯Ό λ””μžμΈν•˜λŠ” 개발자 MEC:D μž…λ‹ˆλ‹€

0개의 λŒ“κΈ€