반응형
11-22 03:58
- Today
- Total
Link
개발하는 고라니
[Javascript] 참조와 복제 본문
반응형
# 참조와 복제
> 참조를 알아보기 전 '복제'에 대해 먼저 알아보자.
# 복제
> 전자화된 시스템의 가장 중요한 특징은 복제이다. 현실의 사물과 다르게 전자화된 시스템 위의 데이터를 복제 하는데는 비용이 거의 들지 않는다. 바로 이러한 특징이 소프트웨어를 기존의 산업과 구분하는 가장 큰 특징일 것이다. 프로그래밍에서 복제가 무엇인지 알아보자.
var a = 1;
var b = a;
b = 2;
console.log(a); // 1
> 결과는 당연하다. 값을 변경한 것은 변수 b이기 때문에 변수 a에 담겨있는 값은 그대로이다. 변수 b의 값에 변수 a의 값이 복제된 것이다.
> var b = a; 일 때, a는 1을 가리키고 있다. 이 때 b는 a의 주소를 가리키는 것이 아닌 a의 데이터를 다른 주소에 따로 복사해서 그 데이터를 가리킨다.
즉, a와 b가 가리키는 데이터 값은 같지만, 데이터의 주소는 다르다. 그러므로 b = 2라는 문장으로 b가 가리키는 데이터를 변경해도 a가 가리키는 데이터의 값은 1로 동일하다.
> 변수의 값이 원시 데이터 타입(Primative Data Type)일 때 가능하다.
(String, Number, Boolean, null, undefined)
# 참조
var a = {'id':1};
var b = a;
b.id = 2;
console.log(a.id); // 2
- 변수 b에 담긴 객체의 id값을 2로 변경했는데, a.id의 값도 2가 된다. 이것은 변수 b와 변수 a에 담긴 객체가 서로 같다는 것을 의미한다. 이를 참조(Reference)라고 한다.
- 변수의 값이 객체(Object)일 때 가능하다.
a = 1;
a = {'id':1};
> 위 두 개 구문의 차이는 무엇일까?
- a = 1의 데이터 형은 숫자(원시 데이터 타입)이고, a = {'id':1}의 데이터 형은 객체이다.
- 자바스크립트에서 원시 데이터형을 제외한 모든 데이터 타입은 객체이다.
- 객체는 다른 말로는 참조 데이터 형(참조 자료형)이라고도 부른다.
- 기본 데이터 타입은 복제가 되지만, 참조 데이터 형은 참조된다.
< 본 포스트의 내용은 '생활코딩' 유튜브를 참조하였습니다. >
반응형
'Languages > JS' 카테고리의 다른 글
[Javascript] Drag & Drop 파일 업로드 (0) | 2021.04.27 |
---|---|
[Javascript] 이벤트 기반의 윈도우 프로그래밍 (0) | 2021.04.14 |
[JQuery] checkbox (0) | 2021.02.23 |
[Javascript] 문자열 찾기 (0) | 2021.01.04 |
[Javascript] '==' 와 '===' (동등 연산자와 일치 연산자) (0) | 2020.12.08 |
Comments