检测数据类型的方法

    xiaoxiao2022-07-07  179

    js数据类型的检测方式

    typeof 能检测基本类型(null除外,它返回object)和函数,对于引用类型只返回object也可以检测ES6新增的Symbol类型 console.log(typeof 123); //number console.log(typeof 'abc'); //string console.log(typeof true); //boolean console.log(typeof undefined); //undefined console.log(typeof null); //object console.log(typeof [1,2,3]); //object console.log(typeof {a:1,b:2,c:3}); //object console.log(typeof function(){}); //function console.log(typeof Symbol()); //symbol instanceof 用来检测一个对象是否为某个类(构造函数)的实例,返回布尔值语法:object instanceof constructor console.log([1,2,3] instanceof Array); //true console.log({a:1,b:2,c:3} instanceof Object) //true // 定义一个类 class Cat { constructor(name) { this.name = name; } walk() { console.log('I can walk'); } } // 实例化 let cat = new Cat('Vue'); // 检测 console.log(cat instanceof Cat); //true

    3.constructor

    constructor是对象上的属性,指向构造函数 let num = 123; console.log(num.constructor); //ƒ Number() { [native code] } console.log('abc'.constructor); //ƒ String() { [native code] } console.log(true.constructor); //ƒ Boolean() { [native code] } console.log([1,2,3].constructor); //ƒ Array() { [native code] } console.log({a:1,b:2,c:3}.constructor); //ƒ Object() { [native code] } console.log(function(){}.constructor); //ƒ Function() { [native code] } console.log(new Date().constructor); //ƒ Date() { [native code] } console.log(/^[a-z]{2,5}$/.constructor); //ƒ RegExp() { [native code] } console.log(Symbol().constructor); //ƒ Symbol() { [native code] }

    4.toString.call()

    相当于 Object.prototype.toString.call console.log(toString.call(123)); //[object Number] console.log(toString.call('abc')); //[object String] console.log(toString.call(true)); //[object Boolean] console.log(toString.call(undefined)); //[object Undefined] console.log(toString.call(null)); //[object Null] console.log(toString.call([1,2,3])); //[object Array] console.log(toString.call({a:1,b:2,c:3})); //[object Object] console.log(toString.call(function(){})); //[object Function] console.log(toString.call(new Date())); //[object Date] console.log(toString.call(/^[a-z]{2,5}$/)); //[object RegExp]
    最新回复(0)