-
원시 자료형, 참조 자료형, 스코프, 클로저Topic/JavaScript 2021. 11. 24. 21:04반응형
원시 자료형과 참조 자료형
원시 자료형 -> string, number, boolean, undefined, (null)
: 모두 각각 하나의 데이터를 가지고 있다.
데이터 보관함 안에 하나의 데이터만 넣을 수 있다.
원시 자료형이 할당될 때에는 변수에 값(value) 자체가 담긴다.참조 자료형 -> 배열([])과 객체({}), 함수(function(){}) (원시 자료형이 아닌 모든 것)
: 참조 자료형을 변수에 할당할 때는 변수에 값이 아닌 주소를 저장합니다.
변수에 넣을 수 있는 데이터 크기가 제한되기 때문에 "데이터의 크기가 동적으로 변하는" 특별한 데이터 보관함이 필요해서 등장!
참조 자료형이 할당될 때는 보관함의 주소(reference)가 담긴다.원시 자료형의 변수에 값 자체가 담기는 예시 ↓
-> (b와 a가 같고, b에 3을 할당해도 a를 복사해 온 것이기 때문에 a 자체는 그대로 2 이다.let a = 2; let b = a; b = 3; console.log(a); // 2
참조 자료형에 각각의 데이터 보관함을 쓴다는 의미 ↓
-> arr2에 arr1을 할당해 arr2 = [1, 2, 3, 4]이어서 이 두 배열은 이름은 다르고, 주소값은 같다.
그래서 arr2에서 pop()으로 마지막 요소를 제거한다면, arr1과 arr2 모두 같은 주소값을 불러오기 때문에
결과적으로 arr1도 마지막 요소가 제거된 [1, 2, 3]을 최종적으로 가지게 되는 것을 볼 수 있다.let arr1 = [1, 2, 3, 4] let arr2 = arr1; arr2.pop(); console.log(arr1) // [1, 2, 3]
스코프 (Scope)
스코프는 '범위'라는 의미
스코프는 "변수 접근 규칙에 따른 유효 범위"
안쪽 스코프에서 바깥쪽 스코프로는 접근할 수 있지만 반대는 불가능
가장 바깥쪽의 스코프는 전역 스코프(Global Scope) / 전역이 아닌 다른 스코프는 전부 지역 스코프(local scope)
지역 변수는 전역 변수보다 더 높은 우선순위를 가진다.
let const var 유효 범위 블록 스코프 및
함수 스코프블록 스코프 및
함수 스코프함수 스코프 값 재할당 가능 불가능 가능 재선언 불가능 불가능 가능 클로저 (Closure)
"외부함수의 변수에 접근할 수 있는 내부함수"
"함수와 함수가 선언된 어휘적(lexical) 환경의 조합을 말한다.
이 환경은 클로저가 생성된 시점의 유효 범위 내에 있는 모든 지역 변수로 구성된다."함수를 리턴하는 함수 / 함수를 리턴하는 함수가 클로저의 형태를 만든다.
"내부 함수는 외부 함수에 선언된 변수에 접근 가능하다"
반응형'Topic > JavaScript' 카테고리의 다른 글
고차함수, map, filter, reduce (0) 2021.11.30 spread, rest, 구조분해, 화살표함수, 배열, 객체 (0) 2021.11.25 slice() / splice() / 수도코드의 중요성 / 로직 (0) 2021.11.22 자바스크립트 mutable / immutable (0) 2021.11.22 조건문, 문자열, 반복문, 배열, for in, for of, split(), join() (0) 2021.11.20