JavaScript 평가 전략

kimjh96·2021년 8월 9일
0

평가 전략(Evaluation Strategy)이란 프로그래밍 언어에서 함수 호출 시 전달한 arguments 의 순서를 언제 결정하고, 어떤 종류의 값을 통과시킬 것인지 결정하는 방법이다.

Call By Value

함수 호출 시 arguments 의 값을 그대로 복사하여 전달한다. arguments 의 원본과 복사본이 각각 다른 메모리에 할당되어 있기 때문에 함수의 로직에 의해 복사본이 수정되더라도 원본에 영향을 미치지 않는다. (원시타입의 값을 전달하는 경우)

Call By Reference

함수 호출 시 arguments 의 reference(값에 대한 참조 주소, 메모리 주소를 담고 있는 변수)를 전달한다. 메모리에 들어있는 값을 복사하지 않고 원본과 복사본이 동일한 reference 를 가지고 있기 때문에 함수에 전달된 복사본을 수정할 경우 원본이 함께 수정된다. 단, 복사본에 값을 재할당하는 경우 복사본과 원본의 참조 관계가 깨지면서 원본에 영향을 미치지 않게 된다. (참조 타입의 값을 전달하는 경우)

Reference
https://reese-dev.netlify.app/javascript/evaluation-strategy/
https://velog.io/@jimmyjoo/자바스크립트-평가전략-Call-By-Value-vs-Call-By-Reference-vs-Call-By-Sharing

0개의 댓글