IT

Javascript에서 선택적 함수 매개 변수를 선언하려면 어떻게해야합니까?

lottoking 2020. 3. 21. 10:44
반응형

Javascript에서 선택적 함수 매개 변수를 선언하려면 어떻게해야합니까? [복제]


가능한 중복 :
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

참고 URL : https://stackoverflow.com/questions/12797118/how-can-i-declare-optional-function-parameters-in-javascript

반응형