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]