Javascript: 데이터 타입

감자전·2024년 7월 8일
0

자바스크립트

목록 보기
2/4

자바스크립트의 데이터 타입에는 원시 타입(Primitive Types)과 참조 타입(Reference Type)이 있다.

원시 타입(Primitive Type)

1. 숫자 타입
정수와 실수 구분 없이 하나의 숫자 타입만 존재한다.
2. 문자열 타입
텍스트 데이터를 나타내는 타입으로 "",'',`` 으로 감싼다.
3. 불리언 타입
논리적 참(ture)과 거짓(false) 값을 가진다.
4. undefined 타입
값이 할당되지 않은 변수를 나타낸다.
5. null 타입
값이 없다는 것을 의도적으로 명시할 때 사용하는 값이다.
6. symbol 타입
ES6에서 추가된 7번째 타입으로 고유하고 변경 불가능한 값을 생성하는 데 사용된다. 주로 객체의 속성 키로 사용한다. 이는 다른 코드에서 우연히 충돌하거나 오버라이드 되지 않도록 보장한다.
또한 고유성과 은닉성을 제공하여 코드의 안전성을 높이고, 반복문에서 속성을 숨길 수 있으며 여러 내장 심볼을 사용하여 객체의 기본 동작을 재정의하거나 확장할 수 있다.

null과 undefined의 차이점
null과 undeinfed는 둘 다 값이 없음을 나타내는 데 사용되지만, 그 의미와 사용되는 맥락에서 차이가 있다.
1.할당
undefined는 변수가 선언되고 값이 할당되지 않으면 자동으로 할당되지만 null은 의도적으로 값이 없다고 명시적으로 직접 할당 해줘야 한다.
2. 타입
undefined의 타입은 undefined null의 타입은 object이다 이는 null이 빈 참조를 나타내는 데 자주 사용되기 때문이다.
3. 의미
undefined는 값이 아직 초기화되지 않았음을 나타내며 null은 값이 없음을 의도적으로 명시해 변수가 이전에 참조하던 값을 더 이상 참조하지 않겠다는 의미를 가지기도 한다.

참조 타입(Reference Type)

원시 타입을 제외한 거의 모든 것(객체,배열,함수,날짜,정규표현식 등)을 참조 타입이라고 볼 수 있다.
참조 타입은 프로퍼티를 추가, 변경, 삭제가 가능하다는 특징이 있고, 이러한 성질 때문에 필요한 메모리 공간을 예측하기가 어렵다는 점이 있다.
변수에 할당하게 되면 메모리의 힙(Heap) 이라는 영역에 저장되며 변수는 이것에 대한 참조값(address)을 가지게된다.
따라서 객체는 값을 전달할 때 값을 복사하지 않고 참조값을 전달(pass by reference) 한다.

원시 타입과 참조 타입의 차이점

1. 저장 방식
원시 타입: 값이 변수에 직접 저장된다. 따라서 값을 복사하면 원래 값과 독립적인 새로운 값이 생성된다.
참조 타입: 메모리 주소를 참조하여 값을 가져온다. 변수는 실제 데이터가 저장된 메모리 주소를 가리키는 것이며, 복사할 때 이 주소가 복사된다. 따라서 두 변수는 같은 객체를 참도하게 된다.

2. 불변성
원시 타입: immutable하다. 따라서 변수에 새로운 값을 할당할 때마다 새로운 메모리 공간이 할당된다.
참조 타입: mutable하다. 객체나 배열의 속성을 변경하면 해당 참조가 가리키는 메모리 공간의 내용이 변경된다.

3. 메모리 관리
원시 타입: 값 자체가 변수에 저장되므로 비교적 작은 크기의 메모리를 사용한다.
참조 타입: 값의 참조(메모리 주소)가 변수에 저장되고 실제 데이터는 힙(Heap) 영역에 저장된다. 주로 크기가 크거나 동적으로 변경되는 데이터를 저장한다.

4. 비교 방식
원시 타입: 값 자체를 비교한다. 두 값이 동일하면 같다고 판단한다.
참조 타입: 참조(메모리 주소)를 비교한다. 두 변수가 동일한 객체를 가리키는 경우에만 같다고 판단한다.

profile
노릇노릇한 프론트엔드 감자전

0개의 댓글