λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Program language/JavaScript

(1) Call Stack => JavaScript κ°œλ°œμžκ°€ μ•Œμ•„μ•Όν•  33κ°€μ§€

λ°˜μ‘ν˜•

좜처 : https://github.com/leonardomso/33-js-concepts

 

leonardomso/33-js-concepts

πŸ“œ 33 concepts every JavaScript developer should know. - leonardomso/33-js-concepts

github.com

ν•œλ•Œ 유λͺ…ν–ˆλ‹€λ˜ μ˜€ν”ˆ ν”„λ‘œμ νŠΈ?둜써 μžλ°”μŠ€ν¬λ¦½νŠΈ 개발자라면 κΌ­ μ•Œμ•„μ•Όν•  33κ°€μ§€ 라고 ν•©λ‹ˆλ‹€.

 

κ·Έ 쀑 첫번째둜 Call Stack μž…λ‹ˆλ‹€.

 

function three(){
	console.log("Call Stack");
}
function two(){
	three();
}
function one(){
	two();
}
function zero(){
	one();
}

zero();

μœ„μ™€ 같은 μ½”λ“œμ—μ„œ zeroλ₯Ό ν˜ΈμΆœν•˜λ©΄ zeroλŠ” one()을 ν˜ΈμΆœν•˜κ³  one은 two()λ₯Ό 호좜, twoλŠ” three()λ₯Ό 호좜.

three()λŠ” μ½˜μ†”.둜그λ₯Ό μˆ˜ν–‰ν•˜κ³  λλ‚˜λ©΄μ„œ μŠ€νƒ μœ„μ—μ„œ 사라지고 ν˜ΈμΆœν–ˆλ˜ two()둜 λŒμ•„κ°€μ„œ two() λ˜ν•œ μ‚­μ œλ˜κ³ 

μ΄λ ‡κ²Œ μ°¨λ‘€λŒ€λ‘œ λͺ¨λ‘ μ™„λ£Œ ν›„ μŠ€νƒμ—μ„œ μ‚­μ œ λ©λ‹ˆλ‹€.

 

이렇듯 μŠ€νƒ μœ„μ— μ±…μ²˜λŸΌ μŒ“μ•„ μ˜¬λ¦¬λŠ” 것이 μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•˜μ—¬ ν•Έλ“€λ§ν•˜λŠ” 방법 쀑 ν•˜λ‚˜ μž…λ‹ˆλ‹€.

 

+ ν•¨μˆ˜ λΆ•κ΄΄.

function hello(){
	bye();
}
function bye(){
	hello();
}

hello();

μœ„μ™€ 같이 μ„œλ‘œκ°€ μ„œλ‘œλ₯Ό λΆ€λ₯Ό 경우 λ¬΄ν•œνžˆ μ„œλ‘œλ₯Ό 차곑차곑 λΆ€λ₯΄κ²Œ 되기 λ•Œλ¬Έμ—

κ²°κ΅­ 콜 μŠ€νƒ μ‚¬μ΄μ¦ˆμ˜ μ΅œλŒ€μΉ˜μ— λ„λ‹¬ν•˜μ—¬ 초과 ν–ˆλ‹€λŠ” μ—λŸ¬ 문ꡬ가 λ°œμƒν•˜κ²Œ λ©λ‹ˆλ‹€.

λ°˜μ‘ν˜•