js判断数据类型的方法及优缺点 JS判断数据类型的方法有哪些



文章插图
js判断数据类型的方法及优缺点 JS判断数据类型的方法有哪些

文章插图
1.判断对象类型的方法:
//万能的类型判断方法,可以判断所有对象的类型const objectToString = Object.prototype.toString;const toTypeString = (value) => objectToString.call(value);//判断是否是Arrayconst isArray = Array.isArray;//判断是否是Mapconst isMap = (val) => toTypeString(val) === '[object Map]';//判断是否是Setconst isSet = (val) => toTypeString(val) === '[object Set]';//判断是否是Dateconst isDate = (val) => val instanceof Date;//判断是否是Functionconst isFunction = (val) => typeof val === 'function';//判断是否是Stringconst isString = (val) => typeof val === 'string';//判断是否是Symbolconst isSymbol = (val) => typeof val === 'symbol';//判断是否是非空对象const isObject = (val) => val !== null && typeof val === 'object';//判断是否是Promiseconst isPromise = (val) => {return isObject(val) && isFunction(val.then) && isFunction(val.catch);};//判断是否是普通的Object对象const isPlainObject = (val) => toTypeString(val) === '[object Object]';//特别注意:1.typeof 对象判断方法:typeof null // "object";typeof undefined //"undefined"2.声明未赋值的变量的类型为undefined:let abc //undefined2.判断对象是否有某个属性的方法:
const hasOwnProperty = Object.prototype.hasOwnProperty;const hasOwn = (val, key) => hasOwnProperty.call(val, key);3.JavaScript的全局变量对象:
【js判断数据类型的方法及优缺点 JS判断数据类型的方法有哪些】Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl