通過建構函式名稱獲取物件型別
當 typeof
運算子之一獲得型別 object
時,它會陷入某種程度上……
在實踐中,你可能需要將其縮小到它實際上是什麼型別的物件,並且一種方法是使用物件建構函式名稱來獲取它實際上是什麼樣的物件:Object.prototype.toString.call(yourObject)
1.字串
Object.prototype.toString.call("String")
“[object String]”
2.號碼
Object.prototype.toString.call(42)
“[物件編號]”
布林
Object.prototype.toString.call(true)
“[object Boolean]”
4.物件
Object.prototype.toString.call(Object())
或
Object.prototype.toString.call({})
“[object Object]”
5.功能
Object.prototype.toString.call(
function(){})
“[物件功能]”
6.日期
Object.prototype.toString.call(new Date(2015,10,21))
“[物件日期]”
7.正規表示式
Object.prototype.toString.call(new RegExp())
或
Object.prototype.toString.call(/foo/);
“[物件 RegExp]”
8.陣列
Object.prototype.toString.call([]);
“[object Array]”
9.空
Object.prototype.toString.call(null);
“[物件無效]”
10.未定義
Object.prototype.toString.call(undefined);
“[物件未定義]”
11.錯誤
Object.prototype.toString.call(
Error());
“[物件錯誤]”