Language | Basic/JavaScript

[JavaScript 스터디] 변수

주정용 2021. 1. 22. 00:31
728x90

http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&linkClass=3314&barcode=9791158392239

변수

자바스크립트는 개발자의 메모리 제어를 허용하지 않음

  • 값을 저장하기 위해 확보한 메모리 공간, 그 공간을 식별하기 위한 이름
  • 컴파일러/인터프리터에 의해 메모리 공간의 주소로 치환되어 실행됨
  • 자바스크립트는 대소문자 구분

식별자

변수 이름 == 식별자

  • 식별자는 메모리 주소를 가지고 있음
  • 변수, 함수, 클래스의 이름은 모두 식별자임
  • 식별자는 네이밍 규칙을 준수해야 함
  • 모든 식별자는 실행 컨텍스트에 등록됨
  • 선언하지 않은 식별자를 호출하면 ReferenceError가 발생함

변수 선언

  • 키워드를 사용함
  • var : 함수 레벨 스코프
  • let : 블록 레벨 스코프, 변수
  • const : 블록 레벨 스코프, 상수
  • var로 선언된 변수는 값을 할당하지 않아도 undefined가 할당됨

자바스크립트 엔진은 2단계에 걸쳐서 변수를 선언함

  1. 선언 단계 : 변수 이름을 등록해서 JS 엔진에 변수의 존재를 알림
  2. 초기화 단계 : 메모리 공간을 확보하고, 암묵적으로 undefined를 할당함

변수 호이스팅

  • 자바스크립트 엔진에서 변수 선언은 소스의 어느 곳에 있든 가장 먼저 실행됨
  • 모든 식별자(함수나 클래스 등)는 호이스팅됨
  • 모든 선언문은 런타임 이전에 실행됨

값 할당

  • 변수 선언은 런타임 이전에 실행됨
  • 값의 할당은 런타임에 실행됨

학습 도서

  • '모던 자바스크립트 Deep Dive', 이웅모 저, 위키북스

http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&linkClass=3314&barcode=9791158392239