JS 判断数据类型办法总结
废话不多说先来总结:
/** 总结:* 1.typeof 能精确判断出根本数据类型,然而不能判断援用数据类型。判断援用类型时除 function 外其余判断后果都为 object。* 2.instanceof 不能判断根本数据类型,然而能精确判断援用数据类型。这是因为 instanceof 是通过是否找到构造函数的原型对象来判断的。* 3.Object.prototype.toString.call()能精确判断任何数据类型
*/
js 中数据类型 分为两大类:根本数据类型和援用数据类型。JS 根本数据类型(按值问):Number,String,Boolean,null,undefined,Symbol
援用数据类型(按援用拜访):Object,Array,function
具体示例如下:
let num=111;
let str='hello';
let flag=true;
/** 援用数据类型 */
let arr=[1,2,3];
let obj={name:'zhangsan',age:18};
const func=function(){console.log('---function');
};
/**typeof 判断数据类型 */
console.log(typeof num);//number
console.log(typeof str);//string
console.log(typeof flag);// boolean
console.log(typeof null);//object---null 自身就是对象,罕用来函数中返回不存在的对象。console.log(typeof undefined);//undefined
console.log(typeof Symbol);//function
console.log(typeof arr);//object
console.log(typeof obj);//object
console.log(typeof func);//function
/**typeof 判断数据类型总结:typeof 能很好的判断根本数据类型,然而对于援用数据类型不能很好判断。* 援用数据类型除 function 能判断外,其余判断后果都为 object。*/
/**instanceof 判断援用数据类型 */
console.log(num instanceof Number);//false
console.log(str instanceof String);//false
console.log(flag instanceof Boolean);//false
console.log(Symbol instanceof Symbol);//false
console.log(arr instanceof Array);//true
console.log(obj instanceof Object);//true
console.log(func instanceof Function);//true
/**instanceof 判断数据类型总结:instanceof 不能判断根本数据类型,能判断援用数据类型 */
/**Object.prototype.toString.call()判断数据类型 */
console.log(Object.prototype.toString.call(num));//[object Number]
console.log(Object.prototype.toString.call(str));// [object String]
console.log(Object.prototype.toString.call(flag));// [object Boolean]
console.log(Object.prototype.toString.call(null));// [object Null]
console.log(Object.prototype.toString.call(undefined));// [object Undefined]
console.log(Object.prototype.toString.call(Symbol));// [object Function]
console.log(Object.prototype.toString.call(arr));//[object Array]
console.log(Object.prototype.toString.call(obj));// [object Object]
console.log(Object.prototype.toString.call(func));// [object Function]