데이터 타입
primitive type
number, string, boolean, null, undefined, symbol : 가장 작은 단위 데이터타입
이 가장 작은 데이터 : primitive data type
변수 선언과 동시에 메모리에 변수를 위한 공간이 생김
let number = 2
let number2 = number // number 변수에 들어있는 데이터를 복사해 할당
let number2 = 3 // 업데이트
// number들어있는 데이터가 복사되어 number2에 들어갔기 때문에 number2 업데이트해도 number에 영향 주지 않음
console.log(number); // 2
console.log(number2); // 3
object type
number, string, boolean, null, undefined, symbol 제외한 모든 데이터 타입 ( 배열, 리스트, 함수 ...)
하나이상의 데이터를 묶어 놓은 형태
object 의 key마다 메모리 할당
object 의 위치를 가리키는 주소인 reference는 object 변수에 할당
const obj = {
name: 'ellie',
age: 5,
}
// obj가 가리키는 곳에 name 변수에 저장된 값
console.log(obj.name)
// obj2에 obj가 가진 주소값이 복사
let obj2 = obj;
// obj가 가리키는 곳에 name 변수에 저장된 값
console.log(obj2.name)
obj.name = 'james';
// 모두 james. obj, obj2 모두 가리키고 있는 object가 동일하기 때문
console.log(obj.name)
console.log(obj2.name)
새로운 변수에 할당 시 변수에 들어있는 값이 복사되어서 들어옴
primitive type은 변수에 데이터가 담겨있어 데이터 자체가 복사됨
object type은 변수에 object를 가리키는 주소가 들어있어 그 주소값만 복사됨
const 로 정의한 변수는 변경 불가
object 는 const로 선언해도
obj변수에 obj가 가리키는 reference가 저장됨. 자체 reference는 변경 불가
const obj = {
name: 'ellie',
age: 5,
}
// reference를 다른 refernce로 변경 불가.
obj = {
name: 'james',
age: 5,
}
// reference가 가리키는 값은 변경 가능
obj.name = 'james';
참고 :
'Javascript&Typescript' 카테고리의 다른 글
[Javascript] 데이터타입 (0) | 2024.11.25 |
---|---|
[Javascript] variable 과 !!variable - Double Exclamation Mark (1) | 2024.03.06 |
[Javascript] throw Error 와 console.error 차이 (0) | 2024.02.28 |
[Javascript] typeerror (intermediate value) is not iterable (0) | 2024.02.28 |
[Typescript] function (0) | 2024.02.13 |
댓글