2

JavaScriptは初めてです。JavaScriptの実際の学習を開始するのはこれで2日目です。従うべきガイドラインや基準が非常に多いため、この質問をするのに適切な場所かどうかはわかりません。

さて、ここで私が小さなスクリプトを書いたのですが、それは機能していません。value < 5 && value > 5アラートを表示しているとき。しかし、誰かが答え5を出したとき(これは正解です)。アラートが表示されていませんか?私はこの問題を解決しようとしましたが、この問題を解決できませんでした。これが私のコードです:

<script type="text/javascript"> 
    var number = prompt("count these numbers: 2+5-10+8=?");
    if( number === 5 ) {
     alert( "Congratulations Your Answer is Correct" );
    }
    else if ( number > 5  ) {
      alert( "Your answer is a little higher." );
    }
    else if ( number < 5 ) {
      alert( "Your answer is little lower than actual answer." );
    }
</script>
4

5 に答える 5

8

プロンプトは文字列を返しますが、数値に対して厳密に等しいテストを実行しています。

あなたはできる...

  • number === "5"代わりに、を使用して文字列をテストします

  • または、==の代わりに使用===します。これにより、変換が行われます。

  • または、プロンプトを次の数値に変換しますnumber = parseInt(number, 10)

  • または、フロートをテストする可能性がある場合は、number = parseFloat(number)

于 2012-05-27T23:48:40.927 に答える
3

私は提案します:

var number = parseInt(prompt("count these numbers: 2+5-10+8=?"),10);
于 2012-05-27T23:49:21.033 に答える
0

簡単な答えは==、厳密な等式の代わりに使用すること===です。

sayをparseIntに変換するので使用しないでください。間違った答えを受け入れるか、追加のテストが必要になります。5iasd5

必須ではないので使用しないでくださいparseFloat。使用==するとは、次のすべてがtrueを返すことを意味します。

var n = 5;

n == '5'
n == '5.0'
n == '5e0'
n == '0.5e1'

等々。

参考までに、ECMAScript抽象等式比較アルゴリズムがどのように機能するかを学ぶ必要があります。

于 2012-05-28T00:17:12.880 に答える
0

「===」比較を行うと、タイプが正確に一致するかどうかがチェックされます。この場合、NUMBER 5 が STRING 5 (または入力されたその他のもの) と等しいかどうかがチェックされますが、これは false です。

David Thomas がすでに提案しているように、答えを解析して整数にする必要があります。

var number = parseInt(prompt("count these numbers: 2+5-10+8=?"));
于 2012-05-27T23:56:17.240 に答える
-1

これを試してください:

ScriptManager.RegisterStartupScript(this, GetType(), "alertmsg", "alert('your message');", true);
于 2012-12-20T18:01:33.020 に答える