[JavaScript] Object의 참조 2

·2022년 2월 3일
0

JavaScript

목록 보기
5/9
post-thumbnail

Object의 참조 추가

타입은 원시형과 객체형으로 나뉜다.

원시형

Primitive Type의 특징은

  1. 한번에 한가지만 다룬다.
  2. 할당, 연산 시 데이터가 그대로 복제된다. (새로 메모리를 차지한다)
Number, String, Boolean, Null, Undefined, BigInt, Symbol

변수에 들어가는 타입은 저들중 하나만 들어갈 수 있다.

const type1 = 13 // 가능
const type2 = 13'반가워잉' // 불가능. Syntax error

넹? 연산자 +로 되는거 아님? 크크루삥뽕

const type3 = 13 + '반가워잉' // 가능

그건 말 그대로 연산된 값이다. 지건!


객체형

객체형이란, 위의 Primitive Type을 제외한 모든 형식이다.

Object Type의 특징은

  1. Referencial Type
  2. 여러가지 Type을 다룰 수 있다.
  3. {}로 생성 가능
  4. 할당, 연산 시 데이터가 복제되는게 아니라, 다른 주소를 주는 것이다.
const hell = {
  rabbit: 13,
  bear: '곰이당',
  dog() {
  	return 999
  }, // function 생략 가능
  frog: true,
  ...
}

여러가지 타입을 다룬다는건 저걸 봐서 알겠다.
key와 value로 이루어졌거나, function이 들어갈 수 있구낭..
근데 Referencial Type이 뭘까?

'참조형'이란 말 그대로 진짜 그 값이 아니라, '참조'만 한다는 뜻이다.
그래서 그 참조가 뭐냐고 십덕아..

Referencial Type인 객체형들은 Primitive Type들과 달리
복제를 하면 본체는 따로 있고 그 본체로 갈 수 있는 다양한 열쇠를 복사해준다고 이해하면 된다.

나보다 5억배정도 설명 잘해준 JavaScript.info를 봐도 좋다.

const hell = {
  rabbit: 13,
  bear: '곰이당',
  dog() {
  	return 999
  }, // function 생략 가능
  frog: true,
  ...
};
  
const heaven = hell;

hell === heaven // false

같은 값들이어도 false가 뜨는 이유는 각각의 열쇠들, 즉 주소가 다르기 때문이다~!!


hell.cat("귀여워");

요렇게 해두면 주소에 새로운 값을 추가한거니까

heaven.cat -> "귀여워"

추가 완~!

profile
어?머지?

0개의 댓글