π 21.1 μλ°μ€ν¬λ¦½νΈ κ°μ²΄μ λΆλ₯
π JSμ κ°μ²΄ 3κ°μ§
1. νμ€ λΉνΈμΈ κ°μ²΄
- ECMAScript μ¬μμ μ μλ κ°μ²΄λ₯Ό λ§νλ©°, μ± μ μμ κ³΅ν΅ κΈ°λ₯μ μ 곡ν¨.
- μ€ν νκ²½μ μκ΄μμ΄ μΈμ λ μ¬μ©ν μ μμ
2. νΈμ€νΈ κ°μ²΄
- μ€ννκ²½μμ μΆκ°νΈ μ 곡λλ κ°μ²΄ (μλμ° - DOM, BOM, Canvas..., NodeJs -κ³ μ μ API)
3. μ¬μ©μ μ μ κ°μ²΄
- κΈ°λ³Έ μ 곡λλ κ²μ΄ μλ, μ¬μ©μκ° μ§μ μ μν κ°μ²΄
π 21.2 νμ€ λΉνΈμΈ κ°μ²΄
JS λ Object, String, Number λ±λ± 40μ¬κ°μ νμ€ λΉνΈμΈ κ°μ²΄λ₯Ό μ 곡ν¨.
μ΄ μ€ String, Number, Boolean, Function, Array, Date λ μμ±μ ν¨μλ‘ νΈμΆν΄ μΈμ€ν΄μ€λ₯Ό μμ±ν μ μλ€.
(μ΄ λ μΈμ€ν΄μ€μ νλ‘ν νμ : λΉνΈμΈ κ°μ²΄μ prototype νλ‘νΌν°μ λ°μλ κ°μ²΄μ.
μλ₯Ό λ€λ©΄ String μμ±μ ν¨μλ‘ νΈμΆν΄ μμ±ν String μΈμ€ν΄μ€μ νλ‘ν νμ μ String.prototype μ΄λ€.
νμ€ λΉνΈμΈ κ°μ²΄λ μΈμ€ν΄μ€ μμ΄λ νΈμΆ κ°λ₯ν λΉνΈμΈ μ μ 맀μλλ₯Ό μ 곡ν¨.
π 21.3 μμκ°κ³Ό λνΌ κ°μ²΄
μμκ°μ΄ μλλ°λ λ¬Έμμ΄, μ«μ, λΆλ¦¬μΈ κ°μ²΄λ₯Ό μμ±νλ νμ€ λΉνΈμΈ μμ±μ ν¨μκ° μ‘΄μ¬νλ μ΄μ λ?
μλλ μμκ°μ κ°μ²΄κ° μλλ―λ‘ νλ‘νΌν°λ λ©μλλ₯Ό κ°μ§ μ μλλ°λ μμκ°μΈ λ¬Έμμ΄μ΄ λ§μΉ κ°μ²΄μ²λΌ λμν¨.
(μ΄..? κ·Έλ¬λ€)
const str = 'hello';
console.log(str.length); // 5
μ΄μ : μμκ°μ λν΄ κ°μ²΄μ²λΌ λ§μΉ¨ν νκΈ°λ²(λλ λκ΄νΈ νκΈ°λ²)μΌλ‘ μ κ·Όνλ©΄,
JS μμ§μ΄ μΌμμ μΌλ‘ μμκ°μ μ°κ΄λ κ°μ²΄λ‘ λ³νν΄μ€.
=> JS μμ§λ μ묡μ μΌλ‘ μ°κ΄λ κ°μ²΄λ₯Ό μμ± -> μμ±λ κ°μ²΄λ‘ νλ‘νΌν°μ μ κ·Όνκ±°λ λ©μλ νΈμΆ -> λ€μ μμκ°μΌλ‘ λλλ¦Ό
π λνΌ κ°μ²΄
: μ΄μ²λΌ λ¬Έμμ΄, μ«μ, λΆλ¦¬μΈ κ°μ λν΄ κ°μ²΄μ²λΌ μ κ·Όνλ©΄ μμ±λλ μμ κ°μ²΄λ₯Ό λ»ν¨,
λνΌ κ°μ²΄μ μ²λ¦¬ μ’ λ£ -> μλ³μκ° μμκ°μ κ°λλ‘ λλλ¦¬κ³ , λνΌ κ°μ²΄λ κ°λΉμ§ 컬λ μ μ λμμ΄ λ¨.
null κ³Ό undefined λ λνΌ κ°μ²΄λ₯Ό μμ±νμ§ μμ.
π 21.4 μ μ κ°μ²΄
μ μ κ°μ²΄
- μ½λκ° μ€νλκΈ° μ΄μ λ¨κ³μ JS μμ§μ μν΄ μ΄λ€ κ°μ²΄λ³΄λ€λ λ¨Όμ μμ±λλ νΉμν κ°μ²΄.
- μ΄λ€ κ°μ²΄μλ μνμ§ μλ μ΅μμ κ°μ²΄
- νκ²½μ λ°λΌ μ΄λ¦μ΄ μ κ°κ°μ.
λΈλΌμ°μ : window, self, this, frames
Node.js : global
π μ μ κ°μ²΄μ νΉμ§
- μ μκ°μ²΄λ κ°λ°μκ° μλμ μΌλ‘ μμ±ν μ μλ€. -> μ μ κ°μ²΄λ₯Ό μμ±ν μ μλ μμ±μ ν¨μκ° μ 곡λμ§ μλλ€.
- μ μ κ°μ²΄λ¦ νλ‘νΌν°λ₯Ό μ°Έμ‘°ν λ, window λ±μ μλ΅ν μ μλ€.
- Object, String λ±κ³Ό κ°μ λͺ¨λ νμ€ λΉνΈμΈ κ°μ²΄λ₯Ό νλ‘νΌν°λ‘ κ°κ³ μλ€.
- μ€ννκ²½μ λ°λΌ μΆκ°μ μΌλ‘ νλ‘νΌν°μ λ©μλλ₯Ό κ°λλ€.
(Window: DOM, BOM, .. , Nodejs: κ³ μ μ API)
- var ν€μλλ‘ μ μΈν λ³μ & μ μΈνμ§ μμ λ³μμ κ°μ ν λΉν μ묡μ μ μ & μ μν¨μ => μ μ κ°μ²΄μ νλ‘νΌν°κ° λ¨.
- let, const λ‘ μ μΈν λ³μλ μ μκ°μ²΄μ νλ‘νΌν°κ° μλ.
- λΈλΌμ°μ νκ²½μ λͺ¨λ JS μ½λλ νλμ μ μ κ°μ²΄ window λ₯Ό 곡μ ν¨.
21.4.1 λΉνΈμΈ μ μ νλ‘νΌν°
μ μ κ°μ²΄μ νλ‘νΌν°λ₯Ό μλ―Έ.
μ£Όλ‘ μ΄ν리μΌμ΄μ μ μμμ μ¬μ©νλ κ°μ μ 곡
Infinity
NaN
undefined
21.4.2 λΉνΈμΈ μ μ ν¨μ
μ΄ν리μΌμ΄μ μ μμμ νΈμΆν μ μλ λΉνΈμΈ ν¨μ
eval
- λ¬Έμμ΄μ μ½λλ‘ λ§λ¦. -> κΈ°μ‘΄ μ€μ½νλ₯Ό λ°νμμ λμ μΌλ‘ μμ .
- JS μ μν΄ μ΅μ νκ° μνλμ§ μμ -> λλ¦Ό
=> μ¬μ© κΈμ§.
isFinite
- μΈμκ° μ μμ μΈ μ νμμΈμ§
isNaN
- μΈμκ° NaN μΈμ§
parseFloat
λ¬Έμμ΄ μΈμλ₯Ό λΆλ μμμ μ«μ, μ¦ μ€μλ‘ ν΄μνμ¬ λ°ν
pardeInt
- λ¬Έμμ΄ -> μ μλ‘ ν΄μ
encodeURI / decodeURI
μμ ν URI* (Uniform Resource identifier) μ μ λ¬λ°μ μ΄μ€μΌμ΄ν μ²λ¦¬λ₯Ό μν΄ μΈμ½λ©ν¨.
URI & URLμ νΌμ©ν΄μ μ¬μ©νλ κ²½μ°κ° μλ€. λλΆλΆμ κ²½μ° λ¬Έμ κ° μμ§λ§ μ ννκ² μ΄ λμ μ°¨μ΄μ μ΄ μ‘΄μ¬νλ€. κ·Έλ¬λ―λ‘ κ° μ©μ΄μ μ μμ μ©λμ λν΄μ μμλ³Έλ€.
URI
URIλ νΉμ 리μμ€λ₯Ό μλ³νλ ν΅ν© μμ μλ³μ(Uniform Resource Identifier)λ₯Ό μλ―Ένλ€.
μΉ κΈ°μ μμ μ¬μ©νλ λ Όλ¦¬μ λλ 물리μ 리μμ€λ₯Ό μλ³νλ κ³ μ ν λ¬Έμμ΄ μνμ€λ€.
URL
URLμ νν μΉ μ£ΌμλΌκ³ λ νλ©°, μ»΄ν¨ν° λ€νΈμν¬ μμμ 리μμ€κ° μ΄λ μλμ§ μλ €μ£ΌκΈ° μν κ·μ½μ΄λ€.
URIμ μλΈμ μ΄λ€.
λΉλ‘ URLμ URIμ μλΈμ μ΄μ§λ§ URIμ URLμ κ°μ₯ ν° μ°¨μ΄μ μ λ°λ‘ μλμ κ°λ€
URIλ μλ³νκ³ , URLμ μμΉλ₯Ό κ°λ₯΄ν¨λ€.
μ΄μ€μΌμ΄ν μ²λ¦¬
- λ€νΈμν¬λ₯Ό ν΅ν΄ μ 보λ₯Ό 곡μ ν λ, μ΄λ€ μμ€ν μμλ μ½μ μ μλ μμ€ν€ λ¬Έμ μ μΌλ‘ λ³ννλ κ²
μΈμ½λ©
- URL μ λ¬Έμλ€μ μ΄μ€μΌμ΄ν μ²λ¦¬νλ κ².
encodeURIComponent / decodeURIComponent
URI ꡬμ±μμλ₯Ό μΈμλ‘ μ λ¬ λ°μ μΈμ½λ©ν¨.
21.4.3 μ묡μ μ μ
μ μΈνμ§ μμ λ³μλ₯Ό μ¬μ©νλ©΄ JS μμ§μ μν΄ μ μ κ°μ²΄μ νλ‘νΌν°κ° λμ΄ μ μ λ³μμ²λΌ λμνλ νμ
-> νμ§λ§ λ³μλ μλ. νλ‘νΌν°μ΄κΈ° λλ¬Έμ λ³μ νΈμ΄μ€ν μ΄ μΌμ΄λμ§ μμ.
-> delete λ‘ μμ κ°λ₯.
'λ μ λͺ©λ‘ > λͺ¨λ₯λ€ Modern JS Deep Dive' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λͺ¨λ₯λ€] 23μ₯ μ€ν 컨ν μ€νΈ (0) | 2023.05.16 |
---|---|
[λͺ¨λ₯λ€] 22μ₯ this (0) | 2023.05.14 |
[λͺ¨λ₯λ€] 20μ₯ Strict Mode (0) | 2023.05.13 |
[λͺ¨λ₯λ€] 19μ₯ (2) νλ‘ν νμ (0) | 2023.05.13 |
[λͺ¨λ₯λ€] λ²μΈ ) μ°λ¦¬λ μ νλ‘ν νμ μ λν΄μ μμμΌν κΉ? (0) | 2023.05.10 |