JS Scope & Closure
변수 Scope (Local vs. Global)
- 전역변수와 지역변수의 차이
1) 지역변수는 함수 내에서 선언된 변수로 함수 내에서만 참조 가능
2) 전역변수는 함수 안밖 어디서든 참조 가능
- 변수선언문 var : Function Scope, 재할당 가능
- 변수선언문 const : Block Scope, 재할당 불가능
- 변수선언문 let : Block Scope, 재할당 가능
Closure 함수
- 외부함수의 변수에 접근할 수 있는 내부 함수
- 함수를 만들어내는 템플릿으로 주로 사용된다.
- 아마도 HTML 코딩 시 반복적으로 Tag만들어내는 부분에서도 활용될 것으로 예상된다.
Data Type(Primitive Type vs. Reference Type)
- Primitive Type(원시타입)에는 'number','string','boolean','null' 등이 있다.
- Reference Type(참조타입)에는 배열, 객체, 함수가 있다.
- 원시타입은 Call Stack에 변수이름과 할당물 value가 직접들어가고, 변수를 변경하려면 재할당만이 가능하고 method를 통한 변수 할당물을 변경은 불가능(Immutable)
- 참조타입은 Call Stack에 변수이름과 heap의 주소만 보관.
! 기초적인 내용이면서 필수적인 내용이라 반드시 숙지해야 겠다.