2016-06-19 3 views
0

J'écris cette structure de contrôle de base pour une leçon et je reçois un comportement inattendu.Vérification de l'absence de saisie dans la structure de contrôle

var answer = prompt('what is your age'); 
 

 
if (answer >= 21) { 
 
    alert('good to go!'); 
 
} 
 
else if (answer < 21) { 
 
    alert('sorry not old enough'); 
 
} 
 
else if (answer != typeof Number) { 
 
    alert('please enter your age as a number'); 
 
} 
 
else if (answer === null) { 
 
    alert('you did not answer!'); 
 
}

Sur la dernière condition, j'attendre à ce que si je quittais l'invite vide, il exécuterait la dernière alerte. Cependant, il dit juste «pas assez vieux». Ne traite-t-il aucune entrée dans l'invite comme 0? Comment peut-on résoudre ça?

Merci.

Répondre

0

rapide ne retourne pas null si l'utilisateur touche OK, pour tester le vide, vous devez vérifier si la chaîne est vide answer === ""

0

Vous devez déplacer les deux derniers contrôles vers le haut depuis "" < 21 est true :

var answer = prompt('what is your age'); 
 

 
if (answer === '') { 
 
    alert('you did not answer!'); 
 
} else if (isNaN(answer)) { 
 
    alert('please enter your age as a number'); 
 
} else if (answer >= 21) { 
 
    alert('good to go!'); 
 
} else if (answer < 21) { 
 
    alert('sorry not old enough'); 
 
}