1

このスニペットがあるとしましょう。

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

if (age === 30)
{
alert('your age is 30');
}

プロンプトに 30 を入力すると、if ステートメントがトリガーされません。浮動小数点の丸め誤差に関係していると思われますが、よくわかりません。これについてあなたの考えを聞くのは素晴らしいことです。

4

1 に答える 1

11

window.prompt()文字列を返します。文字列は数値と同じではありません。次のいずれかを使用します。

if (age === '30') 
if (+age === 30)  // Explicit type conversion
if (age == 30)    // Implicit type conversion

明示的な変換に関する注意事項については、この回答を参照してください。たとえば、 の入力00030も有効な場合があります。

于 2012-04-25T21:51:44.590 に答える