(μμ 23.4.25)
π4.1 λ³μλ 무μμΈκ°? μ νμνκ°?
μ°μ° μ λ°μ κ°μ μ¬μ¬μ©νκΈ° μν΄ λ³μκ° νμνλ€.
μ°μ° νμ κ°μ λ©λͺ¨λ¦¬μ μ μ₯λμ΄ μμ§λ§, JS μμλ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό μ½λκ° μ€νλ λλ§λ€ μμλ‘ μ νλ€.
κ·Έλ κΈ°μ μ½λκ° μ€νλ λλ§λ€ λ©λͺ¨λ¦¬μ μ£Όμλ λ³κ²½λλ€.
μ¦, νλ‘κ·Έλλ° μΈμ΄λ κΈ°μ΅νκ³ μΆμ κ°μ λ©λͺ¨λ¦¬μ μ μ₯νκ³ , κ·Έ μ μ₯λ κ°μ μ¬μ¬μ©νκΈ° μν΄ λ³μλ₯Ό μ¬μ©νλ€.
π λ³μ : νλμ κ°μ μ μ₯νκΈ° μν΄ ν보ν λ©λͺ¨λ¦¬ κ³΅κ° νΉμ κ·Έ λ©λͺ¨λ¦¬ 곡κ°μ μλ³νκΈ° μν΄ λΆμΈ μ΄λ¦
=> κ°λ¨ν λ§ν΄ 'κ°μ μμΉλ₯Ό κ°λ¦¬ν€λ μμ§μ μΈ μ΄λ¦'μ΄λ€.
π ν λΉ(λμ , μ μ₯) : λ³μμ κ°μ μ μ₯νλ κ²
π μ°Έμ‘°: λ³μμ μ μ₯λ κ°μ μ½μ΄λ€μ΄λ κ².
λ³μμ μ μ₯λ κ°μ μλ―Έλ₯Ό νμ ν μ μλ λ³μ μ΄λ¦μ, κ°λ μ±μ λμ΄λ λΆμμ μΈ ν¨κ³Όλ μλ€.
μ½λλ μ»΄ν¨ν°μκ² λ΄λ¦¬λ λͺ λ Ήμ΄μ§λ§, κ°λ°μλ₯Ό μν λ¬Έμμ΄κΈ°λ νλ€.
π 4.2 μλ³μ
π μλ³μ : λ³μ μ΄λ¦. μ΄λ€ κ°μ ꡬλ³ν΄μ μλ³ν μ μλ κ³ μ ν μ΄λ¦
-> μλ³μλ κ°μ΄ μλλΌ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό κΈ°μ΅νκ³ μλ€.
μλ³μλΌλ μ©μ΄λ λ³μ μ΄λ¦μλ§ κ΅νν΄μ μ¬μ©νμ§ μλλ€.
λ³μ, ν¨μ, ν΄λμ€ λ±μ μ΄λ¦μ λͺ¨λ μλ³μμ.
π 4.3 λ³μ μ μΈ
πλ³μ μ μΈ: λ³μλ₯Ό μμ±νλ κ²
== κ°μ μ μ₯νκΈ° μν λ©λͺ¨λ¦¬ κ³΅κ° ν보, λ³μ μ΄λ¦κ³Ό ν보λ λ©λͺ¨λ¦¬ 곡κ°μ μ£Όμλ₯Ό μ°κ²° => κ°μ μ μ₯ν μ μκ² μ€λΉ
λ³μ μ μΈμ μν΄ ν보λ λ©λͺ¨λ¦¬ 곡κ°μ νλ³΄κ° ν΄μ λκΈ° μ κΉμ§λ λꡬλ ν보λ λ©λͺ¨λ¦¬ 곡κ°μ μ¬μ©ν μ μκ² λ³΄νΈλ¨.
λ³μ μ μΈμ var, let, const μ ν€μλλ₯Ό μ¬μ©ν¨.
λ³μμ κ°μ ν λΉνμ§ μμΌλ©΄, undefined λΌλ κ°μ΄ μ묡μ μΌλ‘ ν λΉ & μ΄κΈ°νλ¨.
var μ λ¨μ
- λΈλ‘ λ 벨 μ€μ½ν μ§μ β & ν¨μ λ 벨 μ€μ½νλ₯Ό μ§μ
-> μλμΉ μκ² μ μ λ³μκ° μ μΈλμ΄ μ¬κ°ν λΆμμ©μ΄ λ°μν¨.
=> const μ let μ λ±μ₯
(varκ° μ¬λΌμ§ 건 μλ)
λ©λͺ¨λ¦¬μλ μ μΈνλ λμμ undefinedλΌλ κ°μ΄ μ묡μ μΌλ‘ ν λΉλ¨.
(JSμ λ νΉν νΉμ§μ)
var ν€μλλ₯Ό μ¬μ©νλ©΄ λ³μ μ μΈ & μ΄κΈ°ν λ¨κ³κ° λμμ μ§νλ¨.
λ³μλ₯Ό μ¬μ©νλ €λ©΄ λ°λμ μ μΈμ΄ νμν¨. λ³μ λΏ μλλΌ λͺ¨λ μλ³μ(ν¨μ, ν΄λμ€) λ±λ ν΄λΉ
-> μ μΈμ΄ μλλ©΄ ReferenceError
μ΄κΈ°ν : λ³μκ° μ μΈλ μ΄ν μ΅μ΄λ‘ κ°μ ν λΉνλ κ²
π 4.4 λ³μ μ μΈμ μ€ν μμ κ³Ό λ³μ νΈμ΄μ€ν
λ³μ μ¬μ©μ΄ λ³μ μ μΈ μ΄μ μ μλλΌλ μλ¬κ° λ°μνμ§ μκ³ undefined κ° λμ΄.
=> μλλ©΄ λ³μ μ μΈμ΄ λ°νμμ΄ μλλΌ κ·Έ μ΄μ λ¨κ³μμ λ¨Όμ μ€νλκΈ° λλ¬Έ.
(λ°νμ : μμ€μ½λκ° ν μ€ μ© μμ°¨μ μΌλ‘ μ€νλλ μμ )
JS μμ§μ λ°νμ μ΄μ μ νκ° κ³Όμ μ κ±°μΉ¨.
νκ° κ³Όμ μμ
- λͺ¨λ μ μΈλ¬Έμ μ°Ύμμ λ¨Όμ μ€ν
νκ° κ³Όμ μ΄ λͺ¨λ λλλ©΄ λͺ¨λ μ μΈλ¬Έ μ μΈνκ³ ν μ€μ© μμ°¨μ μΌλ‘ μ€νν¨.
=> λ³μ μ μΈμ΄ μ΄λμ μλ μκ΄μμ΄ λ€λ₯Έ μ½λλ³΄λ€ λ¨Όμ μ€νν¨.
-> λ³μ μ μΈμ μμΉμ μκ΄μμ΄ μ΄λμλ μ§ λ³μλ₯Ό μ°Έμ‘°ν μ μλ€.
μ΄λ κ² λ³μ μ μΈλ¬Έμ΄ μ½λμ μ λλ‘ λμ΄ μ¬λ €μ§ κ² μ²λΌ λμνλ JS κ³ μ μ νΉμ§ =>
Hoisting νΈμ΄μ€ν μ΄λΌκ³ νλ€.
π 4.5 κ°μ ν λΉ
λ³μ μ μΈκ³Ό κ°μ ν λΉμ νλμ λ¬ΈμΌλ‘ ννν μ μμ§λ§,
λ³μ μ μΈκ³Ό κ°μ ν λΉμ μμ μ λ€λ¦. 2κ°μ λ¬ΈμΌλ‘ λλμ΄ κ°κ° μ€ννκΈ° λλ¬Έ.
λ¬Έμ
console.log(score); //un
score = 80;
var score; //un
console.log(score); //??
νμ΄ν΄λ΄.
console.log(score); //un 2λ²μ§Έ μ€ν
score = 80; //3λ²μ§Έ μ€ν. κ°μ΄ λ€μ΄κ°
var score; //un -> μ μΌ λ¨Όμ μ€νλμ΄ undefined ν λΉλ μν
console.log(score); //-> 80 μΆλ ₯λλκ±°μ.
π 4.6 κ°μ μ¬ν λΉ
μ¬ν λΉν μ μλ€λ©΄ μμ constant - κ°μ νλ²λ§ ν λΉν μ μλ μ.
μ¬ν λΉμ ν λ, κ°μ λ©λͺ¨λ¦¬ 곡κ°μμ μ΄μ κ°μ΄ μ§μμ§κ³ κ·Έ μ리μ μλ‘μ΄ κ°μ΄ λ€μ΄κ°λ κ²μ΄ μλλΌ,
μλ‘μ΄ λ©λͺ¨λ¦¬ 곡κ°μ ν보νκ³ κ·Έ 곡κ°μ μλ‘μ΄ κ°μ΄ μ μ₯λ¨.
μ무λ μ¬μ©νκ³ μμ§ μμ κ° -> νμμλ κ°μ. => κ°λΉμ§ μ½λ ν°μ μν΄ λ©λͺ¨λ¦¬μμ μλ ν΄μ λ¨.
λ¨, μΈμ ν΄μ λ μ§λ μμΈ‘ν μ μμ.
π΅ κ°λΉμ§ μ½λ ν° Garbage Collector
- μ΄ν리μΌμ΄μ μ΄ ν λΉν λ©λͺ¨λ¦¬λ₯Ό μ£ΌκΈ°μ μΌλ‘ κ²μ¬ -> λ μ΄μ μ¬μ©λμ§ μλ λ©λͺ¨λ¦¬λ₯Ό ν΄μ νλ κΈ°λ₯.
- λ©λͺ¨λ¦¬ λμλ₯Ό λ°©μ§ν¨.
JSλ κ°λ°μκ° λͺ μμ μΌλ‘ λ©λͺ¨λ¦¬λ₯Ό ν λΉνκ³ ν΄μ ν μ β. (νμ©νμ§ μμ) => 맀λμ§λ μΈμ΄
(νμ©νλ μΈμ΄λ μλ€. C μΈμ΄κ°μ μΈλ§€λμ§λ μΈμ΄ - κ°λ°μκ° λ©λͺ¨λ¦¬ κ΄λ¦¬ κ°λ₯)
π 4.7 μλ³μ λ€μ΄λ° κ·μΉ
- νΉμλ¬Έμλ₯Ό μ μΈν λ¬Έμ, μ«μ, _, $ ν¬ν¨ν μ μμ§λ§,
- μ«μλ‘ μμνλ©΄ μλ¨.
- μμ½μ΄β
- λμλ¬Έμ ꡬλΆν¨
- μ£Όμμ΄ νμμλλ‘ κ°λ μ±μ΄ μ’μ μ΄λ¦μ λΆμ¬μΌνλ€.
π΅ λ€μ΄λ° 컨벀μ
firstName - μΉ΄λ© μΌμ΄μ€
first_name - μ€λ€μ΄ν¬
FirstName - νμ€μΉΌ
strFirstName - νκ°λ¦¬μ (νμ κ³Ό μ΄λ¦μ ν¨κ» νμ)
'λ μ λͺ©λ‘ > λͺ¨λ₯λ€ Modern JS Deep Dive' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λͺ¨λ₯λ€] 08μ₯ μ μ΄λ¬Έ (0) | 2023.04.03 |
---|---|
[λͺ¨λ₯λ€] 07μ₯ λ°μ΄ν° νμ (7.5~7.13) (0) | 2023.04.01 |
[λͺ¨λ₯λ€] 07μ₯ λ°μ΄ν° νμ (7.1~7.4) (0) | 2023.03.30 |
[λͺ¨λ₯λ€] 06μ₯ λ°μ΄ν° νμ (0) | 2023.03.28 |
[λͺ¨λ₯λ€] 05μ₯ ννμκ³Ό λ¬Έ (0) | 2023.03.26 |