JS 전문가되기 제목의 포스팅의 목적은 필자가 공부한 것을 복습하는데 그리고 약점을 보완하는데 있습니다.
- Boolean
- Null
- Undefined
- Number
- String
- Symbol
위 값들은 전부 원시자료형이다
- Array
- Object
- Function
위 값들은 전부 참조자료형이다
출처:https://goodgid.github.io/JS-Data-Types/
원시값은 Stack이라는 곳에 값을 그대로 할당,
참조값은 Stack이라는 곳에 주소값을 할당한다.
(참조값의 값은 Heap이라는 곳에 저장된다.)
예시를 통해 더 깊이 이해해보자
let Primitive = 1; let Reference = [1, 2, 3]; // let clonePri = Primitive; clonePri += 1; console.log(Primitive); // 1 // let cloneRefer = Reference; cloneRefer.push(4); console.log(Reference); // [1, 2, 3, 4]
원시자료형은 복사가 되는 반면 참조자료형은 값 복사가 안되는 걸 볼 수 있다.
(참조자료형은 변수에 할당할 때 값이 아닌 주소를 저장하기 때문(주소복사))
안쪽 Scope 에서 바깥 변수/함수를 접근하는 것은 가능
바깥쪽 Scope 에서 안쪽 변수/함수를 접근하는 것은 불가능
위와 같이 Keyword의 유효범위와 재할당 여부가 구분되어 있다.
function outerFn(){ let outerVar = 'outer'; console.log(outerVar); function innerFn(){ let innerVar = 'inner'; console.log(innerVar); } return innerFn() } let globalVar = 'global'; outerFn(); // outer \n inner
Closure 함수는 innerFn()이다.
Closure Function: 지역변수(innerVar), 외부함수의 변수(outerVar), 전역변수(globalVar)의 접근이
모두 가능한 함수
Curring: 함수 하나가 n개의 인자를 받는 대신, n개의 함수를 만들어 각각 인자를 받게 하는 방법
코드를 입력하세요
20201215