programing

매개 변수가 함수에 제공되는지 테스트하는 방법은 무엇입니까?

kingscode 2021. 1. 14. 22:56
반응형

매개 변수가 함수에 제공되는지 테스트하는 방법은 무엇입니까?


선택적 매개 변수로 함수를 만들 수 있는지 궁금합니다.

예:

function parameterTest(test)
{
   if exists(test)
   {
     alert('the parameter exists...');
   }
   else
   {
     alert('The parameter doesn\'t exist...');
   }
}

따라서 호출 parameterTest()하면 결과는 "매개 변수가 존재하지 않습니다 ..."라는 메시지가됩니다. 그리고 호출하면 parameterTest(true)"매개 변수가 존재합니다 ..."를 반환합니다.

이것이 가능한가?


이것은 매우 빈번한 패턴입니다.

다음을 사용하여 테스트 할 수 있습니다.

function parameterTest(bool) {
  if (bool !== undefined) {

그런 다음 다음 형식 중 하나로 함수를 호출 할 수 있습니다.

 parameterTest();
 parameterTest(someValue);

잦은 테스트 오류가 발생하지 않도록주의

if (!bool) {

제공되지 않은 값을 false, 0또는 에서 구별 할 수 없기 때문 ""입니다.


function parameterTest(bool)
{
   if(typeof bool !== 'undefined')
   {
     alert('the parameter exists...');
   }
   else
   {
     alert('The parameter doesn\'t exist...');
   }
}

자바 스크립트에서 매개 변수를 제공하지 않으면 기본값은 undefined.

브라우저 콘솔에서 또는 JSFiddle을 사용하여 쉽게 시도해 볼 수 있습니다 .

말했듯이 매개 변수의 존재를 확인할 수 있으며, 그런 식으로 매개 변수를 사용할 수 있는지 여부를 함수를 작성할 수 있습니다. 그러나 JavaScript Garden (훌륭한 리소스) typeof은 출력이 거의 쓸모가 없기 때문에 대부분의 다른 경우에서 멀리 할 것을 권장합니다 ( typeof결과 테이블 확인 ).


확인하는 가장 좋은 방법 : 매개 변수정의 되지 않은 경우

function parameterTest(param) {
    if (param !== undefined)
    ...

PARAM은 또한 변수 또는 함수 이름이 될 수


function parameterTest(p) {
    if ( p === undefined)
        alert('The parameter doesn\'t exist...');
    else
        alert('the parameter exists...');
}

null == undefined 사실이다

if (arg == null){
    // arg was not passed.
}

코드 예 :

var button = document.querySelector("button");

function myFunction(arg){
  if(arg == null){
    alert("argument was not passed.");
  } else {
    alert("argument " + arg + " was passed.");
  }
}
<button onclick="myFunction('foo');">click to fire function w arg</button>
<br><br>
<button onclick="myFunction();">click to fire function w/o arg</button>


나는 이것이 오래되었다는 것을 알고 있지만 이것이 내가 선호하는 확인 방법이고 함수에 기본값을 할당합니다.

function testParamFunction(param1, param2) {
    param1 = typeof param1 === 'undefined' ? null : param1;
    param2 = typeof param2 === 'undefined' ? 'default' : param2;

    // exit if the required parameter is not passed
    if (param1 === null) {
        console.error('Required parameter was not passed');
        return;
    }

    // param2 is not mandatory and is assigned a default value so 
    // things continue as long as param1 has a value
}

ReferenceURL : https://stackoverflow.com/questions/13019640/how-to-test-if-a-parameter-is-provided-to-a-function

반응형