아하
생활
DevSpark
DevSpark
21.06.07

javaScript return 값 질문입니다.

javaScript에서 간혹 return 값이 있는 구문이 있고,

return 값이 없는 구문이 있는데

반환되어야 하는 값을 return해야한다고 하지만 정확히 어떤 지점에서 return을 해야하는지 많이 헷갈리네요.

예시와 함께 return에 대해서 알 수 있을까요?

55글자 더 채워주세요.
4개의 답변이 있어요!
  • 빈티지한돼지85
    빈티지한돼지85
    21.06.09

    정확히 질문의 요점을 확실히 이해하지는 못했는데 설명이 맞지 않으면 댓글을 달아주세요.

    예를 들어 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>

  • 탈퇴한 사용자
    탈퇴한 사용자
    21.06.07

    안녕하세요.

    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);