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]