web-dev-qa-db-fra.com

La fonction Javascript doit générer une erreur si elle est appelée sans arguments ou si un argument n'est pas défini

Aidez-moi! Je suis interviewé mardi, y compris un test sur testdome.com ... J'ai regardé certaines de leurs questions pratiques "faciles" sur javascript, et je suis perplexe sur celle-ci:

Implémentez la fonction assure afin qu'elle génère une erreur si elle est appelée sans arguments ou si un argument n'est pas défini. Sinon, il devrait retourner la valeur donnée.

function ensure(value) {

}

Jusqu'à présent, j'ai:

function ensure(value) {
  if(value){
    return true;
  }
}

Mais comment puis-je vérifier si la fonction est appelée "sans arguments ou si un argument n'est pas défini"?

J'ai essayé quelques choses, comme: else if (typeof value === 'undefined'), mais cela ne semble pas fonctionner ...

8
Andy

Vous pouvez vérifier si value === undefined, et si c'est le cas, lancez une erreur. Sinon, retournez la valeur d'entrée.

function ensure(value) {
  if(value === undefined) {
    throw new Error('no arguments');
  }

  return value;
}

console.log(ensure('text'));
console.log(ensure([0,1,2,3]));
console.log(ensure());
10
Brett DeWoody
 function noValueException(value) {
       this.value = value;
       this.name = 'noValueException';
    }

    function ensure(value) {
      if(value === undefined){
          throw new noValueException('No argument passed');       
      }else{ return value;}
    }

Cela lèvera une exception à la console si aucun argument n'est passé à la fonction

2
praveen