728x90
반응형
// Nomard Coder의 33 Concepts of JavaScript 듣는 중//
1. Call Stack
- JS가 함수 실행을 핸들 하는 방법 중 하나
- 실행할 함수를 stack 위에 올림. 함수 다 실행하면 없애고, 불러올게 없어지면, 함수가 끝난 것.
- 순서대로 포함된 함수 전부 끝까지 리스트를 따라갔다가, 다시 위에서부터 내려오면서 없애며 "실제로 실행" 되는 것
- Crome-source에서 확인하면 에러의 위치에 따라서 나타나는 에러 개수가 다른 데 그건 함수가 리스트로
쭉 위로 쌓이면서 다 확인되고(anonymous -> zero -> one, -> two -> three) 위에서부터 실행되면서 하나씩 제거되면서 아래로 내려옴
function three() {
console.log("great");
}
function two() {
three();
}
function one() {
two();
}
function zero() {
one();
throw Error("omg it's an error");
}
zero();
concepts.js:15 Uncaught Error: omg it's an error
at zero (concepts.js:15:9)
at concepts.js:18:1
--> 에러가 2개 뜸 제로랑, js 파일 자체만 실행되지 못했기 때문
function three() {
console.log("great");
throw Error("omg it's an error");
}
function two() {
three();
}
function one() {
two();
}
function zero() {
one();
}
zero();
concepts.js:3 Uncaught Error: omg it's an error
at three (concepts.js:3:9)
at two (concepts.js:7:3)
at one (concepts.js:11:3)
at zero (concepts.js:15:3)
at concepts.js:18:1
--> 얘는 다 실행 안돼서 5개 다 뜸. 올라갔다가 내려오면서 실행이 안 됐기 때문임
++ 즉 함수는 리스트가 추가되는 것이고, 실행이 완료되면 함수가 리스트에서 제거되는 것.
728x90
반응형
'Web Developing > JS' 카테고리의 다른 글
[JS] 기본적인 개념 2 (0) | 2024.03.16 |
---|---|
[JS] 기본적인 개념 1 (1) | 2024.03.16 |
[JS] 날씨 정보 나타나게 하기 (API사용) (1) | 2024.03.16 |
[JS] background image 변경하기 (0) | 2024.03.16 |
[JS] to-do list 만들기 (1) | 2024.03.16 |