Fundamentals/JavaScript

함수의 반환과 할당: return 문이 없을 때 undefined가 반환되는 이유

sod0l 2024. 9. 9. 17:35

1. 할당 (Assignment)

  • 정의: 할당은 변수에 값을 저장하는 작업을 한다.
  • 예시:여기서 let x = 10;x라는 변수를 만들고, 그 변수에 10이라는 값을 저장한다. 이 값은 x 변수가 사용되는 코드 블록 내에서 참조할 수 있다.
  • let x = 10; // x라는 변수에 10을 할당한다.

 

 

2. 반환 (Return)

  • 정의: 반환은 함수가 계산한 결과를 함수 호출자에게 전달하는 작업을 한다.
  • 예시:위 코드에서 add 함수는 return a + b;를 사용하여 함수 호출자에게 결과값을 반환한다. 이 반환된 값은 result 변수에 저장된다.
  • function add(a, b) { return a + b; // a와 b를 더한 결과를 반환한다. } let result = add(2, 3); // add 함수가 5를 반환하고, 그 값을 result에 저장한다. console.log(result); // 콘솔에 5를 출력한

 

 

3. 헷갈린 부분

  • 문제: 반환이 없이 할당된 값은 어떻게 사용하는가?
  • 설명:이 예제에서 multiply 함수는 result 변수에 값을 할당하지만, 반환문이 없기 때문에 함수 호출의 결과는 undefined가 된다. 함수 내부에서 result 값은 사용할 수 있지만, 함수 외부에서는 접근할 수 없다.
  • function multiply(a, b) { let result = a * b; // result 변수에 a * b 값을 저장한다. // return 문이 없음 } let product = multiply(4, 5); // multiply 함수는 반환값이 없으므로, product는 undefined가 된다. console.log(product); // 콘솔에 undefined를 출력한다.

 

 

4. 왜 undefined가 나오는가?

  • 설명: 자바스크립트에서 함수가 return 문 없이 종료되면, 자동으로 undefined가 반환된다. 이는 자바스크립트의 기본 동작 방식이다. 함수가 결과를 반환하지 않으면, 자바스크립트는 기본적으로 undefined를 반환하여 "함수의 결과가 없다"는 것을 나타낸다.multiply 함수는 return 문이 없기 때문에, 함수 호출의 결과는 undefined가 된다. 이 값이 product 변수에 저장된다.
  • function multiply(a, b) { let result = a * b; // 할당 // return 문이 없음 } let product = multiply(4, 5); // 반환값 없음, 따라서 product는 undefined가 된다. console.log(product); // 콘솔에 undefined를 출력한다.

 

 

5. 요약

  • 할당: 변수에 값을 저장하는 작업을 한다. 이 값은 함수의 범위 내에서 사용될 수 있으며, 함수 외부에서 접근하려면 반환이 필요하다.
  • 반환: 함수가 계산한 결과를 함수 외부로 전달하는 작업을 한다. return 문을 사용하여 값을 반환하면, 함수 호출자는 이 값을 사용할 수 있다. return 문이 없으면 함수는 기본적으로 undefined를 반환한다.

 

이렇게 정리하면 할당과 반환의 차이와 함수에서 return 문이 없는 경우 undefined가 반환되는 이유를 명확하게 이해할 수 있다.