変数が現在整数型かどうかを確認するにはどうすればよいですか?私はこれのために何らかのリソースを探しましたが、===演算子は重要だと思いますが、変数が整数(またはそのことについては配列)であるかどうかを確認する方法がわかりません
JavaScriptでは、変数が整数型になることはありません—異なる型の数値を区別しません。
変数に数値が含まれているかどうか、およびその数値が整数かどうかをテストできます。
(typeof foo === "number") && Math.floor(foo) === foo
変数が整数を含む文字列であり、それが当てはまるかどうかを確認したい場合:
foo == parseInt(foo, 10)
最近では、ECMAScript 6(ECMA-262)は「家の中」にあります。 Number.isInteger(x)
を使用して、xのタイプに関して尋ねたい質問をします。
js> var x = 3
js> Number.isInteger(x)
true
js> var y = 3.1
js> Number.isInteger(y)
false
モジュロ%1が0-の場合、数値は整数です
_function isInt(n){
return (typeof n== 'number' && n%1== 0);
}
_
これは、javascriptが10から15までと言うのと同じくらい良いです。
isInt(Math.pow(2,50)+.1)
はMath.pow(2,50)+.1 == Math.pow(2,50)
と同様にtrue
を返します
var a = 1;
if (typeof a == 'number') {
// ...
}
整数に興味があることは知っているので、返事はしませんが、浮動小数点数をチェックしたいなら、これを行うことができます。
function isFloat( x )
{
return ( typeof x === "number" && Math.abs( x % 1 ) > 0);
}
注:これは、.0
(または論理的に同等な0
'の数)で終わる数値をINTEGERとして扱う場合があります。その場合、浮動小数点値を検出するには、実際に浮動小数点精度エラーが発生する必要があります。
例.
alert(isFloat(5.2)); //returns true
alert(isFloat(5)); //returns false
alert(isFloat(5.0)); //return could be either true or false
このコードを試してください:
alert(typeof(1) == "number");
Runtyper -===
(およびその他の操作)のオペランドの型チェックを実行するツールもご覧ください。
たとえば、厳密な比較x === y
とx = 123, y = "123"
がある場合、自動的にtypeof x, typeof y
をチェックし、コンソールに警告を表示します。
異なるタイプの厳密な比較:123(数値)=== "123"(文字列)
YourJS などの非常に少数のユーティリティライブラリは、何かが配列であるか、何かが整数であるか、他の多くの型であるかを判断するための機能を提供します。 YourJSは isInt を定義します。値が数値であるかどうかを確認し、次に1で割り切れるかどうかを確認します。
_function isInt(x) {
return typeOf(x, 'Number') && x % 1 == 0;
}
_
上記のスニペットは このYourJSスニペット から取られたもので、typeOf
がライブラリによって定義されているためにのみ機能します。主にtypeOf()
、isInt()
、およびisArray()
などのタイプチェック関数のみを備えたYourJSの最小限のバージョンをダウンロードできます。 http:// yourjs .com/snippets/build/34,2