js判断数据类型方法总结

JS判断数据类型方法总结

废话很少说先来总结:函数

/**总结:
 * 1.typeof能准确判断出基本数据类型,可是不能判断引用数据类型。判断引用类型时除function外其余判断结果都为object。
 * 2.instanceof 不能判断基本数据类型,可是能准确判断引用数据类型。这是由于instanceof是经过可否找到构造函数的原型对象来判断的。
 * 3.Object.prototype.toString.call()能准确判断任何数据类型
 */

js中数据类型分为两大类:基本数据类型和引用数据类型。
JS基本数据类型(按值问):Number,String,Boolean,null,undefined,Symbolprototype

引用数据类型(按引用访问):Object,Array,functioncode

具体示例以下:对象

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]
相关文章
相关标签/搜索