Object.prototype.toString()
该方法返回描述某个对象数据类型的字符串,如自定义的对象没有被覆盖,则会返回“[object type]”,其中,type则是实际的对象类型。在使用该方法检测的时候,可以使用Object.prototype.toString.call()或者Object.prototype.toString.apply()进行测试,如
var toString = Object.prototype.toString;
toString.call(new Date);//[object Date]
toString.call(new String);//[object String]
toString.call(Math);//[object Math]
toString.call(undefined);//[object Undefined]
toString.call(null);//[object Null]
toString.call(new FormData());//[object FormData]
toString.call({});//[object Object]
toString.call([]);//[object Array]
toString.call(1);//[object Number]
toString.call(NaN);//[object Number]
toString.call(function () {});//[object Function]
toString.call(new Map());//[object Map]
toString.call(File);//[object File]
因此,引出Object.prototype.toString.call(obj).slice(8,-1),如
Object.prototype.toString.call('ESStudio balabala……');
//"[object String]"
Object.prototype.toString.call('ESStudio balabala……').slice(8,-1);
//"String"
slice(startIndex,endIndex),从0开始索引,其中8代表从第8位(包含)开始截取(本例中代表空格后面的位置),-1代表截取到倒数第一位(不含),所以正好截取到[object String]中的String。
方法使用于各种数据类型判断