μ μ window & document κ°μ²΄
Built-in Variables & Functions
μ μ λ³μλ‘ μ½λ λ΄μμ νμ μ¬μ©ν μ μλ λ³μ
window κ°μ²΄
μ μ κ°μ²΄
- window μ μ κ°μ²΄λ μΉ λΈλΌμ°μ νκ²½μμ μ μμΌλ‘ μ¬μ© κ°λ₯ν κ°μ²΄λ₯Ό λνλΈλ€. λͺ¨λ μ μ λ³μμ ν¨μλ μ€μ λ‘ μ΄ window κ°μ²΄μ νλ‘νΌν°λ‘ μ‘΄μ¬νλ€.
- window κ°μ²΄μ νλ‘νΌν°μ λ©μλ. ν¨μ κΈ°νΈ fκ° νμλ κ²μ΄ λ©μλμ΄κ³ κ·Έλ μ§ μμ κ²μ νλ‘νΌν°μ΄λ€.
- window κ°μ²΄μ λ΄μ₯λ νλ‘νΌν°μ λ©μλλ€μ window. μμ΄λ μ‘μΈμ€ν μ μλ€.
- alert λ©μλμ κ²½μ° window.alert()λ‘λ μ¬μ©ν μ μμ§λ§ κ·Έλ₯ alert()μΌλ‘λ μ€νν μ μλ κ²μ²λΌ λ§μ΄λ€.
μλμ°μ λΈλΌμ°μ ν
- μλμ°λ μΉ λΈλΌμ°μ μ μ°½(ν)μ μλ―Ένλ€. κ°κ°μ μΉμ¬μ΄νΈλ₯Ό μ΄ λλ§λ€ λΈλΌμ°μ λ μλ‘μ΄ μλμ° κ°μ²΄λ₯Ό μμ±νλ€. λ°λΌμ μ¬λ¬ κ°μ νμ΄ μ΄λ € μλ€λ©΄ κ°κ°μ νμ λ 립λ μλμ° κ°μ²΄λ₯Ό κ°κ²λλ€.
μ‘μΈμ€μ 보μ λ¬Έμ
- 보μμμ μ΄μ λ‘, νλμ μΉνμ΄μ§(ν)μ΄ λ€λ₯Έ μΉνμ΄μ§(ν)μ μ κ·Όνκ±°λ κ·Έ μ 보λ₯Ό μ½μ΄μ€λ κ²μ μ νλμ΄ μλ€. μ΄λ λ€λ₯Έ λλ©μΈμ μ€ν¬λ¦½νΈκ° μλ‘μ μ 보μ μ κ·Όνμ§ λͺ»νκ² ν¨μΌλ‘μ¨ λ³΄μμ μ μ§νκΈ° μν΄μμ΄λ€. μ΄κ²μ Same Origin Policy(λμΌ μΆμ² μ μ± )μ΄λΌκ³ νλ€.
μΌλ°μ μΌλ‘ 보μ μ μ± μ μΉ νμ΄μ§κ° λ€λ₯Έ μΆμ²(λλ©μΈ, νλ‘ν μ½, ν¬νΈ)μ 리μμ€μ μ κ·Όνλ κ²μ μ ννλ€. μ΄λ λΈλΌμ°μ κ° μ¬μ©μμ κ°μΈ μ 보λ₯Ό 보νΈνκ³ , μ μ± μ€ν¬λ¦½νΈλ‘λΆν° 보νΈνκΈ° μν¨μ΄λ€.
λ°λΌμ νμ¬ μ΄λ € μλ μΉμ¬μ΄νΈ λΈλΌμ°μ νμ μ κ·Όν λλ 보μ μ μ± μ μ€μνμ¬ window κ°μ²΄λ₯Ό ν΅ν΄ μ κ·Όν΄μΌ νλ€. λ€λ₯Έ νμ μ 보μ μ§μ μ κ·Όνλ κ²μ νμ©λμ§ μκ³ λΈλΌμ°μ μ 보μ μ μ± μ λ°λΌ λ°©μ§λλ€.
μλ₯Ό λ€μ΄, νμ¬ νμ URLμ κ°μ Έμ€κ±°λ, μλ‘μ΄ νμ μ΄κ±°λ, νμ¬ νμ΄μ§λ₯Ό 리λ‘λ νλ λ±μ λμμ window κ°μ²΄λ₯Ό ν΅ν΄ μνν μ μλ€.
document κ°μ²΄
window.document
- document κ°μ²΄λ window κ°μ²΄ μμ λ΄μ₯λμ΄ μλ μ€μ²© κ°μ²΄μ΄λ€.
- μΉ νμ΄μ§μ ꡬ쑰λ HTML λ¬Έμλ‘ ννλλλ°, μ΄ HTML λ¬Έμλ₯Ό μλ°μ€ν¬λ¦½νΈμμ μ‘°μνκΈ° μν΄ DOMμ΄ μ¬μ©λλ€. DOMμ HTML λ¬Έμλ₯Ό λνλ΄λ νΈλ¦¬ ꡬ쑰λ‘, κ° HTML μμλ κ°μ²΄λ‘ ννλλ€. μ΄ λ μ΅μμ κ°μ²΄κ° document κ°μ²΄μ΄λ€.
- document κ°μ²΄λ HTML μ½λλ₯Ό λΆμνκ³ μ΄λ₯Ό νλ©΄μ λ λλ§νλ μν μ νλ€.
- HTMLμ μΉ λΈλΌμ°μ μ μν΄ λΆμλκ³ , κ°κ°μ HTML νκ·Έλ λ¬Έμ κ°μ²΄λ‘ λ³νλλ€. μ΄λ¬ν λ³νμ ν΅ν΄ λΈλΌμ°μ λ μΉνμ΄μ§μ 컨ν μΈ λ₯Ό μ€ν¬λ¦°μ μ€μ λ‘ νμνλ€.
- document κ°μ²΄μλ HTML λ¬Έμμ ꡬ쑰μ κ΄λ ¨λ μ 보μ ν¨μκ° ν¬ν¨λμ΄ μλ€. μ΄ κ°μ²΄λ₯Ό ν΅ν΄ μλ°μ€ν¬λ¦½νΈκ° μΉ νμ΄μ§μ λ΄μ©μ λμ μΌλ‘ μ‘°μν μ μλ κ²μ΄λ€.
- ex. νΉμ HTML μμμ μ κ·Όνκ³ ν΄λΉ μμμ μμ±μ λ³κ²½νκ±°λ, μλ‘μ΄ HTML μμλ₯Ό μμ±νμ¬ νμ΄μ§μ μΆκ°ν μ μμ
DOMμ΄λ?
Document Object Modelμ μ½μλ‘, μμ±λ HTML μ½λλ₯Ό νμ±νμ¬ λ°μ΄ν°μ λΈλΌμ°μ μ λ΄λΆλ₯Ό νννλ κ²μ μ€λͺ ν΄μ£Όλ μν μ νλ€.
HTMLμμ DOMμΌλ‘
DOM Tree
- λΈλΌμ°μ λ μΉμ¬μ΄νΈλ₯Ό λΆλ¬μ€λ©΄ λΈλΌμ°μ μ μλ°μ€ν¬λ¦½νΈ μμ§μ΄ HTML μ½λλ₯Ό μλ°μ€ν¬λ¦½νΈ κ°μ²΄ λ¬ΆμμΌλ‘ ν΄μνλ€. μ°λ¦¬κ° μμ±ν λͺ¨λ HTML μμλ μλ°μ€ν¬λ¦½νΈ κ°μ²΄λ‘ ν΄μλκ³ , κ·Έ κ°μ²΄λ€μ HTML ꡬ쑰λ₯Ό λνλ΄κΈ° μν΄ μλ‘ μ€μ²©μ΄ λλ€.
- λ€μ λ§νλ©΄, HTML μ½λμ μλ°μ€ν¬λ¦½νΈ ννμ΄ μκ³ μ΄ HTML κ΅¬μ‘°κ° μλ°μ€ν¬λ¦½νΈ κ°μ²΄μ κ΅¬μ‘°λ‘ λ³νλμκΈ° λλ¬Έμ μλ°μ€ν¬λ¦½νΈ μ½λλ DOMκ³Ό μνΈμμ©ν μ μλ€.
- μ΄ DOMμ μμνλ κ²μ΄ λ°λ‘ document κ°μ²΄μ΄λ€. document κ°μ²΄λ₯Ό ν΅ν΄ DOMμ μ κ·Όνλ€.
λΈλΌμ°μ μμ HTML μ½λλ₯Ό λ°κΎΈκ±°λ κ°μ μΆμΆνκΈ° μν΄ νμ±λ HTML μ½λμ μ κ·Όν μ μλ λ°©λ²μ΄ νμνλ€. μ΄κ²μ΄ λ°λ‘ DOMμ΄ νμν μ΄μ μ΄λ€. μλ°μ€ν¬λ¦½νΈ μ½λλ νλ©΄μμ μΌμ΄λλ μΌμ μ κ·Όν΄μΌ νκΈ° λλ¬Έμ΄λ€.
μ½μμμ document κ°μ²΄ μ΄ν΄λ³΄κΈ°
- console.log(document)λ₯Ό μ€ννλ©΄ μ νμ μΈ HTML μ½λμ²λΌ 보μΈλ€. νμ§λ§ document κ°μ²΄ μμλ HTML μ½λκ° μλ€. μ§μ§ μλ°μ€ν¬λ¦½νΈ κ°μ²΄λ₯Ό λ³΄λ €λ©΄ console.dir(document)λ₯Ό μ€ννλ©΄ λλ€.
μ°Έκ³ - μλ°μ€ν¬λ¦½νΈ μμ§κ³Ό λ λλ§ μμ§
- μλ°μ€ν¬λ¦½νΈ μμ§ (JavaScript Engine)
- μΉ νμ΄μ§μ ν¬ν¨λ μλ°μ€ν¬λ¦½νΈ μ½λλ₯Ό μ€ννλ μν μ νλ€.
- V8 μμ§μ΄λ SpiderMonkey λ±μ΄ μλ€.
- μλ°μ€ν¬λ¦½νΈ μμ§μ HTML λ¬Έμ μμ μ½μ λ <script> νκ·Έ λ΄μ μλ°μ€ν¬λ¦½νΈ μ½λλ₯Ό ν΄μνκ³ μ€ννλ€. μ΄λ, DOM(Document Object Model)μ μμ±νκ³ , μΉ νμ΄μ§μ λμ μΈ μμλ€μ μ‘°μνλλ° μ¬μ©λλ€.
- λ λλ§ μμ§ (Rendering Engine)
- HTMLκ³Ό CSSλ₯Ό ν΄μνκ³ μΉ νμ΄μ§λ₯Ό νλ©΄μ λ λλ§νλ μν μ νλ€.
- Blink(Chrome), Gecko(Firefox), WebKit(Safari) λ±μ΄ μλ€.
- λ λλ§ μμ§μ HTMLκ³Ό CSSλ₯Ό νλ©΄μ νμν μ μλ κ·Έλν½ ννλ‘ λ³ννλ€. μ΄ κ³Όμ μμ DOM νΈλ¦¬μ CSS μ€νμΌ κ·μΉμ μ¬μ©νμ¬ μΉ νμ΄μ§μ λ μ΄μμμ ꡬμ±νκ³ μ΅μ’ μ μΌλ‘ νλ©΄μ νμνλ€.
μλ°μ€ν¬λ¦½νΈ μμ§κ³Ό λ λλ§ μμ§μ μλ‘ λ 립μ μΌλ‘ λμνμ§λ§, λ μ¬μ΄μλ μ°κ³μ±μ΄ μλ€. μλ₯Ό λ€μ΄, μλ°μ€ν¬λ¦½νΈ μ½λκ° μ€νλλ©΄ DOMμ΄ λ³κ²½λ μ μκ³ , μ΄ λ³κ²½ μ¬νμ λ€μ λ λλ§ μμ§μ μν΄ λ°μλμ΄ νλ©΄μ μλ‘μ΄ λ΄μ©μ΄ λνλ μ μλ€.
'π» Programming > JS, TS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript] μλ°μ€ν¬λ¦½νΈλ‘ css μ€νμΌ λ³κ²½νκΈ° (0) | 2024.01.13 |
---|---|
[JavaScript] μ΄λ²€νΈ κ°μ²΄ (0) | 2024.01.13 |
[JavaScript] slice vs splice vs split μ°¨μ΄μ (0) | 2023.08.08 |
[TypeScript] Map (0) | 2023.07.27 |
[JavaScript] μλ°μ€ν¬λ¦½νΈλ‘ ν¬λ¦¬μ€λ§μ€κΉμ§ λ¨μ μκ° κ³μ°νκΈ° (0) | 2023.06.21 |