JS (4) - 변수

최조니·2022년 6월 17일
0

JavaScript

목록 보기
1/36

4.1 변수란 무엇인가? 왜 필요한가?

변수 : 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름

  • 변수 : 값의 위치를 가리키는 상징적인 이름

  • 할당 (대입, 저장) : 변수에 값을 저장하는 것


4.2 식별자

식별자 : 어떤 값을 구별해서 식별할 수 있는 고유한 이름

  • 식별자는 값이 아닌 메모리 주소를 기억하고 있음
  • 변수, 함수, 클래스 등의 이름은 모두 식별자
  • 식별자는 네이밍 규칙을 준수해야 함
  • 선언에 의해 자바스크립트 엔진에 식별자의 존재를 알림

4.3 변수 선언

변수 선언 : 변수를 생성하는 것

  • 값을 저장하기 위한 메모리 공간을 확보하고, 변수 이름과 확보된 메모리 공간의 주소를 연결해서 값을 저장할 수 있게 준비

  • var, let, const 키워드 사용

  • 선언 2단계

    • 선언 단계 : 변수 이름을 등록해서 자바스크립트 엔진에 변수의 존재를 알림
    • 초기화 단계 : 값을 저장하기 위한 메모리 공간을 확보하고 암묵적으로 undefined를 할당해 초기화

- var

var score;
  • var 키워드를 사용한 변수 선언은 선언 단계와 초기화 단계가 동시 진행
  • 즉, 어떠한 값도 할당하지 않아도 undefined 값을 가짐
  • var 키워드는 암묵적으로 초기화를 수행하므로 쓰레기 값의 위험으로부터 안전

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

변수 호이스팅 : 변수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징

console.log(score); 	// undefined

var score;
  • 에러가 발생하지 않고 undefined 출력
  • 변수 선언이 소스코드가 한 줄씩 순차적으로 실행되는 시점, 즉 런타임이 아니라 그 이전 단계에서 먼저 실행되기 때문

4.5 값의 할당

할당 연산자 = 사용

var score;
score = 80;

var score = 80;
  • 변수 선언은 소스코드가 순차적으로 실행되는 시점인 런타임 이전에 먼저 실행되지만, 값의 할당은 소스코드가 순차적으로 실행되는 시점인 런타임에 실행됨
console.log(score);		// undefined

var score;				// 1. 변수 선언
score = 80;				// 2. 값의 할당

var score = 80;

4.6 값의 재할당

var score = 80;		// 변수 선언과 값의 할당
score = 90;			// 값의 재할당
  • 값을 재할당할 수 없어 변수에 저장된 값을 변경할 수 없다면 변수가 아닌 상수(constant)
  • score 변수의 이전 값인 undefined와 80은 어떠 변수도 값으로 갖고 있지 않는다. (어떤 식별자와도 연결되어 있지 않음)
  • 이러한 불필요한 값들은 가비지 콜렉터에 의해 메모리에서 자동 해제된다.
  • 단, 메모리에서 언제 해제될지는 예측할 수 없다.

4.7 식별자 네이밍 규칙

  • 식별자는 특수문자를 제외한 문자, 숫자, 언더스코어, 달러 기호를 포함할 수 있다
  • 단, 식별자는 특수문자를 제외한 문자, 언더스코어, 달러기호로 시작해야 한다.
  • 숫자로 시작하는 것은 허용하지 않는다.
  • 예약어는 식별자로 사용할 수 없다.
profile
Hello zoni-World ! (◍ᐡ₃ᐡ◍)

0개의 댓글