본문 바로가기
Javascript&Typescript

[Javascript] 변수

by clolee 2024. 11. 25.

데이터 타입

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';

 

 

 

참고 :

https://www.youtube.com/watch?v=__Zz17_5FRU

댓글