μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- position
- REACT
- Gatsby
- useRef
- λΈλ‘κ·Έ
- history api
- useEffect
- μκ³ λ¦¬μ¦
- CSS
- fetch API
- νλ‘κ·Έλλ¨Έμ€
- Props
- μλ°μ€ν¬λ¦½νΈ
- λ°λΈμ½μ€
- float
- λ°λΈμ½μ€3κΈ°
- νλ‘ νΈμλ
- μ½λ©ν μ€νΈ
- Flex
- Today
- Total
Daehyunii's Dev-blog
23μ₯ μ€ν 컨ν μ€νΈ λ³Έλ¬Έ
23μ₯ μ€ν 컨ν μ€νΈ
Daehyunii 2022. 7. 20. 22:04μ€ν 컨ν μ€νΈλ μλ°μ€ν¬λ¦½νΈμ λμ μ리λ₯Ό λ΄κ³ μλ ν΅μ¬ κ°λ μ΄λ€. μ΄ κ°λ μ λͺ ννκ² μ΄ν΄νλ©΄ μλ°μ€ν¬λ¦½νΈκ° μ€μ½ν κΈ°λ°μΌλ‘ μλ³μμ μλ³μμ λ°μΈλ©λ κ°μ κ΄λ¦¬νλ λ°©μκ³Ό νΈμ΄μ€ν μ΄ λ°μνλ μ΄μ , ν΄λ‘μ μ λμ λ°©μλ±μ μ΄ν΄ν μ μλ€.
23.1 μμ€μ½λμ νμ
μ°μ μ€ν 컨ν μ€νΈλ₯Ό μ΄ν΄νκΈ° μν΄μλ μμ€μ½λμ νμ μ μ νμκ° μλ€. ECMAscirpt μ¬μμ μμ€μ½λ μ¦, μ€ν κ°λ₯ν μ½λλ₯Ό 4κ°μ§ νμ μΌλ‘ ꡬλΆνλ€. 4κ°μ§ νμ μ μμ€μ½λλ μ€ν 컨ν μ€νΈλ₯Ό κ°κ° μμ±νλ€.
μμ€μ½λμ νμ | μ€λͺ |
μ μ μ½λ | μ μμ μ‘΄μ¬νλ μμ€μ½λ (μ μμ ν¨μ, ν΄λμ λ±μ λ΄λΆ μ½λλ μ μΈ) |
ν¨μ μ½λ | ν¨μ λ΄λΆμ μ‘΄μ¬νλ μμ€μ½λ (μ€μ²©ν¨μ,ν΄λμ€ λ±μ λ΄λΆ μ½λλ μ μΈ) |
eval μ½λ | λΉνΈμΈ μ μ ν¨μ eval ν¨μμ μΈμ μ λ¬λ‘ μ€νλλ μμ€μ½λ |
λͺ¨λ μ½λ | λͺ¨λ λ΄λΆμ μ‘΄μ¬νλ μμ€μ½λ (λͺ¨λ λ΄ ν¨μ, ν΄λμ€ λ±μ λ΄λΆ μ½λλ μ μΈ) |
μμ€μ½λλ₯Ό 4κ°μ§ νμ μΌλ‘ ꡬλΆνλ μ΄μ λ μμ€μ½λμ νμ μ λ°λΌ μ€ν 컨ν μ€νΈλ₯Ό μμ±νλ κ³Όμ κ³Ό κ΄λ¦¬ λ΄μ©μ΄ λ€λ₯΄κΈ° λλ¬Έμ΄λ€.
1. μ μ μ½λ
μ μ μ½λλ μ μ λ³μλ₯Ό κ΄λ¦¬νκΈ° μν΄ μ΅μμ μ€μ½νμΈ μ μ μ€μ½νλ₯Ό μμ±ν΄μΌ νλνλ€. κ·Έλ¦¬κ³ var ν€μλλ‘ μ μΈλ μ μ λ³μμ ν¨μ μ μΈλ¬ΈμΌλ‘ μ μλ μ μ ν¨μλ₯Ό μ μ κ°μ²΄μ νλ‘νΌν°μ λ©μλλ‘ λ°μΈλ©νκ³ μ°Έμ‘°νκΈ° μν΄ μ μ κ°μ²΄μ μ°κ²°λμ΄μΌ νλ€. μ΄λ₯Ό μν΄ μ μ μ½λκ° νκ°λλ©΄ μ μ μ€ν 컨ν μ€νΈκ° μμ±λλ€.
2. ν¨μ μ½λ
ν¨μ μ½λλ μ§μ μ€μ½νλ₯Ό μμ±νκ³ μ§μ λ³μ, 맀κ°λ³μ, arguments κ°μ²΄λ₯Ό κ΄λ¦¬ν΄μΌ νλ€.(callee,length,symbol,μΈμλ€) κ·Έλ¦¬κ³ μμ±ν μ§μ μ€μ½νλ₯Ό μ μ μ€μ½νμμ μμνλ μ€μ½ν 체μΈμ μΌμμΌλ‘ μ°κ²°ν΄μΌ νλ€. μ΄λ₯Ό μν΄ ν¨μ μ½λκ° νκ°λλ©΄ ν¨μ μ€ν 컨ν μ€νΈκ° μμ±λλ€.
3. eval μ½λ
eval μ½λλ strict modeμμ μμ λ§μ λ μμ μΈ μ€μ½νλ₯Ό μμ±νλ€. μ΄λ₯Ό μν΄ eval μ½λκ° νκ°λλ©΄ eval μ€ν 컨ν μ€νΈκ° μμ±λλ€.(μ μ¬μ©νμ§ μμ)
4. λͺ¨λ μ½λ
λͺ¨λ μ½λλ λͺ¨λλ³λ‘ λ 립μ μΈ λͺ¨λ μ€μ½νλ₯Ό μμ±νλ€. μ΄λ₯Ό μν΄ λͺ¨λ μ½λκ° νκ°λλ©΄ λͺ¨λ μ€ν 컨ν μ€νΈκ° μμ±λλ€.
23.2 μμ€μ½λμ νκ°μ μ€ν
λͺ¨λ μμ€μ½λλ μ€νμ μμ νκ° κ³Όμ μ κ±°μΉλ©° μ½λλ₯Ό μ€ννκΈ° μν μ€λΉλ₯Ό νλ€. λ€μ λ§ν΄, μλ°μ€ν¬λ¦½νΈ μμ§μ μμ€μ½λλ₯Ό 2κ°μ κ³Όμ , μ¦ 'μμ€μ½λμ νκ°'μ 'μμ€μ½λμ μ€ν'κ³Όμ μΌλ‘ λλμ΄ μ²λ¦¬νλ€. μμ€μ½λ νκ° κ³Όμ μμλ μ€ν 컨ν μ€νΈλ₯Ό μμ±νκ³ λ³μ, ν¨μ λ±μ μ μΈλ¬Έλ§ λ¨Όμ μ€ννμ¬ μμ±λ λ³μλ ν¨μ μλ³μλ₯Ό ν€λ‘ μ€ν 컨ν μ€νΈκ° κ΄λ¦¬νλ 'λ μ컬 νκ²½μ νκ²½ λ μ½λ' 곡κ°μ λ±λ‘νλ€. μμ€μ½λ νκ° κ³Όμ μ΄ λλλ©΄ λΉλ‘μ μ μΈλ¬Έμ μ μΈν μμ€μ½λκ° μμ°¨μ μΌλ‘ μ€νλκΈ° μμνλ€.(λ°νμ) μ΄ λ μμ€μ½λ μ€νμ νμν μ 보λ μ€ν 컨ν μ€νΈκ° κ΄λ¦¬νλ λ μ컬 νκ²½μμ κ²μν΄μ μ·¨λνλ€. κ·Έλ¦¬κ³ λ³μ κ°μ λ³κ²½ λ± μμ€μ½λμ μ€ν κ²°κ³Όλ λ€μ μ€ν 컨ν μ€νΈκ° κ΄λ¦¬νλ λ μ컬 νκ²½μ λ±λ‘λλ€.
λ°©κΈ μ€λͺ ν κ³Όμ μ΄ λλ΅μ μΈ μ€ν 컨ν μ€νΈμ λμ κ³Όμ μ΄λΌκ³ 보면 λ κ² κ°λ€. μ°μ μ€ν 컨ν μ€νΈλ₯Ό λ§λ‘ μ΄ν΄νλ κ² λ³΄λ€λ μ΄λ»κ² νλ¦μ μ΄μ΄κ°λμ§ κ·Έλ¦Όμ ν΅ν΄ 곡λΆνλ©΄ μ’κ² λ€. νμλ ν΄λΉ λ΄μ©μ κΈλ‘ μ 리νλλ° λ¬΄λ¦¬κ° μμ κ² κ°μ μ 체μ μΈ νλ¦μ λν΄μλ§ κΈλ‘ μ 리νκ³ νλ€.
<μ μ μ½λμ νκ°μ μμ±λλ κ²>
1. μ μ μ€ν 컨ν μ€νΈ μμ±
2. μ μ λ μ컬 νκ²½ μμ± : μ μ μ€ν 컨ν μ€νΈκ° κ΄λ¦¬νλ νκ²½(μ μ μ€ν 컨ν μ€νΈμ μ°κ²°λμ΄ μμ§λ§, λ³κ°μ λ 립μ κ°μ²΄μ)
2.1 μ μ νκ²½ λ μ½λ μμ± : μ μ λ μ컬 νκ²½λ΄μ μλ³μλ€μ λν μ 보λ₯Ό λ΄κ³ μλ 곡κ°
2.1.1 κ°μ²΄ νκ²½ λ μ½λ μμ± : μ μ κ°μ²΄μ μ°κ²°λμ΄ μμΌλ©°, var ν€μλλ‘ μ μΈν μ μ λ³μ, ν¨μ μ μΈλ¬ΈμΌλ‘ μ μΈλ μ μ ν¨μ, μ묡μ μ μμ λν μ λ³΄κ° λ€μ΄κ° μμ
2.1.2 μ μΈμ νκ²½ λ μ½λ μμ± : letκ³Ό constν€μλλ‘ μ μΈν μ μ λ³μλ€μ λν μ 보(letκ³Ό const ν€μλλ‘ μ μΈν λ³μμ ν λΉν ν¨μ ννμ ν¬ν¨)
2.2 this λ°μΈλ© : μΌλ°μ μΌλ‘ μ μ μ½λμμμ thisλ μ μ κ°μ²΄λ₯Ό κ°λ¦¬ν€λ―λ‘ μ μ κ°μ²΄κ° λ°μΈλ© λλ€.
2.3 μΈλΆ λ μ컬 νκ²½μ λν μ°Έμ‘° κ²°μ : κ°λ¨νκ² μμ μ€μ½νλ₯Ό κ°λ¦¬ν€κ³ μλ€.(μ μ μ½λμ μμ μ€μ½νλ μμΌλ―λ‘ nullκ°μ΄ λ€μ΄μμ)
μ μ μ½λ νκ°μ, μμ±λλ κ²λ€μ΄λ©° μ μ μ€ν 컨ν μ€νΈμ μν΄ κ΄λ¦¬λκ³ μλ€. νκ°κ° μ΄λ€μ§λ©΄, κ·Έ λ€μ μ μ μ½λμ λν μ€νμ΄ μ΄λ€μ§λ€. μ μ μ½λμ μ€ν λμ€ ν¨μνΈμΆμ λ§λλ©΄, μ μ μ½λ μ€νμ΄ μΌμ μ€λ¨ λκ³ νΈμΆλ ν¨μμ λ΄λΆ μ½λμ νκ°κ° μμλλ€.
<ν¨μ μ½λμ νκ°μ μμ±λλ κ²>
1. ν¨μ μ€ν 컨ν μ€νΈ μμ±
2. ν¨μ λ μ컬 νκ²½ μμ± : ν¨μ μ€ν 컨ν μ€νΈκ° κ΄λ¦¬νλ νκ²½(ν¨μ μ€ν 컨ν μ€νΈμ μ°κ²°λμ΄ μμ§λ§, λ³κ°μ λ 립μ κ°μ²΄μ)
2.1 μ μ νκ²½ λ μ½λ μμ± : ν¨μ λ μ컬 νκ²½λ΄μ ν¨μμ λν μ 보λ₯Ό λ΄κ³ μλ 곡κ°
2.2 this λ°μΈλ© : μΌλ°μ μΌλ‘ μ μ μ½λμμμ thisλ μ μ κ°μ²΄λ₯Ό κ°λ¦¬ν€λ―λ‘ μ μ κ°μ²΄κ° λ°μΈλ© λλ€.
2.3 μΈλΆ λ μ컬 νκ²½μ λν μ°Έμ‘° κ²°μ : ν΄λΉ ν¨μκ° μ μλκ³ νκ°λλ μμ μ μ€νλκ³ μλ μ€ν 컨ν μ€νΈμ λ μ컬 νκ²½μ κ°λ¦¬ν΄, ν΄λΉ ν¨μκ° μ μλκ³ νκ°λλ©΄ μμ±λ ν¨μ κ°μ²΄μ [[Environment]]μ μμ μ€μ½ν λ μ컬 νκ²½μ΄ μ μ₯λμ΄ μλλ°, [[Environment]]μ κ°μ΄ μ¦ μμ μ€μ½νλ₯Ό κ°λ¦¬ν€λ κ°μ
ν¨μ μ½λ νκ°μ, μμ±λλ κ²λ€μ΄λ©° ν¨μ μ€ν 컨ν μ€νΈμ μν΄ κ΄λ¦¬λκ³ μλ€.
<μ€ν 컨ν μ€νΈμ λμ μμ>
//μ μ λ³μ μ μΈ
const x = 1;
const y = 2;
//μ μ ν¨μ μ μ
function foo(a){
// μ§μ λ³μ μ μΈ
const x = 10;
const y = 20;
// λ©μλ νΈμΆ
console.log(a + x + y); // 130
}
foo(100);
console.log(x + y) // 3
<1. μ μ κ°μ²΄ μμ±>
<2. μ μ μ½λ νκ°
2.1 μ μ μ€ν 컨ν μ€νΈ μμ±
2.2 μ μ λ μ컬 νκ²½ μμ±
2.2.1 μ μ νκ²½ λ μ½λ μμ±
2.2.1.1 κ°μ²΄ νκ²½ λ μ½λ μμ±
2.2.1.2 μ μΈμ νκ²½ λ μ½λ μμ±
2.2.2 this λ°μΈλ©
2.2.3 μΈλΆ λ μ컬 νκ²½μ λν μ°Έμ‘° κ²°μ
3. μ μ μ½λ μ€ν>
<4. foo ν¨μ μ½λ νκ°
4.1 ν¨μ μ€ν 컨ν μ€νΈ μμ±
4.2 ν¨μ λ μ컬 νκ²½ μμ±
4.2.1 ν¨μ νκ²½ λ μ½λ μμ±
4.3 this λ°μΈλ©
4.4 μΈλΆ λ μ컬 νκ²½μ λν μ°Έμ‘° κ²°μ
5. foo ν¨μ μ½λ μ€ν>
<6. bar ν¨μ μ½λ νκ°(fooν¨μμ λμκ³Ό λμΌ)
7. bar ν¨μ μ½λ μ€ν
7.1 console μλ³μ κ²μ
7.2 logλ©μλ κ²μ
7.3 console.log λ©μλμ ννμ νκ°
7.4 console.log λ©μλ νΈμΆ>
<8. bar ν¨μ μ½λ μ€ν μ’ λ£
9. foo ν¨μ μ½λ μ€ν μ’ λ£
10. μ μ μ½λ μ€ν μ’ λ£>
μμ μμλλ‘ μλ° μ€ν¬λ¦½νΈ μμ§μ΄ λμμ νκ² λλ€. μ¬μ€ μ΄λ κ² κ°λ¨ν μμλ€λ§ κ°μ§κ³ λ μ νν λ΄λΆ κ°λ μ μ΄ν΄νκΈ°λ λΆκ°λ₯νλ€κ³ μκ°μ΄ λ λ€. μ λΆλΆμ λν΄μλ μ± μ ν΅ν΄ κΉκ² μ΄ν΄νκΈΈ λ°λλ€.
23.4 μ€ν 컨ν μ€νΈ μ€ν
μμ μ½λλ₯Ό 보면 μμ€μ½λμ νμ μΌλ‘ λΆλ₯ν λ μ μ μ½λμ ν¨μ μ½λλ‘ μ΄λ£¨μ΄μ Έ μλ€. μλ°μ€ν¬λ¦½νΈ μμ§μ λ¨Όμ μ μ μ½λλ₯Ό νκ°νμ¬ μ μ μ€ν 컨ν μ€νΈλ₯Ό μμ±νλ€. κ·Έλ¦¬κ³ ν¨μκ° νΈμΆλλ©΄ ν¨μ μ½λλ₯Ό νκ°νμ¬ ν¨μ μ€ν 컨ν μ€λ₯Ό μμ±νλ€. μ΄λ μμ±λ μ€ν 컨ν μ€νΈλ μ€ν μλ£κ΅¬μ‘°λ‘ κ΄λ¦¬λλ€. μ΄λ₯Ό μ€ν 컨ν μ€νΈ μ€νμ΄λΌκ³ λΆλ₯Έλ€. κ°λ¨νκ² μ€λͺ νλ©΄, μλ°μ€ν¬λ¦½νΈκ° νκ°λκ³ μ€νλλ©΄μ μ¬λ¬ κ°μ μ€ν 컨ν μ€νΈκ° λ§λ€μ΄ μ§κ² λλλ°, μλ₯Όλ€μ΄ μ μ μ€ν 컨ν μ€νΈκ° μ€νλκ³ μλ λμ€μ ν¨μ νΈμΆ μ½λλ₯Ό λ§λλ©΄ ν¨μμ λ΄λΆ μ½λκ° νκ°λκΈ° μμνκ³ ν¨μ μ€ν 컨ν μ€νΈκ° μκΈ°κ² λλ€. μ΄μ λΆν°λ ν¨μ μ½λκ° μ€νλκ² λκ³ ν¨μ μ½λκ° μ’ λ£λλ©΄ ν¨μ μ€ν 컨ν μ€νΈλ μ κ±°λκ³ , λ€μ μ μ μ½λλ‘ μ΄λνκ² λλ€. μ¦, μ€ν 컨ν μ€νΈ μ€ν μ μ½λμ μ€ν μμλ₯Ό κ΄λ¦¬νλ€. μ μ½λμ μ€ν 컨ν μ€νΈ μ€νμ κ·Έλ €λ³΄λ©΄ λ€μκ³Ό κ°λ€.
bar ν¨μ μ€ν 컨ν μ€νΈ |
||||||
μκ°μ νλ¦ λ°©ν₯ | > | foo ν¨μ μ€ν 컨ν μ€νΈ |
foo ν¨μ μ€ν 컨ν μ€νΈ |
foo ν¨μ μ€ν 컨ν μ€νΈ |
> | > |
μ μ μ€ν 컨ν μ€νΈ |
μ μ μ€ν 컨ν μ€νΈ |
μ μ μ€ν 컨ν μ€νΈ |
μ μ μ€ν 컨ν μ€νΈ |
μ μ μ€ν 컨ν μ€νΈ |
μ€ν 컨ν μ€νΈ μ€νμ μ΅μμμ μ‘΄μ¬νλ μ€ν 컨ν μ€νΈλ μΈμ λ νμ¬ μ€ν μ€μΈ μ½λμ μ€ν 컨ν μ€νΈλ€. λ°λΌμ μ€ν 컨ν μ€νΈ μ€νμ μ΅μμμ μ‘΄μ¬νλ μ€ν 컨ν μ€νΈλ₯Ό μ€ν μ€μΈ μ€ν 컨ν μ€νΈλΌ λΆλ₯Έλ€.
'π Language & CS knowledge > JavaScript (λͺ¨λμλ°μ€ν¬λ¦½νΈ Deep Dive)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
25μ₯ ν΄λμ€ (0) | 2022.07.26 |
---|---|
24μ₯ ν΄λ‘μ (0) | 2022.07.22 |
22μ₯ this (0) | 2022.07.19 |
21μ₯ λΉνΈμΈ κ°μ²΄ (0) | 2022.07.18 |
20μ₯ strict mode (0) | 2022.07.16 |