reference, primitive data type
🔎 Primitive data type
자바스크립트의 자료형 (문자, 숫자, array, object 등)은 크게 Primitive & reference 두가지 타입으로 분류된다. Primitive data type
은 자료 자체가 변수에 저장되는 자료
이다. 문자, 숫자 자료형들이 대표적인 primitive data type이다.
🔎 Reference data type
reference data type은 자료를 변수에 직접 저장하는게 아닌,
자료가 저장된 위치를 알려주는 레퍼런스를 변수에 저장한다.
Array
, Object
자료형은 reference data type
에 속한다.
⭐️ reference data type의 특징
1. 등호로 복제시 값 공유가 일어난다.
//prmitive 자료형
var name1 = '김';
var name2 = name1;
name1 = '박'
console.log(name1); // '박' 출력
console.log(name2); // '김' 출력
Primitive 자료형은 위의 예제처럼 변수2에 변수1를 대입 후, 변수1의 값을 변경하면 변수1의 값만 변경되고 이미 복사된 변수2의 값은 변경되지 않는다.
//reference 자료형
var name1 = { name : 'kim' };
var name2 = name1;
name1.name = 'park';
console.log(name1); // { name : park } 출력
console.log(name2); // { name : park } 출력
Reference 타입 자료형은 해당값이 저장된 위치(reference)가 저장되어 있기 때문에 등호로 변수를 복제할 경우, 같은 값을 가르키고 있으므로 값 공유가 일어난다.
2. 각 변수에 할당된 값이 같은 경우
var name1 = { name : 'kim' };
var name2 = { name : 'kim' };
console.log(name1 === name2) //false
reference 타입 자료형은 변수에 할당된 값이 같더라도 각각의 reference가 다르므로, 자료형 비교시 false가 출력된다.
3. 함수를 이용해 값을 변경하는 경우
var name1 = { name : '김' };
function test(obj){
obj = { name : 'park' }; //오브젝트를 재할당 해주는 함수
}
test(name1); // 기존 값 '김' 출력
값을 재할당 해주는 함수를 만들어 함수를 실행시켜주면, 재할당된 값이 출력되지 않고 기존값이 그대로 출력된다. 파라미터 문법은 일종의 변수를 만드는 문법이고, 거기에 '새로운 레퍼런스를 생성해주겠습니다.'다는 의미이기 때문이다.
// 예 - 자바스크립트의 시점
var name1 = { name : '김' };
function test(obj){
var obj = { name : 'park' }; //변수 obj의 새로운 reference 생성
}
test(var obj = name1); // obj = name1 이기때문에 name1과 값공유
Author And Source
이 문제에 관하여(reference, primitive data type), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@nosiba/ES6-reference-primitive-data-type저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)