[JS] 변수(Variable)

dk.han·2022년 10월 7일
0
post-thumbnail

변수

컴퓨터의 구성요소

컴퓨터를 구성하는 가장 중요한 3가지

  • 하드디스크 (저장장치)
  • CPU (연산장치)
  • 메모리 (데이터를 빠르게 읽고 쓰기위해 임시적으로 저장해놓는 곳)

컴퓨터에서 문서파일을 실행시킬 때 발생하는 일

  1. 하드디스크에 저장된 파일을 선택 하면 어떻게 열것인지 연산하는 작업을 CPU가 처리하고
  2. 메모리로 파일을 가져와 사용자가 수정하는 내용을 메모리에 주기적으로 업데이트하고
  3. 작업한 내용을 최종 저장하고 어플리케이션을 종료하면 하드디스크에 다시 저장.

메모리는 총 4가지 영역으로 구성되어져 있다.

  • Code : 개발자가 작성한 코드가 들어있는 곳.
  • Data : 어플리케이션에서 전반적으로 필요한 변수들 보관.
  • Stack : 실행순서를 보관하는 곳.
  • Heap : 복잡한 데이터(객체)들을 보관하는 곳.

변수란?

  • 값을 저장하는 공간
  • 자료를 저장할 수 있는 이름이 주어진 기억장소.

데이터 타입

  • 원시타입 (Primitive Type)
    number, string, boolean, null, undefined, symbol

    let a = 1
    a = 2;

    변수명 a는 값이 저장된 메모리 셀을 가르키고, 메모리 셀 안에는 값 1이 저장된다.
    재할당 할 경우, 메모리 셀 안에 저장된 1이 2로 바뀌어 저장된다.

  • 참조타입 (Reference Type)
    object, function

    const apple = {
      name: 'apple',
      color: 'red',
      pirce: 123123,
    };
    let copy = apple;
    apple.color = 'blue'

    변수명 apple은 메모리 셀을 가르키고, 메모리 셀 안에는 값이 아닌 데이터들이 저장되어 있는 참조값(메모리의 주소값)이 저장된다.
    데이터들은 heap에 따로 저장되어 있다. 때문에 copy에 apple을 할당하게 되면 데이터가 아닌 참조값이 할당되기 때문에, apple.color를 blue로 변경하게되면 copy.color 와 apple.color가 같은 값을 가진다.

let , const

  • let은 재할당이 가능하다.
  • const는 재할당 불가능, 그래서 상수처럼 쓰고싶을때 주로 사용한다.
const apple = {
  name: 'apple',
  color: 'red',
  pirce: 123123,
};

apple.name = 'orange';
apple.pirce = 5555;

const는 재할당이 불가능 하다고 했지만, obj의 경우는 다르다.
위에서도 설명했지만, 데이터들은 heap에 따로 보관되어 있기 때문에 값 변경이 가능하다.
const apple 변수선언 의미는 apple이 가르키고 있는 메모리 셀안에 있는 참조값을 변경할 수 없다는 의미.

Reference

자바스크립트 마스터리 (ES6+ 최신 문법)

0개의 댓글