[JS/Node] 핵심 개념과 주요 문법

songha·2021년 4월 22일
0

studylog

목록 보기
5/5

원시 자료형이 할당될 때에는 변수에 값(value) 자체가 담기고, 참조 자료형이 할당될 때는 보관함의 주소(reference)가 담긴다는 개념을 코드로 설명할 수 있다.

참조 자료형

배열([])과 객체({}), 함수(function(){})

이런 특별한 데이터 보관함을 heap이라고도 부릅니다.
주소가 저장되기 때문에 reference type이라고 불립니다.
컴퓨터 공학에서는 변수가 가리키고(refer)있는 데이터의 참조한다는 의미로 사용
주소를 "참조"하여 실제 변수가 있는 장소에 어떤 데이터가 있는지 도착하고 나서야 비로소 "읽을 수" 있기 때문입니다.

스코프의 주요 규칙을 이해할 수 있다

  • 안쪽 스코프에서 바깥쪽 스코프로는 접근할 수 있지만 반대는 불가능
  • 중첩 규칙
    • 가장 바깥쪽의 스코프는 전역 스코프(Global Scope)
    • 다른 스코프는 전부 지역 스코프(local scope)
    • 지역 변수는 전역 변수보다 더 높은 우선순위를 가집니다.
  • block scope : {} 로 둘러싼 범위
    • 화상표 함수는 블록 스코프
  • function scope : 함수로 둘러싼 범위
  • let: 예측가능한 코드 작성을 위해 let 사용!
  • const : 값이 변하지 않는 상수 정의 (값 재할당 불가)
  • var : 블록 스코프를 무시
  • 전역 객체(window)의 이해
  • Strict Mode : 문법적으로 실수할 수 있는 부분들을 에러로 판단 (js 파일 상단에 'use strict' 라고 입력)
    꿀팁!
  1. 지역/전역 스코프 나누기
  2. 선언된 변수 찾고, 지역/전역 변수인지 명시
  3. 선언되지 않은 변수가 가리키는 대상 찾기 (안에서 밖으로)

지역스코프의 함수에 매개변수 x가 있으면 let 을 쓴것과 같음

클로저 함수의 정의와 특징

  • 클로저가 갖는 스코프 범위를 이해할 수 있다
    • 클로저 함수는 "함수를 리턴하는 함수"
    • 변수 및 함수 선언의 형태
    • 내부 함수는 외부 함수에 선언된 변수에 접근 가능
    • 클로저를 통해 데이터와 메소드를 같이 묶어서 다룰 수 있음 >>> 클로저는 모듈화에 유리합니다.
  • 클로저를 이용해 유용하게 쓰이는 몇 가지 코딩 패턴을 이해할 수 있다

그 시점에서 외부함수의 변수에 접근할 수 있는 내부함수
클로저 함수를 사용하는 경우 변수의 데이터가 안정함 >>> 맥락에 영향을 주지 않음 // 프라이빗 변수를 사용 할 수 있도록 해줌

🚨 클로저의 단점: 일반 함수였다면 함수 실행 종료 후 가비지 컬렉션(참고 자료: MDN '자바스크립트의 메모리 관리') 대상이 되었을 객체가, 클로저 패턴에서는 메모리 상에 남아 있게 됩니다. 외부 함수 스코프가 내부함수에 의해 언제든지 참조될 수 있기 때문입니다. 따라서 클로저를 남발할 경우 퍼포먼스 저하가 발생할 수도 있습니다.

profile
개발블로그 - https://www.notion.so/Songha-07e97c5aa2144621ae4f2b813e6d5fb7

0개의 댓글