1. 檢視瀏覽器的對於API的支援
如現在的ES6的新特性promise Symbol Reflect…在瀏覽器的支援情況可以通過如下方法實現:
function isNative(api){
return /native code/.test(api.toString())&&typeof api !== `undefined`
}
關於[native code],這種[native code]是不是JS引擎內部實現的,比如chrome的V8引擎,其內部的回撥機制是內部C++程式碼,而不是真實的JS程式碼
2.獲取內建物件的子型別
function getObjType(par) {
return Object.prototype.toString.apply(par);
}
console.log(getObjType([])); //[object Array]
console.log(getObjType(new Date())); //[object Date]
console.log(getObjType(Math)); //[object Math]
console.log(getObjType(new Number(2))); //[object Number]
console.log(getObjType(`abc`)); //[object String]
console.log(getObjType(null)); //[object Null]
console.log(getObjType(undefined)); //[object Undefined]