返回數據類型tostring

作者:烽行天下

toString方法是最為可靠的類型檢測手段,它會將當前對象轉換為字符串并輸出。 toString屬性定義在Object.prototype上,因而所有對象都擁有toString方法。 但Array, Date等對象會重寫從Object.prototype繼承來的toString, 所以最好用Object.prototype.toString來檢測類型。

toString = Object.prototype.toString;

toString.call(new Date);    // [object Date]
toString.call(new String);  // [object String]
toString.call(Math);        // [object Math]
toString.call(3);           // [object Number]
toString.call([]);          // [object Array]
toString.call({});          // [object Object]

// Since JavaScript 1.8.5
toString.call(undefined);   // [object Undefined]
toString.call(null);        // [object Null]

toString也不是完美的,它無法檢測用戶自定義類型。 因為Object.prototype是不知道用戶會創造什么類型的, 它只能檢測ECMA標準中的那些內置類型。

toString.call(new Animal)   // [object Object]

因為返回值是字符串,也避免了跨窗口問題。當然IE彈窗中還是有Bug,不必管它了。 現在多少人還在用IE?多少人還在用彈窗?

和Object.prototype.toString類似地,Function.prototype.toString也有類似功能, 不過它的this只能是Function,其他類型(例如基本數據類型)都會拋出異常。

四川时时彩在线投注