JavaScriptでオブジェクトのデータ型を確認するにはどうすればよいですか?

不言
リリース: 2018-10-27 15:23:56
転載
1972 人が閲覧しました

この記事の内容は、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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート