Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 기본 타입과 객체 타입을 함수에 전달하는 방법

JavaScript에서 함수에 값을 전달할 때, 기본 타입(primitive type)객체 타입(object type)은 서로 다른 방식으로 처리됩니다.

  • 기본 타입(숫자, 문자열, 불리언 등): 값 자체가 복사되어 전달됩니다. 따라서 함수 내부에서 값을 변경해도 원본 변수에는 영향을 주지 않습니다.
  • 객체 타입: 객체의 참조(reference)가 전달됩니다. 함수 내부에서 객체의 속성을 수정하면 원본 객체에도 그 변경이 그대로 반영됩니다.

다음은 기본 타입과 객체 타입을 함수에 전달하고 호출하는 예제 코드입니다 −

예제

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
   body {
      font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
   }
   .result {
      font-size: 18px;
      font-weight: 500;
      color: blueviolet;
   }
</style>
</head>
<body>
<h1>기본 타입/객체 타입을 함수에 전달하기</h1>
<div class="result"></div>
<div class="result"></div>
<button class="Btn">여기를 클릭하세요</button>
<h3>위 버튼을 클릭하면 기본 타입과 객체를 함수에 전달하여 호출합니다</h3>
<script>
   let BtnEle = document.querySelector(".Btn");
   let resEle = document.querySelector(".result");
   let person = { name: "Rohan", age: 12, city: "Delhi" };
   function printObj(obj) {
      resEle.innerHTML = "Name = " + obj.name + "<br>";
      resEle.innerHTML += "age = " + obj.age + "<br>";
      resEle.innerHTML += "city = " + obj.city + "<br>";
   }
   function printPrimitive(prim) {
      resEle.innerHTML += prim;
   }
   BtnEle.addEventListener("click", () => {
      printObj(person);
      printPrimitive(22);
   });
</script>
</body>
</html>

실행 결과

JavaScript에서 기본 타입과 객체 타입을 함수에 전달하는 방법

'여기를 클릭하세요' 버튼을 클릭하면 다음과 같이 객체의 속성 값(name, age, city)과 기본 타입 값(22)이 함수에 전달되어 화면에 출력됩니다 −

JavaScript에서 기본 타입과 객체 타입을 함수에 전달하는 방법

위 예제에서 person 객체는 참조로 전달되어 함수 내부에서 속성에 접근할 수 있으며, 숫자 22는 값으로 복사되어 전달됩니다. 이처럼 두 타입의 전달 방식 차이를 이해하면 함수 내부에서 데이터를 다룰 때 발생할 수 있는 의도치 않은 변경을 예방할 수 있습니다.