(TIL) 원시 자료형과 참조 자료형
원시 자료형 (Primitive Data Type)
객체가 아니면서 메소드를 가지지 않는 6가지의 타입의 자료형
- string : 문자
- number : 숫자
- bigint : 큰 숫자 (길이의 제약 없이 정수를 다룰 수 있게 해주는 숫자형)
- boolean : 참 또는 거짓
- null : 값이 없음 (의도적으로 비어있음을 표현)
- undefined : 정의되지 않은 값
- symbol : 고유하고 변경할 수 없는 값
let fruit = "apple";
let juice = fruit; //데이터를 복사하더라도
juice = "orange";
console.log(fruit); // 'apple' *기존의 데이터에 영향이 가지 않는다
console.log(juice); // 'orange'
참조 자료형 (Reference Data Type)
동적으로 크기가 변하는 데이터를 보관하기 위해 변수가 아닌 heap이라고 부르는 메모리상의 별도의 공간에 데이터를 저장하고 변수에는 그 데이터가 위치한 주소값만 담는다.
- 배열
- 객체
- 함수
let fruit1 = {
apple : "red"
};
let fruit2 = fruit1; // fruit1 안에 있는 주소값을 참조해온 후
fruit2.apple = "green"; // 데이터를 변동시키면,
// *해당 주소에 있는 데이터가 바뀌면서 모든 변수가 바뀐 값으로 표시된다
console.log(fruit1); // { apple: 'green' }
console.log(fruit2); // { apple: 'green' }
원시 자료형과 참조 자료형의 차이
-
원시 자료형은 변수에는 하나의 데이터만을 담을 수 있는데, 참조 자료형은 여러 데이터를 담을 수 있다.
-
참조 자료형의 변수에는 그 데이터가 위치한 메모리상의 주소(reference)값을 담는다. 그래서 같은 값이더라도 변수에 들어있는 주소값은 다르기 때문에 아래와 같은 결과를 보여준다.
let array1 = ["apple", "banana"];
let array2 = ["apple", "banana"];
console.log(array1 === array2); //false (변수에 들어있는 주소 값이 다르기 때문)
Author And Source
이 문제에 관하여((TIL) 원시 자료형과 참조 자료형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sunghwancode/TIL-원시-자료형과-참조-자료형저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)