본문 바로가기

Today I Learned

모던 자바스크립트 Deep Dive 4장 변수

🔑 키워드 정리

  • 파싱(parsing) : 문자나 기호로 구성된 표현식의 의미를 해석하는
  • 호이스팅 (hoisting) :  변수 선언문이 코드 어디에 위치하건 코드의 가장 위로 올려진 것처럼 동작하는 특징
  • 가비지 콜렉터 (garbage collector) : 이상 사용되지 않는 메모리(=어떤 식별자도 참조하지 않는 메모리 공간) 해제하는 기능.
  • 매니지드 언어(managed language) 언매니지드 언어(unmanaged language) : 메모리 제어를 허용하지 않는 언어와 허용하는 언어.

🗒 내용 정리

  • 변수
    1. 변수란 값을 저장하기 위한 메모리 공간이자 값의 위치를 가리키는 상징적인 이름이다.
    2. 변수 이름을 식별자라고도 한다. 값을 구별할  있는 고유한 이름이다. 값이 아니라 메모리 주소를 기억한다. 변수, 함수, 클래스 모두 식별자이다.
  • var 키워드
    1. var 키워드의 단점은 블록 레벨 스코프를 지원하지 않고, 함수 레벨 스코프를 지원한다는 것이다. (15.1절 참고)
    2. 선언을 할 때마다 undefined 라는 값으로 초기화를 진행하므로 쓰레기 값이 생기는 문제로부터 비교적 안전하다.
  • 기타
    1. 자바스크립트는 개발자의 직접적인 메모리 제어를 허용하지 않는다. 메모리 주소는 코드가 실행될  임의로 결정된다.
    2. 변수 호이스팅은 런타임 이전에 실행된다. 반면에 값의 할당은 런타임에 실행된다. (23 참고)
    3. 자바스크립트에서는 변수나 함수 이름에는 카멜 케이스, 생성자 함수나 클래스 이름에는 파스칼 케이스가 사용된다.
      // 카멜 케이스
      var testName;
      // 파스칼 케이스
      var TestName;