// 반환 및 종료
function hello() {
return "Hello~";
// return : 함수 내부에서 함수 외부로 데이터를 반환 + 함수의 동작을 멈춤
console.log("Wow~"); // 이 부분의 코드는 동작하지 않음.
}
console.log(hello()); // Hello~
hello() 함수가 이렇게 소괄호()가 열리고 닫혀서 호출되면,
그 호출에 대한 결과로 데이터가 그 자리에 남는다.
결국 hello() 라는 함수를 호출하는 것은 return 키워드로 반환되는 그 데이터를
그 자리에 이렇게 남긴다는 것이고, 아래와 같은 문자 데이터로 출력이 되는 것이다.
console.log("Hello~");
console.log(hello); // 이건 hello 라는 함수 자체가 데이터로써 출력이 됨.
function hello() {
return; // undefined
}
return 키워드 뒤쪽에 아무런 데이터 작성하지 않으면,
암시적으로 return 옆에 undefined가 있는 것과 동일하다.
console.log(hello());
→ undefined는 자바스크립트가 자동으로 데이터를 채우는 용도의 값이다.
그래서 명시적이지 않고, 암시적 이다.
function hello() {
// return 키워드를 작성하지 않아도 undefined 출력
// 이 역시 자동으로 자바스크립트가 해당하는 데이터를 반환하는 것이다.
}
console.log(hello());
function plus(num) {
return num + 1;
}
console.log(plus(2)); // 3
console.log(plus(7)); // 8
console.log(plus()); // NaN
plus 함수가 호출 될 때, 아무런 데이터가 들어가지 않으니까 num 이라는 매개변수는
아무런 데이터가 들어오지 않기 때문에 자연스럽게 자바스크립트가 자동으로 데이터를 추가해서
결국엔 num = undefined 라는 데이터가 될 것이고, undefined + 1 = 숫자 데이터이긴 하지만,
숫자로 표현할 수가 없어서 NaN (Not a Number) 라는 결과로 출력이 된다.
개발자가 이미 만들어져있는 plus() 라는 함수를 잘못 만들었을 경우를 대비해서 조건을 추가했다.
function plus(num) {
if (typeof num !== "number") {
// 혹은 if (num === undefined)
console.log("숫자를 입력해주세요!"); // 숫자를 입력해주세요!
return 0;
}
return num + 1;
}
console.log(plus()); // 0
// 일단 콘솔창에 '숫자를 입력해주세요!' 라는 메시지를 띄운 상태에서 그 다음에,
// return 키워드로 일단 에러가 발생하지 않게 숫자 데이터 0을 반환하게 한다.
console.log(plus(100)); // 101
👉🏻 어떤 데이터를 반환하거나 함수를 그 자리에서 종료하는
이 return 키워드를 적절하게 사용하면 되겠다.