欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript 判断数据类型的4种方法

程序员文章站 2022-03-02 12:21:36
本文提供四种方法判断js数据类型,这里记录了它们之间的差异,分别是 typeof 运算符、instanceof 运算符、constructor 属性、object.prototype.tostring...

本文提供四种方法判断js数据类型,这里记录了它们之间的差异,分别是 typeof 运算符、instanceof 运算符、constructor 属性、object.prototype.tostring 方法。

一、使用 typeof 判断数据类型

控制台输出如下:

测试 number -> number
测试 boolean -> boolean
测试 string -> string
测试 null -> object
测试 undefined -> undefined
测试 nan -> number
测试 function -> function
测试 object -> object
测试 array -> object
测试 date -> object
测试 error -> object
测试 regexp -> object
测试 symbol -> symbol
测试 map -> object
测试 set -> object

总结:

1、typeof只能判断:

  • string(返回string),
  • number(返回number),
  • boolean(返回boolean),
  • undefined(返回undefined),
  • function(返回function),
  • symbol(返回symbol)

2、对于new构造出来的都是返回object

3、对于object和array都是返回object

二、使用 instanceof 判断数据类型

控制台输出如下:

测试 number -> false
测试 boolean -> false
测试 string -> false
测试 nan -> false
测试 function -> true
测试 object -> true
测试 array -> true
测试 date -> true
测试 error -> true
测试 regexp -> true
测试 symbol -> false
测试 map -> true
测试 set -> true
测试 new number -> true
测试 new boolean -> true
测试 new string -> true

总结:

1、不能判断 null,undefined

2、基本数据类型 number,string,boolean 不能被判断

3、instanceof 用来判断对象是否为某一数据类型的实例,
上例中1,true,''不是实例,所以判断为false

三、使用 constructor 判断数据类型

控制台输出如下:

测试 number -> true
测试 boolean -> true
测试 string -> true
测试 nan -> true
测试 function -> true
测试 object -> true
测试 array -> true
测试 date -> true
测试 error -> true
测试 regexp -> true
测试 symbol -> true
测试 map -> true
测试 set -> true

总结:

不能判断null,undefined,其它的都可以

四、使用 object.prototype.tostring 判断数据类型

控制台输出如下:

测试 number -> [object number]
测试 boolean -> [object boolean]
测试 string -> [object string]
测试 null -> [object null]
测试 undefined -> [object undefined]
测试 nan -> [object number]
测试 function -> [object function]
测试 object -> [object object]
测试 array -> [object array]
测试 date -> [object date]
测试 error -> [object error]
测试 regexp -> [object regexp]
测试 symbol -> [object symbol]
测试 map -> [object map]
测试 set -> [object set]

总结:

目前最完美的判断数据类型的方法

结语:以上为笔者的测试和总结。如有误或不完整地方,欢迎各位老铁指正。

以上就是javascript 判断数据类型的4种方法的详细内容,更多关于javascript判断数据类型的资料请关注其它相关文章!