typeof
は常にプリミティブ型を返します。 ( '文字列'、 '番号'、 'オブジェクト'など)。
オブジェクトがプリミティブ型構造、名前と値のペアの系列として格納されている基本データ型の順不同のリストです。
Object
は、プリミティブオブジェクトのコンストラクタです。
var test = {};
console.log(typeof test); // object
console.log(test instanceof object) // false
console.log(test instanceof Object) // true
これによると、typeof
意志を使用して、日付またはArrayをチェックするにはobject
返す:オブジェクトが実際に日付または配列の場合
typeof []; // object
typeof new Date(); // object
をテストするには、instanceof
を使用することができます:
[] instanceof Array; // true
new Date() instanceof Date; // true
typeof null
については、それがthe MDNに応じてのECMAScriptのバグだとnullにする必要があります。バグはthis answerで詳しく説明されています。 A fixがオプトインで提案されましたが、残念ながらnull
をテストするために、この特定の「バグ」を使用しているコードのために変更が拒否されました。多くの場合、非常に不正確な情報が含まれています(W3C(World Wide Webコンソーシアム)と間違われることはない)
私は情報が混乱し、そうでない場合は平野間違っていると思います。関数もオブジェクトです。そして、ここでは言及されていない他の多くのオブジェクトがあります:Number、String、RegExp ... –
「私はW3Schoolで次のような声明を見ました。 ---最初のルールは、w3schoolsを使用しないでください。決して。 **決して**。 – zerkms
代わりに[MDN docs](https://developer.mozilla.org/en/docs/Web/JavaScript/Data_structures)を試してください。 – Tigger