私は単純にprompt
を作成しました。ユーザーは1から10までの数字を入力できます。まず、answer
を文字列から数値に変更します。 2番目はanswer
が1と10の間であるかどうかを確認するか、またはNaN
です。 answer
が1および10の外にある場合、またはNaN
のループが実行され、再度チェックされます。 while
は、数字が1より小さいか10より大きいかを正しく検出しますが、answer == NaN
なら正しく検出しません。 alert
は、入力時に答えが= NaN
であることを示しているので、なぜそれが文字で機能しないのか分かりません。誰か私が間違っているのを見ることができますか?答えがNaNの場合、あなたはisNaN()機能を使用することができます検出するため答えが数字の範囲外であるか数字でない
var answer;
\t
do {
answer = prompt("Enter a number between 1 and 10.");
answer = Number(answer);
}
while (answer < 1 || answer > 10 || answer == NaN);
\t
alert(answer);
'NaN!== NaN'。 IEEE754を賞賛します。 'Number.isNaN'を使います。それ以外の場合、「答え== NaN」は常に**間違いです。 – ASDFGerte
またはインターネットエクスプローラで失敗したくない場合は 'isNaN'です:p –