나무 숲
TIL / Javascript 값Value, 참조Reference 본문
TIL : Today I Learned의 약자로, 대부분 깃헙에서 일일커밋을 통해 그날 배운 내용 정리하는것. 여기엔 아카이브 형식으로 + 회고 겸 간단하게 둔다!
Javascript에서 값 할당할 때
- Passed by Value : Boolean, Null, Undefined, String, Number, Symbol <- Primitive types
var variable = 1;
var copy = variable;
variable = 0;
console.log(variable); // 0
console.log(copy); // 1
- Passed by Reference : Array, Function, Object
var array = [1,2,3];
var ref = array; //값을 복사하는 것이 아니라 참조
array[0] = 0;
console.log(array); // [0,2,3]
console.log(ref); // [0,2,3]
참조 없는 복사를 하고 싶다면?
1. Json을 사용하여 직렬화 후 파싱
var array = [1,2,3];
var copy = JSON.parse(JSON.stringify( array ));
array[0] = 0;
console.log(array); // [0,2,3]
console.log(copy); // [1,2,3]
참고 : https://programmingsummaries.tistory.com/143
2. 값을 하나하나 대입
var array = [1,2,3];
var copy = [];
array.forEach(element => {
copy.push(element);
});
array[0] = 0;
console.log(array); // [0,2,3]
console.log(copy); // [1,2,3]
3. ES6 방법 (->IE 지원안됨)
var array = [1,2,3];
var copy = [...array];
array[0] = 0;
console.log(array); // [0,2,3]
console.log(copy); // [1,2,3]
참고 : https://www.samanthaming.com/tidbits/35-es6-way-to-clone-an-array
4. Slice 사용
var array = [1,2,3];
var copy = array.slice();
array[0] = 0;
console.log(array); // [0,2,3]
console.log(copy); // [1,2,3]
728x90
반응형
'Career > 웹' 카테고리의 다른 글
웹 개발 IDE 추천!! CodeSandbox (0) | 2020.03.09 |
---|---|
TIL / Javascript 가변인자 (0) | 2020.01.06 |
아마존 웹 서비스AWS EC2 웹서버 (2) (2) | 2018.08.01 |
아마존 웹 서비스AWS EC2 웹서버 (1) 구축-연결 (무료!) (0) | 2018.07.29 |
성공적인 웹 개발자가 되기 위한 21단계 (번역) (1) | 2018.07.13 |
Comments