
타입은 원시형과 객체형으로 나뉜다.
원시형
Primitive Type의 특징은
Number, String, Boolean, Null, Undefined, BigInt, Symbol
변수에 들어가는 타입은 저들중 하나만 들어갈 수 있다.
const type1 = 13 // 가능
const type2 = 13'반가워잉' // 불가능. Syntax error
넹? 연산자 +로 되는거 아님? 크크루삥뽕
const type3 = 13 + '반가워잉' // 가능

그건 말 그대로 연산된 값이다. 지건!
객체형
객체형이란, 위의 Primitive Type을 제외한 모든 형식이다.
Object Type의 특징은
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 -> "귀여워"
추가 완~!