728x90
http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&linkClass=3314&barcode=9791158392239
변수
자바스크립트는 개발자의 메모리 제어를 허용하지 않음
- 값을 저장하기 위해 확보한 메모리 공간, 그 공간을 식별하기 위한 이름
- 컴파일러/인터프리터에 의해 메모리 공간의 주소로 치환되어 실행됨
- 자바스크립트는 대소문자 구분
식별자
변수 이름 == 식별자
- 식별자는 메모리 주소를 가지고 있음
- 변수, 함수, 클래스의 이름은 모두 식별자임
- 식별자는 네이밍 규칙을 준수해야 함
- 모든 식별자는 실행 컨텍스트에 등록됨
- 선언하지 않은 식별자를 호출하면 ReferenceError가 발생함
변수 선언
- 키워드를 사용함
- var : 함수 레벨 스코프
- let : 블록 레벨 스코프, 변수
- const : 블록 레벨 스코프, 상수
- var로 선언된 변수는 값을 할당하지 않아도 undefined가 할당됨
자바스크립트 엔진은 2단계에 걸쳐서 변수를 선언함
- 선언 단계 : 변수 이름을 등록해서 JS 엔진에 변수의 존재를 알림
- 초기화 단계 : 메모리 공간을 확보하고, 암묵적으로 undefined를 할당함
변수 호이스팅
- 자바스크립트 엔진에서 변수 선언은 소스의 어느 곳에 있든 가장 먼저 실행됨
- 모든 식별자(함수나 클래스 등)는 호이스팅됨
- 모든 선언문은 런타임 이전에 실행됨
값 할당
- 변수 선언은 런타임 이전에 실행됨
- 값의 할당은 런타임에 실행됨
학습 도서
- '모던 자바스크립트 Deep Dive', 이웅모 저, 위키북스
'Language | Basic > JavaScript' 카테고리의 다른 글
[JavaScript 스터디] 데이터의 타입 변환, 단축 평가 (0) | 2021.01.22 |
---|---|
[JavaScript 스터디] 제어문 (0) | 2021.01.22 |
[JavaScript 스터디] 연산자 (0) | 2021.01.22 |
[JavaScript 스터디] 데이터 타입 (0) | 2021.01.22 |
[JavaScript 스터디] 표현식과 문 (0) | 2021.01.22 |