03.Value Types and Reference Types

a에 50을 부여하고, b에 a를 부여한 후에 a에 다시 10을 부여하면 b의 값은 어떻게 될까.

위와 같이 b는 여전히 50이다. 

 

let b = a; 

 

b에 a를 부여하는 시점에 a가 가지고 있는 값(value)이 복붙되기 때문이다. 

 

그렇다면 Reference에 대해 알아보자. 

aaa에 배열을 만들어 "one"과 "two"를 넣고

bbb에 aaa를 부여한 후, aaa에 "three" 값을 push시켜 보았다. 

bbb를 출력하면,  ["one", "two", "three"]가 출력된다.

 

bbb에 aaa를 부여하는 시점에 aaa의 값(value)이 복사되었다면 "one"과 "two"만 출렸되었을 것이다. 

이러한 경우 값에대한 복사가 아니며

aaa 가 배열을 참조하고 있으며, bbb도 aaa가 참조하고 있는 값을 동일하게 참조하고 있는 것이다.

 

value는 string, number, boolean, NaN, undefined, null만 가능하고,

Reference는 array, obejct, function에서 사용 될 수 있다.

+ Recent posts