[Nov. 10, 2020] Return

Alpaca·2020년 11월 10일
0

Javascript

목록 보기
2/6

Statements and Declarations(명령문과 선언)

JavaScript(이하 'js')에서는 여러가지 들이 있는데 대표적으로 for, if...else, while 등이 있고, var, let, const 라는 Declaration keyword가 있다.
오늘은 그 중에서 return Statement에 대해 알아보도록 하자.

Return의 문법(syntax)

return [expression];

expression에는 반환받고 싶은 값(value), 선언 된 변수(variable) 등을 넣는다.

아무 값도 넣지 않을 시 undefined가 반환 됨.

Return의 특징 및 사용법

function square(x) {
   return x * x;
}
var demo = square(3); // 9

위와 같이 return을 함수 내(function body)에서 사용할 때, 함수는 return에 의해 실행이 중단되고, 지정된 값을 반환한다.
위의 함수에서는 parameter x에 대해 argument 3이므로 329를 반환한다.

return
a + b;

또한 return은 ASI(Automatic Semicolon Insertion == 자동 세이콜론 삽입)의 영향을 받아 위와 같은 줄바꿈을 허용하지 않는다.
따라서 가독성 등을 생각하여 줄바꿈을 하고싶을 때에는

return (
  a + b;
  )

위와 같이 괄호(parentheses)를 사용하도록 하자.

Return의 사용 예

  1. Interrupt a function(함수의 중단)
function counter() {
  for (var count = 1; ; count++) {  // 무한반복 함수
    console.log(count + 'A'); // count = 5까지 실행
      if (count === 5) {          
        return;
      }
      console.log(count + 'B');  // count = 4까지 실행
    }
  console.log(count + 'C');  // 실행되지 않음
}

counter();

// Output:
// 1A
// 1B
// 2A
// 2B
// 3A
// 3B
// 4A
// 4B
// 5A

위와 같이 원하는 타이밍에 함수를 중단하고 싶을 때 return을 사용할 수 있다.
예시에서는 특정한 값을 반환받지 않기위해 expression이 생략되었다.

  1. Returning a function(함수의 반환)
function magic() {
  return function calc(x) { return x * 42; };
}

var answer = magic();
answer(1337); // 56154

위와 같이 함수 내의 함수(Nested function)를 불러오고 싶을 때 return을 사용할 수 있다.
일반적으로 함수 내에 선언된 함수는 직접적으로 불러 올 수가 없다.

function magic() {
  function calc(x) {
    return x * 42;
  };
}

calc(1337); // Uncaught ReferenceError: "calc" is not defined

이와 관련된 자세한 내용은 클로저(Closures)를 통해 이해해 보도록 하자.

Reference

profile
2020년 10월 15일 퇴사하고 개발자의 길에 도전합니다.

0개의 댓글