2017-07-02 1 views
0

Aide! Je suis interviewé mardi, y compris un test sur testdome.com ... J'ai regardé certaines de leurs questions de pratique javascript "faciles", et je suis perplexe sur celui-ci:La fonction Javascript devrait renvoyer une erreur si elle est appelée sans argument ou si un argument est indéfini

Mettre en œuvre la fonction d'assurer de sorte que il lance une erreur s'il est appelé sans arguments ou un argument est indé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 si la fonction est appelée « sans arguments ou un argument est indéfini »?

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

+0

'si (valeur === non définie) throw new Error ('message') ; 'couvre les deux cas. – Emissary

+1

'typeof value === 'undefined'' devrait fonctionner parfaitement. Pourquoi pensez-vous que non? – Bergi

Répondre

3

Vous pouvez vérifier si value === undefined, et si alors jetez une erreur. Sinon, renvoyez 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());

1
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 lancera une exception à la console si aucun argument est transmis à la fonction

+1

@Emissaire pardon désolé pensé que la question était seulement pour aucune valeur passée .. corrigé mon ans maintenant – praveen