무심코 쓰던 return의 정확한 용법을 알고 싶어서 찾아봤다. return을 활용한 다양한 예제들을 보면 볼 수록 만만치 않았다. 일단은 쉬운 예제부터 차근차근 알아봤다. 어려운 예제는 다음 글을 통해서 추가로 공부할 것이다.
선언적 함수
function name ( param1, param2, param3 ) {};
익명 함수
function( param1, param2, param3 ) {};
변수 적용된 익명 함수
var name = function( param1, param2, param3 ) {};
for 문을 이용한 인자 출력
function numAll ( param1, param2, param3 ) {
for ( var i = 0; i < arguments.length; i++ ) {
alert(arguments[i]);
};
};
numAll();
다만 위의 코드를 실행하면 undefined
에러가 나온다. numAll
에 해당하는 인자가 정의되지 않았기 때문이다.
return
이제 리턴을 보자. 리턴은 함수 안에서 끝나는 곳에 들어가야 한다. return
을 만나면 함수는 값을 출력하고 끝나게 되기 때문이다.
function sum(x){
var y = x * 10;
return y;
}
var a = 5;
var b = sum(a);
alert(b);
이 코드는 sum(x)
에 대한 선언을 먼저하고 있다. 해당 선언의 조건에서 y
란 변수는 x
에 10을 곱하는 것으로 정의되어 있고, 동시에 y
를 리턴하고 있다.
하지만 그 전에 var a = 5
와 var b = sum(a)
가 있다는 점을 떠올려야 한다. var
과 관련된 호이스팅이란 개념에 따라 위의 코드에서 a = 5
와 b = sum(a)
이라는 내용이 가장 먼저 선언된다. 호이스팅에 대해서
그래서 위의 코드는 결과적으로 보면 다음과 같다.
b
는 a
를 sum(x)
에서 x
에 대입한 값이다 ->a
에 할당된 5를 대입한다 -> 5 * 10
는 y
다 -> y
값을 리턴(출력)한다 -> b
의 값인 50을 alert한다
참조: https://m.blog.naver.com/PostView.nhn?blogId=designondo&logNo=221244334275&proxyReferer=https:%2F%2Fwww.google.com%2F
https://www.everdevel.com/JavaScript/return/