4장. 변수

Happhee·2022년 1월 14일
0

JS : Depp Dive

목록 보기
1/35
post-thumbnail

애플리케이션은 데이터를 다루고, 그 데이터의 입력출력을 가지고 작동한다. 그래서 변수는 이에 대한 데이터 관리를 하기위해 등장한 개념이라고 할 수 있다.

만약에 10 + 20 이라는 표현식이 있으면, 먼저, 이를 10,20, +라는 리터럴과 연산자를 평가하고, 이를 해성하는 파싱도 가능해야한다

하지만, 컴퓨터는 사람과 달리, 연산을 수행하는 곳과 데이터를 기억하는 곳이 나누어져 있다
컴퓨터는 CPU를 사용해 연산을 하고, 메모리를 사용해 기억을 한다

이때, 메모리는 셀의 집합체 이며, 셀 하나의 크기는 1바이트(8비트)로 이루어져 있다.
그리고 각 셀은 고유의 메모리 주소를 가지고 있으며, 이는 메모리 공간위치를 가리킨다.

또한, 컴퓨터는 모든 데이터를 2진수로 처리한다.

1. variable (변수)

  • 하나의 값을 저장하기 위해 확보한 메모리 공간 자체또는 메모리 공간 식별을 위해 붙인 이름
  • 값의 위치를 가리키는 상징적인 이름
  • 변수에 값을 저장하는 것은 할당
  • 저장된 값을 읽어들이는 것은 참조

2. indentifier (변수 이름)

식별자

  • 어떤 값을 구별해서 식별할 수 있는 고유한 이름
  • 값이 아니라 메모리 주소를 가리키고 있음

3. 변수 선언

변수를 사용하려면 반드시 선언이 필요하다
var let const

  • 초기화 단계는 암묵적으로 undefined 할당하여 초기화
  • 선언하지 않은 식별자에 접근하면 ReferenceError 에러 발생

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

변수 선언이 소스코드가 한 줄씩 순차적으로 실행되는 시점,
런타임이 아니라 그 이전 단계에서 먼저 실행됨

console.log(score); // undefined 변수 인지는 이미 되어있음! 다만 할당이 안되어있기에!

var score; // 변수 선언문

변수 호이스팅

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

선언하는 모든 식별자는 호이스팅이 된다

5. 값의 할당

할당 연산자는 우변의 값을 좌변의 변수에 할당

var score //변수 선언
score = 80 //할당

console.log(x)		//undefined

var x;
x = 10;

console.log(x);		// 10

변수 선언은 소스코드가 순차적으로 실행되는 시점인 런타임 아전에 실행되지만,
값의 할당은 소스코드가 순차적으로 실행되는 시점인 런타임에 실행

6. 값의 재할당

  • 값을 재할당할 수 없어서 변수에 저장된 값을 변경할 수 없다면 const 상수 이다
  • garbage collector
    할당한 메모리 공간을 주기적으로 검사하여 더이상 사용되지 않는 메모리를 해제하는 기능
    ES2021 -> Finalize
    WeakRef 약한 참조를 건다
profile
즐기면서 정확하게 나아가는 웹프론트엔드 개발자 https://happhee-dev.tistory.com/ 로 이전하였습니다

0개의 댓글