js檢視瀏覽器是否支援某一方法 [nativecode] 如ES6新特性 && 獲取內建物件的子型別

雲深不知處發表於2017-06-29

1. 檢視瀏覽器的對於API的支援


如現在的ES6的新特性promise Symbol Reflect…在瀏覽器的支援情況可以通過如下方法實現:

function isNative(api){
    return /native code/.test(api.toString())&&typeof api !== `undefined`
}

API支援

關於[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]

相關文章