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
가 반환되는 이유를 명확하게 이해할 수 있다.