programing

JavaScript에서 옵션 함수 파라미터를 선언하려면 어떻게 해야 합니까?

prostudy 2022. 9. 9. 08:57
반응형

JavaScript에서 옵션 함수 파라미터를 선언하려면 어떻게 해야 합니까?

다음과 같은 기본 파라미터를 선언할 수 있습니까?

function myFunc( a, b=0)
{
  // b is my optional parameter
}

JavaScript에서?

ES6의 경우: 이것은 언어의 일부입니다.

function myFunc(a, b = 0) {
   // function body
}

ES6는 이 값을 체크하는 것에 주의해 주세요.undefinedtruthy-ness에는 반대하지 않습니다(따라서 null과 같은 falsey 값은 기본값이 되지 않습니다).


ES5의 경우:

function myFunc(a,b) {
  b = b || 0;

  // b will be set either to b or to 0.
}

이것은 명시적으로 전달한 모든 값이 진부한 경우에 유효합니다.MiniGod의 코멘트에 따라 진부하지 않은 값:null, undefined, 0, false, ''

자바스크립트 라이브러리는 함수가 실제로 시작되기 전에 옵션 입력에 대해 많은 검사를 하는 것이 일반적입니다.

갱신하다

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"가치와 존재를 평가하다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함수 내에서 사용할 수 있습니다.인덱스부터 시작하여 모든 인수를 포함합니다.0로.N - 1(어디서)N전달된 인수 수입니다).

일반적으로 알 수 없는 수의 (같은 유형의) 옵션 매개 변수를 지원하기 위해 사용됩니다. 단, 예상되는 인수를 지정하는 것이 좋습니다.

기타 고려사항

비록 ~일지라도undefinedES5 이후 쓰기 불가능, 일부 브라우저는 이를 적용하지 않는 것으로 알려져 있습니다.이 문제가 우려되는 경우 다음 두 가지 대안을 사용할 수 있습니다.

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

반응형