javaScript return 값 질문입니다.
javaScript에서 간혹 return 값이 있는 구문이 있고,
return 값이 없는 구문이 있는데
반환되어야 하는 값을 return해야한다고 하지만 정확히 어떤 지점에서 return을 해야하는지 많이 헷갈리네요.
예시와 함께 return에 대해서 알 수 있을까요?
정확히 질문의 요점을 확실히 이해하지는 못했는데 설명이 맞지 않으면 댓글을 달아주세요.
예를 들어 1, 2 합을 구해서 메시지창을 띄우는 로직을 구현한다고 할때...
일단은 아래 처럼 합을 구하는 함수 sum(a, b) 를 만들어 놓구 호출을 하면 값을 리턴해 주는 식으로 구현을 해야겠죠? 반면에 버튼을 누르면 실행되는 함수 btnClick() 는 그냥 쭉 실행하면 되는 함수죠.. 리턴값이 필요가 없습니다. 리턴을 만나게 되면 거기서 리턴해주고 그 아래 로직은 실행이 되지 않습니다. 보통 리턴 되는 값이 없고 오류체크 등을 하고 오류인 경우 실행을 중지하고자 할때는 return; 만 쓰기도 합니다. 질문에 답이 됬는지 모르겠네요.
function sum(a, b) {
return a+b;
}
function btnClick(){
alert( sum(1, 2)) ;
}
<input type="button" onClick="btnClick()">
자바스크립트에서 return 은 C 처럼 반드시 필요한게 아닙니다.
해당 function 이 끝난 후 호출한곳으로 무언가를 돌려주어야 할 때만 return 을 사용합니다.
예를 들어 아래와 같습니다.
var return_text = return_function(); return_function(){ return "return_text !!"; }이 경우 return_text 에는 "return_text !!" 라는 value 가 할당됩니다.
그런데 이러한 값을 돌려줄 필요가 없다면 return 이 필요하지 않으니 return 지점이 없어도 상관이 없습니다.
var alert_return_text = return_function(); return_function(){ alert("return_text !!"); }위 함수는 단순하게 alert 을 띄우는 함수로써 호출자는 굳이 return 한 값을 별도의 value 로 받지 않아도 되는 함수입니다.
이러한 경우 return 을 명시적으로 사용하지 않아도 됩니다.
아래 참고하실만한 URL 첨부드리오니 보시면 도움 되실 것 같습니다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/return
https://webisfree.com/2016-06-18/[javascript]-%ED%95%A8%EC%88%98%EC%9D%98-%EC%98%88%EC%95%BD%EC%96%B4-return%EC%9D%B4%EB%9E%80
return 은 두가지의 의미가 있습니다.
1. 계산된 값을 반환.
함수를 호출했을때 파라미터값이 0보다 작으면 '음수입니다.', 0이상이면 '양수입니다.'를 반환하는 예제
function test(arg){ if(arg < 0){ return '음수입니다.'; }else{ return '양수입니다.'; } }2. 함수를 종료
함수를 호출했을때 파라미터값이 0이면 함수를 중지하고 0이 아니면 form1.key의 값을 입력받은 파라미터로 설정하고 전송(submit)하는 예제
<form name="form1"> <input type="text" name="key"/> </form> <script> function test(arg){ if(arg === 0){ return; } document.form1.key.value = arg; document.form1.submit(); } </script>안녕하세요.
return 명령문은 함수 실행을 종료하고 주어진 값을 함수 호출 시점으로 반환합니다. return 뒤에 값이 없거나 return 자체를 생략할 경우에는 undefined를 대신 반환합니다.
function sum(a, b) { if (!a) { // a가 존재하지 않는다면 undefined를 return 하고 함수 실행을 종료합니다. return; } if (!b) { // b가 존재하지 않는다면 0을 return 하고 함수 실행을 종료합니다. return 0; } // a와 b가 존재하는 경우 a + b 값을 return 합니다. return a + b; } // total1은 undefined let total1 = sum(); console.log('total1 : ', total1); // total2는 0 let total2 = sum(1); console.log('total2 : ', total2); // total3는 3 let total3 = sum(1, 2); console.log('total3 : ', total3);