视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
JS判断数据类型的方法有哪些
2020-11-27 19:26:39 责编:小OO
文档
 JS判断数据类型的方法有:typeof方法用于返回该类型的字符串形式,instanceof方法用来判断原型,constructor方法以及Object.prototype.toString 方法

在JavaScript中有多种方法可以帮助我们去判断数据类型,接下来将在文章中为大家详细介绍这些方法,具有一定的参考作用希望对大家有所帮助。

【推荐课程:JavaScript教程】

方法一:typeof方法

typeof 是一个操作符,右侧是一个一元表达式,并返回这个表达式的数据类型。返回的结果用该类型的字符串的形式表示,包括:number、boolean、symbol、string、object、undefined、function 等。

返回值分以下几种类型:

对于基本类型。除了null值返回object以外,其他均返回正确的结果

对于引用值来说,除了function返回function类型,其他都返回object类型

例:

<script type="text/javascript">
var a = "string";
 console.log(a); //string
 var a = 1;
 console.log(typeof a); //number
 var a = false;
 console.log(typeof a); //boolean
 var a;
 console.log(typeof a); //undfined
 var a = null;
 console.log(typeof a); //object
 var a = document;
 console.log(typeof a); //object
 var a = [];
 console.log(a); //[]
 var a = function() {};
 console.log(typeof a) //function 
</script>

效果图:

方法二:instanceof方法

instanceof 是用来判断 A 是否为 B 的实例,表达式为:A instanceof B,如果 A 是 B 的实例,则返回 true,否则返回 false。 在这里需要特别注意的是:instanceof 检测的是原型。

<script type="text/javascript">
var a=[];
console.log(a instanceof Array)
</script>

返回的结果:true

方法三:constructor方法

当一个函数被定义时,JS引擎会为它添加 prototype 原型,然后再在 prototype上添加一个 constructor 属性,并让其指向该函数的引用。

当执行 var f = new F() 时,F被当成了构造函数,f 是F的实例对象,此时 F 原型上的 constructor 传递到了 f 上,因此 f.constructor == F

方法四:Object.prototype.toString 方法

toString是Object原型对象上的一个方法,该方法默认返回其调用者的具体类型,更严格的讲,是 toString运行时this指向的对象类型, 返回的类型格式为[object,xxx],xxx是具体的数据类型,其中包括:String,Number,Boolean,Undefined,Null,Function,Date,Array,RegExp,Error,HTMLDocument等等都可以通过这个方法获取到。

console.log(Object.prototype.toString.call(num));
console.log(Object.prototype.toString.call('')) ; 
console.log(Object.prototype.toString.call(1)) ; 
console.log(Object.prototype.toString.call(true)) ; 
console.log(Object.prototype.toString.call(null)) ; 
console.log(Object.prototype.toString.call(new Function()) ); 
console.log(Object.prototype.toString.call(new Date())) ; 
console.log(Object.prototype.toString.call([])) ; 
console.log(Object.prototype.toString.call(document)) ; 
console.log(Object.prototype.toString.call(window) );

效果图:

总结:

下载本文
显示全文
专题