JavaScript でオブジェクトの種類を判断するいくつかの方法

typeof方法

typeof 演算子 typeof は、オペランドの型を示す文字列を返す単項演算子です。

 console.log( typeof {
    
    })
 console.log( typeof [])
 console.log( typeof new Date())

出力結果:
ここに画像の説明を挿入
上記の単純な例では、typeof の欠陥を見つけることができます。その機能は制限されており、Date 型と RegExp 型に対して "object" を返します。
したがって、オブジェクトとプリミティブ型を区別する場合にのみ役立ちます。あるオブジェクト タイプを別のオブジェクト タイプと区別するには、他の方法を使用する必要があります。

instanceof方法

instanceof 演算子では、左側のオペランドがオブジェクトであり、右側のオペランドがオブジェクトのクラスまたはコンストラクターの名前である必要があります。object がクラスまたはコンストラクターのインスタンスである場合、instanceof 演算子は true を返します。object が指定されたクラスまたは関数のインスタンスでない場合、または object が null の場合は false を返します。

        let arr=[]
        let obj={
    
    }
        let date=new Date
        console.log(arr instanceof Array)
        console.log(arr instanceof Object)
        console.log(arr instanceof RegExp)
        console.log(obj instanceof Array)
        console.log(obj instanceof Object)
        console.log(obj instanceof RegExp)
        console.log(date instanceof Array)
        console.log(date instanceof Object)
        console.log(date instanceof Date)

出力結果:
ここに画像の説明を挿入

コンストラクタ プロパティ

JavaScript では、各オブジェクトにコンストラクター属性があり、オブジェクトを初期化するコンストラクターを参照し、不明なオブジェクトの型を判別するためによく使用されます。たとえば、既知の値が与えられた場合、 typeof 演算子を使用して、それがプリミティブ値かオブジェクトかを判断します。オブジェクトの場合は、constructor 属性を使用してその型を決定できます。
オブジェクトが配列かどうかを判断する簡単な例を作成します。

        let arr=[]
        console.log(arr.constructor == Array)

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_43183219/article/details/124176591