main page

Javascript를 이용해서 다음 페이지에 파라미터 넘기기 위한 방법이다.

<html>
 <head>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
  <script>
   function setChildValue(index) {
    window.location.href = "subPage.html?index=" + index;
   }
  </script>
 </head>
 <body>
  <button onclick="setChildValue(123)">Click me</button>
 </body>
</html>

sub page

방법 1

<!DOCTYPE html>
<html>
<head>
	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
	<script type="text/javascript">
		$(document).ready(function () {
			var val = location.href.substr(
				location.href.lastIndexOf('=') + 1
			);
			console.log('val : ' + val);
		});
	</script>
</head>
<body>

</body>
</html>

방법 2

<!DOCTYPE html>
<html>
<head>
	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
	<script type="text/javascript">
		function getURLParameter(name) {
			return decodeURI(
			 (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
			);
		}

		function getURLParameter2(name) {
			 return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null
		}
		$(document).ready(function () {
			console.log('val : ' + getURLParameter('index'));
			console.log('val : ' + getURLParameter2('index'));
		}
	</script>
</head>
<body>
</body>
</html>

방법 3

<!DOCTYPE html>
<html>
<head>
	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
	<script type="text/javascript">
		var getParameter = function (param) {
			var returnValue;
			var url = location.href;
			var parameters = (url.slice(url.indexOf('?') + 1, url.length)).split('&');
			for (var i = 0; i < parameters.length; i++) {
				var varName = parameters[i].split('=')[0];
				if (varName.toUpperCase() == param.toUpperCase()) {
					returnValue = parameters[i].split('=')[1];
					return decodeURIComponent(returnValue);
				}
			}
		};
		$(document).ready(function () {
			console.log('val : ' + getParameter('index'));
		}
	</script>
</head>
<body>
</body>
</html>

varargs : Variable Argument List

매개변수가 가변적일 때 사용하는 가변인자. 즉, 여러개의 파라미터를 가변적으로 사용할 때 사용된다. 

방법은 아래와 같이 사용한다. API


    public void printFormat(String... strs) {
        System.out.println("size : " + strs.length);
        for (String str : strs) {
            System.out.printf(" %15s", str);
        }
    }


책마다 다른 내용인 argument 와 parameter. 왜 두 개의 단어로 나누어져 있는가?

대체 뭐가 뭔지 모르겠고 어떤 것을 어떻게 불러야할지 몰라서 찾아봤다. 


매개변수(媒介變數), 파라미터(parameter), 모수(母數)는 수학과 통계학에서 어떠한 시스템이나 함수의 특정한 성질을 나타내는 변수를 말한다. 일반적으로는 θ라고 표현되며, 다른 표시는 각각 독특한 뜻을 지닌다. 함수의 수치를 정해진 변역에서 구하거나 시스템의 반응을 결정할 때는 독립변수는 변하지만 매개변수는 일정하다. 다른 매개변수를 이용해 함수의 다른 수치를 다시 구하거나 시스템의 다른 반응을 볼 수도 있다.  - 위키백과


위키백과에서는 아예 통째로 같은 단어로 치는 것 같다. 네이버 지식백과(argument, parameter)를 찾아보아도 동의어로 나온다. 그럼 대체 무엇이 다른점일까?

ANSI C 표준문서에서는 서로 다른 뜻으로 있다.



구글 번역기와 모자란 영어능력으로 이 둘을 간단하게 설명하자면 다음과 같다.

argument : 인수

함수의 호출식 안에 콤마로 구분된 변수.

parameter : 매개 변수 

함수의 선언부나 구현부에 있는 변수.


코드를 보면 훨씬 이해가 쉬울 것이다.

void sample(int parameter){    //int parameter는 parameter, 매개변수이다.
    printf("%d", parameter);
}
void main(){
    sample(3);    //3은 argument, 인수이다.
}


+ Recent posts