私はtry、catch、throw iエラーでこの問題を抱えています。しかし、結果は得点方法です。これがコードです。フォームフィールドに5より大きい数字を入力すると、あまりにも高い値を投げて表示されます。そして、5より小さい数字を入力すると、低すぎるのではなく高すぎると表示されます。実際には、他のif条件が表示されません。を除いて。空と高すぎます。誰かがそのような異常に説明できますか?javascriptがスローされ、予期した結果が表示されないエラーをキャッチします。
function myFunction() {
var x, message;
message = document.getElementById('para');
message.innerHTML = '';
x = document.getElementById('formField').value;
try {
if (x == "") throw 'empty';
if (x == NaN) throw 'not a number';
x = Number(x);
if (x < 5) throw 'too low';
if (x > 5) throw 'too high';
}
catch(err){
message.innerHTML = 'input is ' + err;
}
}
君たちの多くは、このコードは、W3Schoolsのから直接コピー&ペーストしたここに私の問題を理解していないようです。それは正常に動作しません。さまざまなifステートメントは、入力からの値がifステートメントと一致するときに特定のエラーをスローすることになっています。むしろそれは一種の分離した結果を与えるものです。私はちょうど2つの数字を入力すると、入力を投げるのではなく、あまりにも低いです、私は入力が高すぎます投げる。 5以上の数値を入力すると、エラーは発生しません。また、NaNではjavascriptからの応答がありません。
何が話しているのか理解できる人はいますか?実際に自分でコードを実行し、混乱している場所を教えてください。
'のx == NaN'は、使用'ますisNaN() ' – csharpfolk
おかげで動作しません。しかし、他の条件については、もし<5、あまりにも低すぎる、それはあまりにも高いスローされます – pedroyanky
私はこの機能を試して、それは私のために働く、あなたは '試しの前に' console.log(x)それはあなたのために書いてくれるでしょう、あなたは普通の形式の ''フォーム要素を読んでいますか? – csharpfolk