Khi một với toán tử typeof, người ta nhận được đối tượng kiểu, nó rơi vào thể loại hơi lãng phí. Trong thực tế, bạn có thể cần phải thu hẹp nó xuống loại 'đối tượng' mà nó thực sự là gì và một cách để làm điều đó là sử dụng tên phương thức khởi tạo đối tượng để biết nó thực sự là gì: Object.prototype.toString.call(yourObject)
String (Chuỗi)
Object.prototype.toString.call("String")
"[object String]"
Number (Số)
Object.prototype.toString.call(42)
"[object Number]"
Bool
Object.prototype.toString.call(true)
"[object Boolean]"
Object (Đối tượng)
Object.prototype.toString.call(Object())or
Object.prototype.toString.call({})
"[object Object]"
Function (Hàm)
Object.prototype.toString.call(function(){})
"[object Function]"
Date (Ngày)
Object.prototype.toString.call(new Date(2015,10,21))
"[object Date]"
Regex
Object.prototype.toString.call(newRegExp()) or
Object.prototype.toString.call(/foo/);
"[object RegExp]"
Array (Mảng)
Object.prototype.toString.call([]);
"[object Array]"
Null
Object.prototype.toString.call(null);
"[object Null]"
Undefined
Object.prototype.toString.call(undefined);
"[object Undefined]"
Error
Object.prototype.toString.call(Error());
"[object Error]"
Tham khảo GoalKicker.com
Dịch: Devmaster Academy