한글로 파라미터는 매개변수, 아규먼트는 인수라고 표현합니다.
매개변수는 함수를 정의할 때 사용되는 변수이며 인수는 함수가 호출될 때 넘기는 변수값을 말합니다.
인수는 원시타입, 객체타입을 호출 합니다.
JavaScript는 전달된 인수를 복사해 로컬 복사본을 생성합니다.
이러한 복사본은 함수의 스코프 내에서만 존재하며, 함수 정의 내에 지정한 식별자를 통해 접근가능합니다.
원시타입 : boolean, number, string, null, undefined
객체타입 : 객체, 배열 등등
원시타입을 파라미터로 넘겼을 경우에는 전달받은 인자(function에 정의된 변수)는 다른 주소값을 가지고 복사됩니다.
받은 인자에 새로운 객체를 할당할 경우 다른 주소값을 가지게 되어서 함수 호출시 넘기는 파라미터객체와 다른 주소값을 가지게됩니다. => 재할당
객체타입을 파라미터로 넘겼을 경우에는 전달받은 인자(function에 정의된 변수)는 같은 주소값을 가지고 복사됩니다.
받은 인자에 속성값을 변경하면 전달받은 인자의 주소값은 변하지 않아서 함수 호출시 넘기는 파라미터객체의 값을 변경할 수 있습니다.