\(@^0^@)/
[JS] JS λμμ리 (stack, Queue, event loop) λ³Έλ¬Έ
π€ λ€λ₯Έ μΈμ΄μμ μ°¨μ΄μ ?
console.log('a');
setTimeout(function(){console.log('b')}, 1000);
console.log('c');
JSλ₯Ό μ μΈν 보ν΅μ λ€λ₯Έ μΈμ΄λ€μ μμμλΆν° μλλ‘ ν μ€ ν μ€ μ€νμ νμ¬ μμ κ°μ μ½λλ₯Ό μλμν¨λ€κ³ νλ©΄,
a -> (1μ΄ μ¬κ³ ) b -> c μ΄λ°μμΌλ‘ μλμ΄ λλ€.
νμ§λ§, JSλ λ€λ₯΄λ€.
setTimeout ν¨μλ₯Ό μ¬μ©νλ κ²½μ° λ€λ₯Έ μ½λλ€μ λ€ μ€νμν¨ ν,
setTimeout ν¨μμ κ΄ν μ½λλ§ 1μ΄(νΉμ κ·Έ μ΄μ) λ€μ μλμ΄ λλ€.
μ μ΄λ κ² λμνλμ§ μμ보μ!
β¨ JS λμμ리
1. μ½λλ₯Ό μμ±νλ©΄ STACKμ΄λΌλ κ³³μμ μμμλΆν° μλλ‘ μμλλ‘ μ€νλλλ°,
2. Ajax μμ² μ½λ, μ΄λ²€νΈ 리μ€λ, setTimeout κ°μ λΉλκΈ° ν¨μλ€μ λκΈ°μ€λ‘ μ΄λμν€κ³ ,
3. μ΄λνμ§ μμ λλ¨Έμ§ ν¨μλ€μ(λκΈ° ν¨μ) STACKμμ λ¨Όμ μ€νμν¨λ€.
4. κ·Έλ¦¬κ³ λμ, λΉλκΈ° ν¨μλ€μ μ²λ¦¬ν΄μΌ νλλ° , κ·Έλ λ°λ‘ STACKμΌλ‘ κ°λ κ²μ΄ μλλΌ QUEUEλ₯Ό κ±°μ³μ κ°λ€.
5. μ²λ¦¬λ λΉλκΈ° ν¨μλ€μ QUEUEμ μ€ μΈμμ STACKμ΄ λΉμ΄μμ κ²½μ°(λκΈ°μ ν¨μλ€μ λ€ μ€ννκ³ λμ),
λΉλκΈ° ν¨μλ€μ μμλλ‘ μ€νμν¨λ€.
μ 리λ₯Ό νμλ©΄ : a μ€ν -> b(λκΈ°μ€) -> c μ€ν -> 1μ΄ ν b(queue) -> stackμ΄ λΉ -> stackμΌλ‘ μ΄λ ν, b μ€ν
β» μ°Έκ³ μ½λ© μ ν : https://www.youtube.com/watch?v=v67LloZ1ieI
'TIL' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JS] μ€ν¬λ¦½νΈ defer, async (0) | 2021.09.22 |
---|---|
[JS] Number μ parseIntμ μ°¨μ΄μ (0) | 2021.09.11 |
jQuery μ©κΈ°μ΄ (0) | 2021.09.08 |
[JS] DocumentFragment (0) | 2021.09.04 |
[JS] μ΅μ λ 체μ΄λ ?. (0) | 2021.09.02 |