본문 바로가기
JavaScript

자바스크립트 핵심 컨셉 33 - (1) Call stack , Primitive Types

by 달보드레. 2020. 6. 15.

1. Call stack 

 

자바스크립트 실행해야하는 함수는 스택위에 올라간다

그리고 함수를 스택위에 다 올리고 함수를 다 살행하면 제거

 

* 스택이란?

 

스택은 후입선출(LIFO- Last In First Out) 구조로

말 그대로 가장 마지막에 쌓인 놈이 가장 먼저 나가는 구조이다

 

function three(){
  console.log("JavaScript");
}

function two(){
  three();
}

function one(){
  two();
}

function zero(){
  one();
  throw Error("Error Message!!!!");
}

zero();

 

위의 스크립트를 실행해보면

 

첫번째 zero함수를 호출하여 

zero가 스택에 쌓인다

 

그후 zero에서 one함수를 호출하여 

스택에 one이 쌓인다

 

two가 호출되고 

스택에 two가 쌓인다

 

three가 호출되고

스택에 three 쌓인다

 

그리고 가장 늦게 쌓인 three부터 실행된다

그후 two 실행

one 실행

그리고 가장 먼저 쌓인 zero 실행

이때 zero에 있는 error가 발생 한다

 

 

 

 

2. Primitive Types 

 

Primitive 뜻 : 원시적인, 기초적인

 

자바스크립트엔 가장 기본적인 데이터 타입인

 

boolean

null

undefined

number

string

그리고 ECMA 6 에서 추가된 symbol이 있다

 

여기서 null과 undefined에는 굉장히 큰 차이가 있다

undefined은 정의 되지 않았음

null은 정의는 되었지만 값이 존재 하지 않음

NaN(Not a Number)은 연산에 들어간 값이 숫자가 아닐 경우에 주로 출력된다

 

웃긴 비유를 보았는데

이해를 돕기 위해 

undefined = 미필

null = 면제

 

 

 

'JavaScript' 카테고리의 다른 글

JS - 구조 분해 할당  (0) 2021.10.18
JS - var vs let vs Const  (0) 2021.10.18
JS - 함수  (0) 2021.10.07
자바스크립트 - 데이터 타입,연산자  (0) 2020.06.08
JSON (JavaScript Object Notation)  (0) 2020.05.19