typeof返回值类型以及与instanceof的区别

xiaoxiao2022-06-11  23

一. typeof的返回值类型

typeof的返回值类型一共可分为七种: 1.string类型

typeof(“abc”)

2.number类型

typeof(20); typeof(NaN); typeof(Infinity)

3.boolean类型

typeof(true); typeof(false)

4.undefined类型

typeof(undefined); typeof(a);//不存在的变量

5.object类型

对象,数组,null返回object typeof(null); typeof(window);

6.function

typeof(Array); typeof(Date);

7.symbol

typeof Symbol() // ES6提供的新的类型

二.typeof与instanceof的区别

instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性。 使用规则:object instanceof constructor 要求前面是个对象,后面是一个构造函数。而且返回的是布尔型的,不是true就是false。

常用使用:由于typeof只能判断类型,所以,数组和对象返回的都是object,这时就需要使用instanceof来判断是否是 [] instanceof Array //true

所以,我们可以通过这两种方式封装一个函数专门进行类型判断:

function getDataType(obj) { if(obj === null){ return "null"; }else if(typeof obj === "object"){ if(obj instanceof Array){ return "array"; }else{ return "object"; } }else{ return typeof obj; } }
转载请注明原文地址: https://www.6miu.com/read-4931984.html
最新回复(0)