함수 실행을 끝내고 호출한 곳에 값을 돌려줍니다.
return을 만나면 함수의 나머지 코드는 실행되지 않습니다. return 값이 없으면 undefined이며 early return으로 잘못된 입력을 먼저 처리할 수 있습니다.
divide(10, 2)는 b가 0이 아니므로 첫 return을 지나치고 a / b의 결과 5를 돌려줍니다. divide(10, 0)은 첫 줄의 조건에서 바로 안내 문구를 돌려주고 끝나므로 나눗셈은 실행되지 않습니다. 그 결과 이 함수는 경우에 따라 숫자나 문자열을 돌려주게 되어, 결과를 다시 계산에 쓰려면 받는 쪽이 매번 타입을 확인해야 합니다.
값을 여러 개 돌려주고 싶을 때는 return { quotient: Math.trunc(a / b), remainder: a % b }처럼 객체 하나에 담고, 받는 쪽에서 구조 분해로 quotient와 remainder를 꺼내 씁니다. 실패를 문자열로 알리는 대신 throw로 오류를 던지면 반환값은 항상 숫자로 유지됩니다.
return 다음 줄에 값을 쓰면 자동 세미콜론 삽입으로 undefined가 반환될 수 있습니다.
직접 바꿔보세요숫자가 아닌 입력도 early return으로 처리하세요.