상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 자바스크립트에서 함수의 인자 전달 방식은 어떻게 이루어지나요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
자바스크립트에서 함수의 인자 전달 방식은 주로 "값에 의한 전달"과 "참조에 의한 전달"로 구분됩니다. 이 두 가지 방식은 자바스크립트의 데이터 타입에 따라 다르게 작용합니다. 자바스크립트는 기본 데이터 타입(Primitive Types)과 참조 데이터 타입(Reference Types)으로 나뉘며, 이 두 가지 타입에 따라 인자 전달 방식이 달라집니다. 1. 기본 데이터 타입 (Primitive Types) 자바스크립트의 기본 데이터 타입에는 `undefined`, `null`, `boolean`, `number`, `string`, `symbol`, `bigint`가 포함됩니다. 이들 데이터 타입은 값이 직접 전달됩니다. 즉, 함수에 인자를 전달할 때, 해당 값의 복사본이 생성되어 함수 내부로 전달됩니다. 예시: ```javascript function increment(value) { value += 1; return value; } let num = 5; let result = increment(num); console.log(num); // 5 console.log(result); // 6 ``` 위의 예제에서 `num` 변수의 값은 5입니다. `increment` 함수에 `num`을 인자로 전달할 때, `num`의 값이 복사되어 `value`라는 새로운 변수에 할당됩니다. 따라서 `value`를 변경하더라도 원래의 `num` 변수에는 영향을 미치지 않습니다. 2. 참조 데이터 타입 (Reference Types) 자바스크립트의 참조 데이터 타입에는 객체(Object), 배열(Array), 함수(Function) 등이 포함됩니다. 이들 데이터 타입은 메모리의 주소를 통해 전달됩니다. 즉, 함수에 인자를 전달할 때, 해당 객체의 참조(주소)가 전달되므로, 함수 내부에서 객체의 내용을 변경하면 원본 객체에도 영향을 미칩니다. 예시: ```javascript function addProperty(obj) { obj.newProperty = 'Hello'; } let myObject = { existingProperty: 'World' }; addProperty(myObject); console.log(myObject); // { existingProperty: 'World', newProperty: 'Hello' } ``` 위의 예제에서 `myObject`는 객체입니다. `addProperty` 함수에 `myObject`를 인자로 전달할 때, 객체의 참조가 전달됩니다. 따라서 함수 내부에서 `obj`를 통해 `myObject`의 내용을 변경하면, 원본 객체인 `myObject`에도 변화가 생깁니다. 3. 결론 자바스크립트에서 함수의 인자 전달 방식은 기본 데이터 타입과 참조 데이터 타입에 따라 다르게 작용합니다. 기본 데이터 타입은 값의 복사본이 전달되어 원본 데이터에 영향을 미치지 않지만, 참조 데이터 타입은 객체의 참조가 전달되어 원본 데이터에 영향을 미칠 수 있습니다. 이러한 특성을 이해하는 것은 자바스크립트에서 함수를 사용할 때 매우 중요하며, 코드의 예측 가능성과 안정성을 높이는 데 기여합니다. 4. 추가적인 고려사항 자바스크립트에서 인자를 전달할 때, 기본 데이터 타입과 참조 데이터 타입의 차이를 이해하는 것 외에도, 함수의 인자에 기본값을 설정하거나 나머지 인자를 처리하는 방법도 고려해야 합니다. 기본값 설정: ```javascript function greet(name = 'Guest') { console.log(`Hello, ${name}!`); } greet(); // Hello, Guest! greet('Alice'); // Hello, Alice! ``` 나머지 인자: ```javascript function sum(...numbers) { return numbers.reduce((acc, num) => acc + num, 0); } console.log(sum(1, 2, 3, 4)); // 10 ``` 이와 같이 자바스크립트의 함수 인자 전달 방식은 다양한 상황에서 유용하게 활용될 수 있으며, 이를 통해 더 효율적이고 유연한 코드를 작성할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기