最近、データ型を決定するための js の処理を伴うプロジェクトに取り組み、インターネットで関連情報を検索し、さまざまなデータ型の判定を個人的にテストしました。以下、編集者が具体的な内容をまとめてご紹介しますので、ぜひ参考にしてください!
1. JSのデータ型
1. 数値型(Number):整数と浮動小数点数を含みます。
2. ブール
3. 文字列
4. オブジェクト
5. 配列
6. Null
7. 未定義
2. 変数のデータ型を決定する
1. 数値型 (数字)
より一般的に使用される判定方法は次のとおりです:
function isNumber(val){ return typeof val === 'number'; }
ただし、場合によってはいいえ、たとえば:
var a; alert(isNumber(parseInt(a)));
ここで表示される内容は、次の図に示すように true です。 :
しかし、実際には、変数 a は NaN であり、数値演算には使用できません。
したがって、上記の関数は次のように変更できます:
function isNumber(val){ return typeof val === 'number' && isFinite(val); }
変更後は、下の図に示すように false が表示されます:
ちなみに、JavaScript の isFinite() 関数を紹介します。引数が無限大であるかどうかをチェックするために使用され、number が有限数である (または有限数に変換できる) 場合は true を返します。それ以外の場合、number が NaN (非数値)、または正または負の無限大数値の場合は、false が返されます。
2. Boolean
Boolean型の判定は比較的簡単で以下の方法で判定できます:
/* 判断变量val是不是布尔类型 */ function isBooleanType(val) { return typeof val ==="boolean"; }
テストコード:
実行結果:
3.
/* 判断变量是不是字符串类型 */ function isStringType(val) { return typeof val === "string"; }
/* 判断变量是不是Undefined */ function isUndefined(val) { return typeof val === "undefined"; }
function isObj(str){ if(str === null || typeof str === 'undefined'){ return false; } return typeof str === 'object'; }
function isNull(val){ return val === null; }
/* 判断变量是不是null */ function isNull(val){ return val === null; } /*测试变量*/ var a; var b = null; var c = "str"; //弹出运行结果 alert("变量a是null的判断结果是:"+isNull(a));//false alert("变量b是null类型的判断结果是:"+isNull(b));//true alert("变量c是null类型的判断结果是:"+isNull(c));//false
/*判断变量arr是不是数组 方法一 */ function isArray(arr) { return Object.prototype.toString.apply(arr) === '[object Array]'; } /*判断变量arr是不是数组 方法二 */ function isArray(arr) { if(arr === null || typeof arr === 'undefined'){ return false; } return arr.constructor === Array; }