ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptでオブジェクトのデータ型を確認するにはどうすればよいですか?
この記事の内容は、JavaScript でオブジェクトのデータ型を決定する方法についてです。 、特定の参考値があり、困っている友人がそれを参照できます。お役に立てば幸いです。
js のさまざまなデータのブール値の型の概要: false: 空の文字列; NaN; true: 上記の false の場合を除き、その他はすべて true です。
JavaScript には 6 つのデータ型があります: string;boolean; 配列;オブジェクト;null;未定義。これらのデータ型を検出する方法の概要は次のとおりです:
最初の方法: typeof
var obj = {'name':'Tom'} var arr = ['a','b','c'] var str = 'chenxinming' var bool = true var num = 1 var n = null var fn = function(n){ console.log(n) } console.log(typeof obj) // object console.log(typeof arr) // object console.log(typeof str) // string console.log(typeof bool) // boolean console.log(typeof num) // number console.log(typeof n) // object console.log(typeof fn) // function
上記のテストにより、typeof が両方を返すことがわかります。配列や辞書を検出するときの型。これはオブジェクトですが、配列なのかオブジェクトなのかを見分けることはできません。配列かオブジェクトかを確認したい場合は、instanceof メソッドとコンストラクター メソッドを使用します。
2 番目のメソッド:instanceof
var obj = {'name':'Tom'} var arr = ['a','b','c'] var str = 'chenxinming' var bool = true var num = 1 var n = null var fn = function(n){ console.log(n) } console.log(obj instanceof Object) // true console.log(arr instanceof Array) // true console.log(str instanceof String) // false console.log(bool instanceof Boolean) // false console.log(num instanceof Number) // false console.log(n instanceof Object) // false console.log(fn instanceof Function) // true
注:instanceof は、配列とオブジェクトを決定するために使用されますが、この関数は文字列、数値、ブール型を判断できません。文字列とブール型を判断する必要がある場合は、tostring() メソッドを使用できます。
特記事項:
instanceof メソッドは、配列がオブジェクトかどうかをチェックするときに True を返します。
var arr = ['a','b','c'] console.log(arr instanceof Object) // true
instanceof を使用する場合は、厳密に次のことを行う必要があります。配列であるかどうかを判断する、またはオブジェクトである場合の改良コードは次のとおりです。
var obj = {'name':'Tom'} var arr = ['a','b','c'] var str = 'chenxinming' var getDataType = function(data){ if(data instanceof Array){ return 'Array' } else if (data instanceof Object){ return 'Object' } else{ return 'data is not obejct type' } } getDataType(obj) // Object getDataType(obj) // Array getDataType(obj) // data is not obejct type
3 番目のメソッド:constructor
var obj = {'name':'Tom'} var arr = ['a','b','c'] var str = 'chenxinming' var bool = true var num = 1 var n = null var fn = function(n){ console.log(n) } console.log(obj.constructor == Object) // true console.log(arr.constructor == Array) // true console.log(str.constructor == String) // true console.log(bool.constructor == Boolean) // true console.log(num.constructor == Number) // true console.log(fn.constructor == Function) // true
テストの結果、コンストラクターがオブジェクト、配列のチェックをサポートしていることがわかりました。 、String、Boolean、Number、Function
4 番目のメソッド: toString (推奨)
var obj = {'name':'Tom'} var arr = ['a','b','c'] var str = 'chenxinming' var bool = true var num = 1 var n = null var fn = function(n){ console.log(n) } console.log(Object.prototype.toString.call(obj)) // [object Object] console.log(Object.prototype.toString.call(arr)) // [object Array] console.log(Object.prototype.toString.call(str)) // [object String] console.log(Object.prototype.toString.call(bool)) // [object Boolean] console.log(Object.prototype.toString.call(num)) // [object Number] console.log(Object.prototype.toString.call(n)) // [object Null] console.log(Object.prototype.toString.call(fn)) // [object Function]
テストから、このメソッドには toString を使用するのが最適です。充実した機能。
以上がJavaScriptでオブジェクトのデータ型を確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。