dev/web

[JS] 메소드(method) 매개변수 기본값

재삐신생 2013. 7. 25. 16:50
반응형


메소드 디폴트 매개변수 혹은 함수 변수 기본값 혹은 method default parameter

쓸 수 있는 표현이 많아서 제목이 헷갈리지만,


내용은 같다.

대부분은 언어는 함수를 작성할때, 매개변수에 대한 기능이 존재한다.

예를 들어

int function METHOD(param1='기본값1',param2='기본값2'){

return 1234;

}


식으로 지정하면 METHOD(); 로 호출시, 매개변수는 기본값으로 적용되서 실행되는 식이다.


하지만, 멍청한 자바스크립트는 그런기능이 존재 하지 않는다.

그래서 따로 체크 혹은 기본값 지정을 해야한다.


function plus(num){

return num+=1;

}

이와 같은 메소드가 있다면,

plus(); 로 호출을 시도하면 num은 undefined이므로 정상작동이 안 될게 뻔하다.

이럴경우 기본값을 0로 하고 싶다면, 어떻게 할까?


이럴 경우에 사용하는 방식이 몇가지가 있다.


if(typeof(num)=='undefined') num = 0;

-> type을 검사하므로써, 변수의 여부를 체크해서 기본값을 할당하는 직관적인 방법이다.

num = num ? num : 0;

-> 조건연산자를 이용하는 방법, undefined는 false로 간주할테니~

num = num || 0;

-> 논리연산자를 이용하는 방법


코드의 간결함과 사용의 편리성, 논리연사자가 편해보인다.


하지만, 조건이나 논리를 사용하면, 0이라는 값이 필요할때, 기본값으로 처리는 되는 혼선이 발생할수 있다.

0->false로 인식하기 때문인데, 기본값이 0가 아니라면, 기본값으로 동작할 것이다.

반응형