[모던자바스크립트] 4. 변수

이아현·2023년 7월 27일
0
post-thumbnail

1. 변수

  • 자바스크립트에서 값이 저장된 메모리 주소는 코드가 실행될 때 메모리의 상황에 따라 임의로 결정
  • 따라서, 동일한 컴퓨터에서 동일한 코드를 실행해도 코드가 실행될 때마다 값이 저장될 메모리 주소는 변경됨
  • 변수
    • 하나의 값을 저장하기 위해 확보한 메모리 공간 자체
    • 또는 그 메모리 공간을 식별하기 위해 붙인 이름
    • 값의 위치를 가리키는 상징적인 이름
  • 할당
    • 변수에 값을 저장하는 것
    • 대입, 저장
  • 참조
    • 변수에 저장된 값을 읽어 들이는 것

2. 식별자

  • 어떤 값을 구별해서 식별할 수 있는 고유한 이름
  • 변수 이름을 식별자라고도 함
  • 식별자는 값이 아니라 메모리 주소를 기억
  • 선언에 의해 자바스크립트 엔진에 식별자의 존재를 알림

3. 변수 선언

  • 변수 선언이란 변수를 생성하는 것
  • 변수를 사용하기 위해서는 반드시 선언이 필요함
  • 자바스크립트에서는 var, let, const 키워드를 사용하여 변수를 선언함
  • 확보된 메모리 공간은 비어있지 않고 자바스크립트 엔진에 의해 undefined라는 값이 암묵적으로 할당되어 초기화된다.
  • var
    • 뒤에 오는 변수 이름으로 새로운 변수를 선언할 것을 지시하는 키워드
    • ES6에서는 var의 단점을 보완하기 위해 let, const 키워드를 도입함
  • 변수 선언의 단계
    1. 선언 단계 : 변수 이름을 등록해서 자바스크립트 엔진에 변수의 존재를 알림
    2. 초기화 단계 : 값을 저장하기 위한 메모리 공간을 확보, 암묵적으로 undefined를 할당해 초기화

4. 변수 선언의 실행 시점과 변수 호이스팅

  • 변수 선언은 런타임(소스 코드가 한 줄씩 순차적으로 실행되는 시점)이 아니라 그 이전 단계에서 먼저 실행됨
  • 자바스크립트 엔진은 변수 선언을 포함한 모든 선언문(변수, 함수 선언문)을 소스코드에서 찾아내 먼저 실행함
  • 변수 호이스팅
    • 변수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징
    console.log(score); // undefined
     var score;

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;
profile
PM을 지향하는 FE 개발자 이아현입니다 :)

0개의 댓글