1. 변수
- 자바스크립트에서 값이 저장된 메모리 주소는 코드가 실행될 때 메모리의 상황에 따라 임의로 결정
- 따라서, 동일한 컴퓨터에서 동일한 코드를 실행해도 코드가 실행될 때마다 값이 저장될 메모리 주소는 변경됨
- 변수
- 하나의 값을 저장하기 위해 확보한 메모리 공간 자체
- 또는 그 메모리 공간을 식별하기 위해 붙인 이름
- 값의 위치를 가리키는 상징적인 이름
- 할당
- 참조
2. 식별자
- 어떤 값을 구별해서 식별할 수 있는 고유한 이름
- 변수 이름을 식별자라고도 함
- 식별자는 값이 아니라 메모리 주소를 기억
- 선언에 의해 자바스크립트 엔진에 식별자의 존재를 알림
3. 변수 선언
- 변수 선언이란 변수를 생성하는 것
- 변수를 사용하기 위해서는 반드시 선언이 필요함
- 자바스크립트에서는 var, let, const 키워드를 사용하여 변수를 선언함
- 확보된 메모리 공간은 비어있지 않고 자바스크립트 엔진에 의해 undefined라는 값이 암묵적으로 할당되어 초기화된다.
- var
- 뒤에 오는 변수 이름으로 새로운 변수를 선언할 것을 지시하는 키워드
- ES6에서는 var의 단점을 보완하기 위해 let, const 키워드를 도입함
- 변수 선언의 단계
- 선언 단계 : 변수 이름을 등록해서 자바스크립트 엔진에 변수의 존재를 알림
- 초기화 단계 : 값을 저장하기 위한 메모리 공간을 확보, 암묵적으로 undefined를 할당해 초기화
4. 변수 선언의 실행 시점과 변수 호이스팅
5. 값의 할당
- 변수 선언은 소스코드가 순차적으로 실행되는 시점인 런타임 이전에 먼저 실행됨
- 값의 할당은 소스코드가 순차적으로 실행되는 시점인 런타임에 실행됨
6. 값의 재할당
var score = 80; // 변수 선언과 값의 할당
score = 90; // 값의 재할당
console.log(score); // 90
- var 키워드로 선언한 변수는 값을 재할당할 수 있음
- 만약 값을 재할당할 수 없어서 변수에 저장된 값을 변경할 수 없다면 변수가 아니라 상수(constant)라고 함
7. 식별자 네이밍 규칙
// 카멜 케이스(camelCase)
var firstName;
// 스네이크 케이스(snake_case)
var first_name;
// 파스칼 케이스(PascalCase)
var FirstName;
// 헝가리안 케이스 (typeHungarianCase)
var strFirstName;