データ型(特に整数)をチェックするために次のことを試みましたが、機能しませんでした。
var i = "5";
if(Number(i) = 'NaN')
{
console.log('This is not number'));
}
データ型(特に整数)をチェックするために次のことを試みましたが、機能しませんでした。
var i = "5";
if(Number(i) = 'NaN')
{
console.log('This is not number'));
}
値の型をテストするには、次の 2 つの方法を考えます。
方法 1:
isNaN
値がNaNかどうかを判断する JavaScript メソッドを使用できます。しかし、あなたの場合、文字列に変換された数値をテストしているため、Javascript は値の型を推測して、それを 5 ではない数値に変換しようとしていNaN
ます。そのconsole.log
ため、結果を出力すると、次のコードに驚かれることでしょう。
if (isNaN(i)) {
console.log('This is not number');
}
何も返しません。このため、より良い代替手段は方法 2 です。
方法 2:
変数または値の型をテストするには、JavaScriptのtypeofメソッドを使用できます。
if (typeof i != "number") {
console.log('This is not number');
}
この場合、値の型は文字列ですが、Javascript は内部的に数値に変換されるため、二重等号演算子を使用していることに注意してください。
値を数値型に強制するためのより堅牢な方法は、新しい Ecmascript 6 (Harmony) 提案の一部であるNumber.isNaNを使用することです。そのため、さまざまなベンダーによって広範にサポートされておらず、完全にサポートされていません。
私はこの方法でそれを使用しており、正常に動作しています
quantity=prompt("Please enter the quantity","1");
quantity=parseInt(quantity);
if (!isNaN( quantity ))
{
totalAmount=itemPrice*quantity;
}
return totalAmount;
あなたの論理は正しいですが、明らかに誰もが見落としている 2 つの間違いがあります。
に変更if(Number(i) = 'NaN')
するだけif(Number(i) == NaN)
NaN
は定数であり、比較には二重の等号を使用する必要があります。変数に値を割り当てるには、単一の等号を使用します。
isNaN(Number(x))
xが文字列や数値などの任意のものである場合、これを試すことができます