JS에 의해 값이 전달 되는 데이터의 기본 유형
변수에 "=" 를 이용하는 것은 value를 새로운 변수에게 복사 하는 것이다.
원시타입
let a = 50;
console.log(a); // a = 50
let b = a;
a= 10;
console.log(b); // 50
JS에 의해 참조가 전달 되는 데이터 유형
Object
원시 값이 아닌 값이 할당 된 변수에는 그 값에 참고하고 이 참조는 메모리에서 Object의 위치를 가리킵니다. 변수는 실제로 Value를 포함하지 않습니다.
Object는 컴퓨터 메모리의 특정 위치에 생성됩니다.
우리가 arr = []를 사용할때 메모리에 배열을 생성합니다.
변수 arr가 받는 것은 해당 배열의 이 배열의 주소, 위치입니다.
const food = ["kimchi","potato"];
const what = food
food.push("rice")
console.log(what); // ["kimchi","potato","rice"]
what.push("hello")
console.log(what); // ["kimchi","potato","rice","hello"]
console.log([10] === [10]) // false
const x = {
a:'hello'
}
const b = x;
b.a = 'lalala'
console.log(x) // {a:'lalala'}
참고:
https://codeburst.io/explaining-value-vs-reference-in-javascript-647a975e12a0
https://www.youtube.com/watch?v=hYHv5m1NMFE&list=PL7jH19IHhOLMmmjrwCi7-dMFVdoU0hhgF&index=8