고전적인 얕은 복사와 깊은 복사 방법
·
🖥️ Language/Core Javascript
왜? 얕은 복사와 깊은 복사를 알아야하는 이유는 불변객체를 만들기 위함이다. 우리는 참조형 데이터인 객체의 기본적 성질이 가변성인걸 알고 있다.(이전글 참고) 때문에 그 객체 자체를 생성해 불변객체를 만들 필요가 있다. 여기서 사용되는게 얕은복사, 깊은복사이다. 얕은 복사는 객체 안에 또 객체가 있을때는 우리가 마주한 문제에서 벗어날 수 없다. 하지만 깊은 복사는 객체 안에 있는 객체까지 그 객체 자체를 복사 시키기 때문에 완전한 불변 객체를 만들 수 있다. 불변객체를 만드는 방법에는 여러가지 도구, 프레임워크가 있다고 한다. 이번 포스팅에선 고전적으로 함수를 만들어 불변객체를 만들어 보려고한다. 얕은 복사 얕은 복사는 바로 아래 단계의 값만 복사하는 방법이다 코드는 다음과 같다. var = shallo..
자바 스크립트 변수 복사와 할당
·
🖥️ Language/Core Javascript
당연? 다음의 결과가 false가 나오는 거는 당연하다. 그러면 객체일 때는? 왜 같다고 나오는 것일까? 불변성, 가변성 앞에서 불변성과 가변성을 공부했다. 기본형은 불변성을 지니기 때문에 주소에 대한 값이 변할 수 없다. 따라서 값이 변해야 한다면 새로운 주소를 할당한다. 참조형은 기본적으로 가변성을 지닌다. 이 말은 임의로 불변성을 지니게 할 수 있다는 말이다(다음에 알아보자). 아무튼 참조형은 값이 변해도 주소를 두번 거치기 때문에 새로운 주소를 할당하지 않는다. 기본형 타입의 복사 b = a 부분에서 b에 a의 값인 &5000을 복사한다. b = 15 부분에서 b는 15라는 데이터가 메모리상에 없다는 걸 알고 따로 만들며, 그 주소를 값으로 사용한다. 이게 a===b 가 false가 나오는 과정이..