Javascript에서 선택적 함수 매개 변수를 선언하려면 어떻게해야합니까? [복제]
기본 매개 변수를 선언 할 수 있습니까
function myFunc( a, b=0)
{
// b is my optional parameter
}
자바 스크립트에서.
ES6 사용 : 이제 언어의 일부입니다 .
function myFunc(a, b = 0) {
// function body
}
ES6는 undefined
진실성을 반대 하지 않고 값을 검사한다는 점을 명심하십시오 (따라서 정의되지 않은 실제 값만 기본값을 얻습니다. null과 같은 거짓 값은 기본값이 아닙니다).
ES5로 :
function myFunc(a,b) {
b = b || 0;
// b will be set either to b or to 0.
}
이것은 명시 적으로 전달하는 모든 값이 진실 인 한 작동 합니다. MiniGod의 의견에 따라 진실하지 않은 가치 :null, undefined, 0, false, ''
함수가 실제로 시작되기 전에 JavaScript 라이브러리가 선택적 입력에 대해 많은 검사를 수행하는 것이 일반적입니다.
최신 정보
ES6을 사용하면 설명 된대로 정확하게 가능합니다. 자세한 설명은 설명서를 참조하십시오 .
이전 답변
JavaScript의 기본 매개 변수는 주로 두 가지 방법으로 구현할 수 있습니다.
function myfunc(a, b)
{
// use this if you specifically want to know if b was passed
if (b === undefined) {
// b was not passed
}
// use this if you know that a truthy value comparison will be enough
if (b) {
// b was passed and has truthy value
} else {
// b was not passed or has falsy value
}
// use this to set b to a default value (using truthy comparison)
b = b || "default value";
}
이 표현식 b || "default value"
은 AND 값의 존재를 평가하고 존재 하지 않거나 거짓 b
인 "default value"
경우 의 값을 반환합니다 b
.
대체 선언 :
function myfunc(a)
{
var b;
// use this to determine whether b was passed or not
if (arguments.length == 1) {
// b was not passed
} else {
b = arguments[1]; // take second argument
}
}
특수한 "배열" arguments
은 함수 내부에서 사용할 수 있습니다. 여기에는 index부터 시작하는 모든 인수가 포함 0
됩니다 N - 1
(여기서 N
전달 된 인수 수).
일반적으로 알 수없는 수의 선택적 매개 변수 (동일한 유형)를 지원하는 데 사용됩니다. 그러나 예상되는 주장을 언급하는 것이 좋습니다!
추가 고려 사항
비록 undefined
입니다 쓰기하지 ES5 이후, 일부 브라우저는이를 적용하지 알려져있다. 걱정이되는 경우 사용할 수있는 두 가지 대안이 있습니다.
b === void 0;
typeof b === 'undefined'; // also works for undeclared variables
'IT' 카테고리의 다른 글
AngularJ에서 사전에 ng-repeat를 사용하는 방법은 무엇입니까? (0) | 2020.03.21 |
---|---|
C ++ 컴파일러가 operator == 및 operator! =를 정의하지 않는 이유는 무엇입니까? (0) | 2020.03.21 |
file_get_contents를 사용하여 PHP로 데이터를 게시하는 방법은 무엇입니까? (0) | 2020.03.21 |
문자열을 nullable int로 구문 분석하는 방법 (0) | 2020.03.21 |
JVM에서 프록시를 사용하도록 설정하는 방법 (0) | 2020.03.21 |