return
를 사용하여 함수가 최종 결과로 생성해야 하는 값을 지정합니다. 인터프리터가 return
문에 도달하면 해당 문이 포함된 함수가 즉시 종료되고 지정된 값이 함수가 호출된 컨텍스트로 반환됩니다.
const myFunction = function() {
return 2 + 2;
}
myFunction();
> 4
값을 반환하는 함수는 변수와 마찬가지로 값에 포함된 데이터로 효과적으로 취급할 수 있습니다.
const myFunction = function() {
return 2 + 2;
}
myFunction() + myFunction();
> 8
표현식이 없는 return
문은 함수를 종료하고 undefined
를 반환합니다.
const myFunction = function() {
return;
}
myFunction();
> undefined
return
키워드는 함수의 끝을 나타내므로 발생된 return
뒤에 오는 코드는 실행되지 않습니다.
const myFunction = function() {
return true;
console.log( "This is a string." );
}
myFunction();
> true
또한 return
문 뒤에 오는 코드는 일부 브라우저의 개발 콘솔에서 오류가 아닌 경고를 발생시킬 수 있습니다.
const myFunction = function() {
return true;
console.log( "This is a string." );
}
> unreachable code after return statement
myFunction();
> true
다시 말하지만, 이는 함수 실행 중에 발생한 return
문에만 적용되며 return
문 뒤에 오는 코드에는 순차적으로 적용되지 않습니다.
const myFunction = function( myParameter ) {
if( myParameter === undefined ) {
return "This is the result.";
}
return "This is the alternate result.";
}
myFunction();
> "This is the result."
myFunction( true );
> "This is the alternate result."
초기에 return
를 사용하여 함수를 '단락'하면 함수 끝에 return
문을 하나만 사용하는 것보다 더 간결한 코드를 사용할 수 있습니다. 예를 들어 다음 함수는 전달된 값이 5자 이상을 포함하는 문자열인지 확인합니다. 전달된 값이 문자열 리터럴이 아니면 문자를 계산하는 코드가 필요하지 않으며 함수는 false
결과를 즉시 반환할 수 있습니다.
function myFunction( myString ) {
if( typeof myString !== "string" ) {
return false;
}
if( myString.length >= 5 ) {
return true;
} else {
return false;
}
}
myFunction( 100 );
> false
myFunction( "St" );
> false
myFunction( "String." );
> true
화살표 함수 표현식은 화살표 함수 본문에 단일 표현식이 있고 블록 문법이 없으면 return
키워드가 암시된다는 점에서 고유합니다.
const myFunction = () => 2 + 2;
myFunction();
> 4
블록 문법을 사용하여 화살표 함수 본문을 정의하는 경우 함수 본문에 단일 표현식만 포함되어 있어도 명시적인 return
가 필요합니다.
const myFunction = () => { 2 + 2 };
myFunction();
> undefined
const myFunction = () => { return 2 + 2 };
myFunction();
> 4
이해도 테스트
return
의 용도