log(Object.prototype.toString.call()); //"[object Null]" log(Object.prototype.toString.call(undefined)); // [object Undefined] log(Object.prototype.toString.call(null)); //"[object Null]" log(Object.prototype.toString.call("")); // [object String] log(Object.prototype.toString.call("a")); //"[object String]" log(Object.prototype.toString.call(1)); //"[object Number]" log(Object.prototype.toString.call(1.1)); //"[object Number]" log(Object.prototype.toString.call(true)); //"[object Boolean]" log(Object.prototype.toString.call([])); // [object Array] log(Object.prototype.toString.call([1])); //"[object Array]" log(Object.prototype.toString.call(new Date())); //"[object Date]" log(Object.prototype.toString.call(Symbol())); //"[object Symbol]" log(Object.prototype.toString.call(function a() {})); //"[object Function]" log(Object.prototype.toString.call(new Function())); //"[object Function]" log(Object.prototype.toString.call(new RegExp())); // [object RegExp] log(Object.prototype.toString.call(new Error())); // [object Error] log(Object.prototype.toString.call(global)); //[object global] log(Object.prototype.toString.call(context)); //[object JavaObject]