*#type.js
関数 人物(名前, 年齢) {
this.name = 名前;
this.age = 年齢;
}
var d = {an: 'オブジェクト'};
var a = ['リンゴ', 'バナナ'];
var f = function() {};
var s = 'デビッド';
var n = 33;
var b = true;
var o = 新しいオブジェクト();
var person = 新しい人('マーク', 22);
console.log(typeof(d) ': ' d.constructor);
console.log(typeof(a) ': ' a.constructor);
console.log(typeof(f) ': ' f.constructor);
console.log(typeof(s) ': ' s.constructor);
console.log(typeof(n) ': ' n.constructor);
console.log(typeof(b) ': ' b.constructor);
console.log(typeof(o) ': ' o.constructor);
console.log(typeof(person) ': ' person.constructor);
运行$node type.js取得
オブジェクト: function Object() { [ネイティブ コード] }
オブジェクト: function Array() { [ネイティブ コード] }
関数: function Function() { [ネイティブコード] }
string: function String() { [ネイティブ コード] }
数値: 関数 Number() { [ネイティブ コード] }
boolean: function Boolean() { [ネイティブ コード] }
オブジェクト: function Object() { [ネイティブ コード] }
オブジェクト: function Person() { [ネイティブ コード] }
わかりますが、typeof 演算子とコンストラクターのプロパティ检测オブジェクト タイプの戻り値には差分が存在します。
結果变量が数組である場合、オブジェクトのタイプはオブジェクトを返し、コンストラクターのプロパティは配列を返します;
变量が構造関数数オブジェクトの場合、操作子タイプがオブジェクトを返し、コンストラクターのプロパティが構造関数数を返します
すべての变量都はその construcor プロパティを持ち、このプロパティは、このオブジェクトがどのようなタイプであるかというオブジェクトを提供します。 さらに、コンストラクターのプロパティは、オブジェクトを指向する構造関数を保持しており、独自に定義されているわけではなく、オリジナルの型のオブジェクトです。
一点必要な注意事項があります、異なる浏览器对typeofoperator检测正则表达式会有所以異、IE と Firefox 会は 'object' を返します。
よろしくお願いします。今日の内容はここにあります。ちょっとした懸念があるため、下に保存されています。