JavaScript

CallStack 콜 스택 - 예제로 기억하기

hojncode 2023. 1. 18. 16:01

콜 스택은 자바스크립트 해석기가 사용하는 메커니즘.

(스택 : 데이터 구조 - 후입선출 저장 방식)

여러 함수를 호출하는 스크립트에서 해당 위치를 추적한다. 그래서 자바스크립트가 해당 위치를 알 수 있다.

 

스크립트가 함수를 호출하면 해석기는 함수를 콜 스택에 추가한다.  그리고 실제로 그 함수를 실행하고 , 함수가 완료되면 콜스택에서 함수를 제거한다.

 

// 개발자 도구 창에 source에서 전체 코드의 실행 순서를 알아볼 수 있다.

const multiply = (x, y) => x * y;

const square = (x) => multiply(x, x);

const isRightTriangle = (a, b, c) => square(a) + square(b) === square(c);

console.log("before");
isRightTriangle(3, 4, 5); // breack point 설정하기
console.log("after");

 

 

http://latentflip.com/loupe/?code=ZnVuY3Rpb24gbXVsdGlwbHkoeCx5KSB7CiAgICByZXR1cm4geCAqIHk7Cn0KCmZ1bmN0aW9uIHNxdWFyZSh4KSB7CiAgICByZXR1cm4gbXVsdGlwbHkoeCx4KTsKfQoKZnVuY3Rpb24gaXNSaWdodFRyaWFuZ2xlKGEsYixjKXsKICAgIHJldHVybiBzcXVhcmUoYSkgKyBzcXVhcmUoYikgPT09IHNxdWFyZShjKTsKfQoKaXNSaWdodFRyaWFuZ2xlKDMsNCw1KQ%3D%3D!!!

 

http://latentflip.com/loupe/?code=ZnVuY3Rpb24gbXVsdGlwbHkoeCx5KSB7CiAgICByZXR1cm4geCAqIHk7Cn0KCmZ1bmN0aW9uIHNxdWFyZSh4KSB7CiAgICByZXR1cm4gbXVsdGlwbHkoeCx4KTsKfQoKZnVuY3Rpb24gaXNSaWdodFRyaWFuZ2xlKGEsYixjKXsKICAgIHJldHVybiBzcXVhcmUoYSkgKyBzcXVhcmUoYikgPT09IHNxdWFyZShjKTsKfQoKaXNSaWdodFRyaWFuZ2xlKDMsNCw1KQ%3D%3D%21%21%21

 

latentflip.com