이번 포스트에서는 불변성관리를 알아보았다.
처음에 배울 때는 배열의 요소를 수정하거나 객체의 프로퍼티를 수정할 때, 기존에 변수를 건드리지 않고 spread연산자와 다른 state값을 사용해서 불변성 관리를 하면 되는 것인줄 알았다.
불변성이란 : “단순히 변수를 재할당하지 않는다”는 개념이 아니고, 메모리 공간에 이미 담겨있는 값을 변경하지 않는
다는 것이다!
값에 의한 호출
: 외부스코프에서 함수에 인자로 변수를 넘길 때, 해당 변수가 가지고 있는 값 자체만 그대로 복사해서 함수에게 넘겨주는 방식을 의미한다. 메모리 공간에 있는 값을 함수 인자에 넘기는게 아니라, 그 값만 복사해서 새로운 메모리 공간에 저장후 넘기는 것이다. 자바스크립트에서 string, number, boolean 같이 원시 자료형을 사용하는 변수들은
모두 값에 의한 호출방식
을 사용함.
참조에 의한 호출
: Array, Object는 참조에 의한 호출.
불변성, 불변성 하는 이유: