[Javascript] 기본형과 참조형

crystal·2023년 1월 2일

자바스크립트

목록 보기
1/2

Javascript 기본형 데이터 (Primitive Type, 원시 타입)

  • 원시 자료형은 변경이 불가능한 값을 의미합니다.
  • 원시 자료형에는 6가지인 string, number, boolean, undefined 등이 있다.
  • 이러한 원시자료형은 변수가 할당될 때 메모리 고정 크기로 값을 저장하고, 해당 주소를 참조합니다.
  • 불변성의 특징을 가지고 있습니다.
  • 예를 들어 let a는 10의 변수를 만들었을 때 a의 대한 값을 2로 변경하면 새로운 메모리가 생성되고, 그것을 참조하는 주소만 변경되어집니다.

(1) 기본형

  • 객체가 아니면서 method를 가지지 않는 6가지의 타입이 있다.
  • 원시 자료형은 모두 하나의 정보, 즉 데이터를 담고 있다.
  1. String
  2. Number
  3. Boolean
  4. Symbol
  5. Null
  6. Undefined

  • ⭐ 원시타입은 변경이 불가능한 값
  • 변수값을 변경하는 것과 값을 변경하는 것을 혼동하는 경우가 많은데
    메모리에 있는 값을 변경할 수 없다는 의미이다.
    • 변수 : 하나의 값을 저장하기 위해 확보한 메모리 공간 자체, 이를 식별하기위해 붙인 이름
    • 값 : 변수에 저장된 데이터 자체
  • 변수에 값을 재할당할 때 이전에 저장된 메모리 공간의 값을 바꾸는 것이 아니라 새로운 메모리 공간에 재할당하는 값을 저장한다. 즉, 값을 서로 다른 메모리에 할당한다.
  • 그렇기 때문에 원시타입은 불변성을 띈다.

Javascript 참조형 데이터 (Reference Type)

  • 참조 자료형은 변경이 가능한 값을 의미합니다.
  • 대표적인 예시에는 객체, 배열, 함수가 있습니다.
  • 예를 들어 let a에 해당하는 배열을 만들고 let b를 만들어서 a 배열을 선언 했을 때 b에 대한 데이터를 바꾸면 a의 배열 값도 바뀌게 됩니다.

(2) 객체 타입

자바스크립트는 객체기반의 프로그래밍 언어이며, 자바스크립트를 구성하는 거의 모든 것이 객체이다. 원시타입을 제외한 나머지 값(함수, 배열, 정규 표현식)은 객체이다.

  • 객체는 0개 이상의 프로퍼티로 구성된 집합이며, key : value로 구성된다.
  • 객체는 프로퍼티의 개수가 정해져 있지 않으며, 동적으로 추가되고 삭제할 수 있다.
  • js에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있다. 함수도 프로퍼티의 값이 될 수 있다.

  • ⭐ 객체타입은 변경가능한 값이다.

  • 원시값을 할당한 변수가 기억하는 메모리 주소를 통해 메모리 공간에 접근하면 원시값에 접근하는 것이 가능하다. 즉 원시값을 할당한 변수는 원시값 자체를 값으로 갖는다.

  • 객체를 할당한 변수가 기억하는 메모리주소를 통해 메모리 공간에 접근하면 참조값에 접근할 수 있다.

  • 참조값은 생성된 객체가 저장된 메모리 공간의 주소 그 자체이다. 참조값을 통해 객체에 접근하는 것이 가능하다.

  • 원시값을 할당한 변수를 참조하면 메모리에 저장되어 있는 원시값에 접근한다. 하지만 객체를 할당한 변수를 참조하면 메모리에 저장되어 있는 참조 값을 통해 실제 객체에 접근한다.

  • 원시 값을 갖는 변수의 값을 변경하려면 재할당외에는 방법이 없지만, 객체는 변경이 가능한 값이다. 따라서 객체를 할당한 변수는 재할당 없이 객체를 직접 변경하는 것이 가능하다.

  • 재할당 없이 프로퍼티를 동적으로 추가할 수도 있고, 프로퍼티의 값을 갱신할 수도 있으며 프로퍼티 자체를 삭제할 수도 있다.

profile
어제보다 더 나은 오늘의 내가 되자 ✧ʕ̢̣̣̣̣̩̩̩̩·͡˔·ོɁ̡̣̣̣̣̩̩̩̩✧ 

0개의 댓글