jineecode

type에 따른 할당 본문

JS

type에 따른 할당

지니코딩 2021. 10. 28. 11:42

Primitive data type

문자, 숫자 자료형

 

let name1 = '김';
let name2 = name1;
name1 = '박';

console.log(name1);
박

console.log(name2);
김

 

Reference data type

Array, Object 자료형

이 타입은 자료를 변수에 직접 저장하지 않고, Reference를 변수에 저장함

let name3 = { name : '김' };
let name4 = name3;
name3.name = '박';

console.log(name3);
// {name: '박'}

console.log(name4);
// {name: '박'}

객체를 복사한 게 아닌, 객체를 가리키는 화살표를 복사한 것!

 

Q. Reference??

A. 컴퓨터 메모리 상의 어떤 곳. 

C언어의 포인터 같은 개념이지만 C언어처럼 포인터 주소같은 개념은 다루지 못함

 

 

let name5 = { name : '김' };

function changeName(obj){
  obj = { name : 'park' };
}

changeName(name5);

console.log(name5);

//{name: '김'}

obj 에 새롭게 object를 할당하면, 새로운 Reference(화살표)가 생겨 가리키는 것이기 때문에 원래의 name5에는 변화가 없다.

(name5라는 변수는 전혀 건드리지 않는 것임.)

 

var name5 = { name : '김' };

function 변경(obj){
  obj.name  = 'park';
}

변경(name5);
console.log(name5);

'JS' 카테고리의 다른 글

Object.keys()  (0) 2021.11.29
constructor / prototype / Object.create() / class  (0) 2021.10.28
Chart.js (2)  (2) 2021.10.28
default parameter / arguments / rest parameter  (0) 2021.10.25
Spread Operator 활용법  (0) 2021.10.25
Comments