Gio_J
Gio's dev archive
Gio_J
전체 방문자
오늘
어제
  • 분류 전체보기 (20)
    • PS (10)
      • BOJ (8)
      • Programmers (2)
    • CS (0)
      • Operating System (0)
      • Network (0)
      • Data Base (0)
    • Data Structure (0)
    • Algorithm (0)
    • JavaScript (9)
      • DeepDive (9)
    • React (0)
    • Tools (1)

블로그 메뉴

  • 홈
  • GitHub
  • solved
  • 태그
  • 방명록

공지사항

인기 글

태그

  • PS
  • boj
  • Visual Studio Code
  • programmers
  • JS
  • DeepDive
  • vscode
  • c++
  • javascript

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Gio_J

Gio's dev archive

JavaScript/DeepDive

[JavaScript] 원시타입과 객체타입의 차이

2022. 7. 13. 19:39

이 글은 자바스크립트를 저 나름대로 공부하고 작성하는 글로

잘못된 내용이 존재할 수 있습니다. 잘못된 내용을 발견하면 언제든 지적 부탁드립니다.

 

 

원시 타입(Primitive Type) vs 객체 타입(Object Type)

 

자바스크립트의 데이터 타입은 크게 원시 타입과 객체 타입으로 나눌 수 있다. 

원시 타입의 경우 숫자형, 문자열 등등 다양한 타입이 존재하고 객체타입의 경우 단순히 객체 타입이라고 한다.

이를 나누는 근본적인 차이는 어떤게 있을까?

 

단순히 객체타입의 경우 프로퍼티를 가지고 이는 Key : Value 형태고 원시타입은 값이라고 말할 것이다. 이 또한 맞는 말이지만 가장 큰 차이는 변수를 통해 해당 타입을 호출했을 때 처리가 되는 방식이라고 생각한다.

 

원시 타입의 경우 변수에 할당을 하게 되면 그에 상응하는 값이 복사되어 변수에 저장되게 된다. 

따라서 이를 다른 변수에 복사하고 기존 변수를 다른 값으로 변경한다고 해서 해당 두 변수 모두 변경되는 것이 아니라 값을 변경해준 원래 변수만이 변경된다.

 

하지만 객체타입의 경우 변수에 할당하게 되면 객체의 참조값(주소)가 변수에 할당되고, 이를 다른 변수에 복사하면 해당 참조(주소)값이 다른 변수에 복사되므로 기존 변수에 객체의 값을 추가하거나 변경하게 되면 변수에 할당된 주소로 이동하여 해당하는 데이터를 변경하는 것임으로 두 변수에 있는 객체가 동시에 변경되는 것을 확인할 수 있다.

 

 

'JavaScript > DeepDive' 카테고리의 다른 글

[JavaScript] 객체 리터럴  (0) 2022.07.14
[JavaScript] 타입변환과 단축평가  (0) 2022.07.14
[JavaScript] 제어문  (0) 2022.07.07
[JavaScript] 표현식과 연산자  (0) 2022.07.07
[JavaScript] 데이터 타입  (0) 2022.07.07
    'JavaScript/DeepDive' 카테고리의 다른 글
    • [JavaScript] 객체 리터럴
    • [JavaScript] 타입변환과 단축평가
    • [JavaScript] 제어문
    • [JavaScript] 표현식과 연산자
    Gio_J
    Gio_J
    dev archive

    티스토리툴바