JavaScript

javaScript-함수6 (반환문)

용용it 2023. 2. 20. 19:20

함수는 return 키워드와 표현식(반환값)으로 이뤄진 반환문을 사용해 실행 결과를 함수 외부로 반환할 수 있다.

function multiply(x, y){
	return x * y; // 반환문
}

// 함수 호출은 반환값으로 평가된다.
var result = multiply(3, 5);
console.log(result); // 15

multiply 함수는 두 개의 인수를 전달받아 곱한 결과값을 return 키워드를 사용해 반환한다.

함수는 return 키워드를 사용해 자바스크립트에서 사용 가능한 모든 값을 반환할 수 있다.

함수 호출은 표현식이다.

함수 호출 표현식은 return 키워드가 반환한 표현식의 평과 결과, 즉 반환값으로 평가된다.

 

반환문은 두 가지 역할을 한다.

 

1. 반환문은 함수의 실행을 중단하고 함수 몸체를 빠져나간다. 따라서 반환문 이후에 다른 문이 존재하면 그 문은 실행되지 않고 무시된다.

function multiply(x, y){
	return x * y; // 반환문
    // 반환문 이후에 다른 문이 존재하면 그 문은 실행되지 않고 무시된다.
    console.log('실행되지 않는다.');
}

console.log(multiply(3, 5)); // 15

2. 반환문은 return 키워드 뒤에 오는 표현식을 평가해 반환한다. return 키워드 뒤에 반환값으로 사용할 표현식을 명시적으로 지정하지 않으면 undefined가 반환된다.

function foo(){
	return;
}

console.log(foo()); // undefined

반환문은 생략할 수 있다. 이때 함수는 함수 몸체의 마지막 문까지 실행한 후 암묵적으로 undefined를 반환한다.

function foo(){
	// 반환문을 생략하면 암묵적으로 undefined가 반환된다.
}

console.log(foo()); // undefined

return 키워드와 반환값으로 사용할 표현식 사이에 줄바꿈이 있으면 세미콜론 자동 삽입 기능에 의해 세미콜론이 추가되어 의도치 않은 결과가 발생할 수 있다.

function multiply(x, y){
	// return 키워드와 반환값 사이에 줄바꿈이 있으면
	return // 세미콜론 자동 삽입 기능(ASI)에 의해 세미콜론이 추가된다.
	x * y;// 무시된다.
}

cosole.log(multiply(3, 5)); // undefined