아하
생활

생활꿀팁

DevSpark
DevSpark

javaScript return 값 질문입니다.

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

return 값이 없는 구문이 있는데

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

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

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

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

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