JavaScript中判断数据类型的方法总结

 更新时间:2023年07月19日 16:42:40   作者:前端学习笔记_zxh  
这篇文章主要为大家详细介绍了一些JavaScript中判断数据类型的方法,文中的示例代码讲解详细,具有一定的学习价值,需要的小伙伴可以了解一下

JavaScript 的数据类型

  • string:字符串
  • number:数字
  • boolean:布尔值
  • undefined:未定义
  • null:空值
  • object:对象(包括数组和函数)
  • symbol:符号,独一无二的值(ES6新增)

一、typeof的缺陷

typeof 可以判断 stringnumberbooleanundefinedsymbolfunction 等类型,不可以判断 nullobject 类型。

var str = "Hello";
var num = 123;
var bool = true;
var undf;
var nl = null;
var obj = {name: "John", age: 25};
var arr = [1, 2, 3];
var func = function() {};
var sym = Symbol("mySymbol");
console.log(typeof str);    // 输出:string
console.log(typeof num);    // 输出:number
console.log(typeof bool);   // 输出:boolean
console.log(typeof undf);   // 输出:undefined
console.log(typeof nl);     // 输出:object
console.log(typeof obj);    // 输出:object
console.log(typeof arr);    // 输出:object
console.log(typeof func);   // 输出:function
console.log(typeof sym);    // 输出:symbol

注意:typeof 无法区分 nullObjectArray。typeof 判断这三种类型返回都是 'object'。

二、判断是否为数组

方法1

使用 instanceof 可以判断数据是否为数组。

[] instanceof Array // true

需要注意的是, instanceof 不可以用来判断是否为对象类型,因为数组也是对象。

[] instanceof Object // true
{} instanceof Object // true

方法2

constructor 也可以判断是否为数组。

[].constructor === Array // true

方法3

Object.prototype.toString.call() 可以获取到对象的各种类型。

Object.prototype.toString.call([]) === '[object Array]' // true
Object.prototype.toString.call({}) === '[object Object]' // true

此方法还可以用来判断是否为 promise 对象。

let obj = new Promise()
Object.prototype.toString.call(obj) === '[object Promise]' // true

方法4

使用数组的 isArray() 方法判断。

Array.isArray([]) // true

方法5

Object.getPrototypeOf(val) === Array.prototype // true 

三、判断是否为对象

方法1(推荐)

Object.prototype.toString.call() 可以获取到对象的各种类型。

Object.prototype.toString.call({}) === '[object Object]' // true

方法2

Object.getPrototypeOf(val) === Object.prototype // true

到此这篇关于JavaScript中判断数据类型的方法总结的文章就介绍到这了,更多相关JavaScript判断数据类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaScript中的声明提升实例详解

    JavaScript中的声明提升实例详解

    这篇文章主要为大家介绍了JavaScript中的声明提升实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • js实现的在线调色板功能完整实例

    js实现的在线调色板功能完整实例

    这篇文章主要介绍了js实现的在线调色板功能,结合完整实例形式分析了调色板的完整实现步骤与相关操作技巧,需要的朋友可以参考下
    2016-12-12
  • plupload+artdialog实现多平台上传文件

    plupload+artdialog实现多平台上传文件

    这篇文章主要介绍了plupload+artdialog实现多平台上传文件的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • 信息滚动效果的实例讲解

    信息滚动效果的实例讲解

    下面小编就为大家带来一篇信息滚动效果的实例讲解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 微信小程序车牌号码模拟键盘输入功能的实现代码

    微信小程序车牌号码模拟键盘输入功能的实现代码

    这篇文章主要介绍了微信小程序车牌号码模拟键盘输入功能的实现代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11
  • 浅析Echarts图表渲染导致内存泄漏的原因及解决方案

    浅析Echarts图表渲染导致内存泄漏的原因及解决方案

    在今年某个可视化大屏项目中,出现了一个问题,项目在运行一段时间后,页面出现了崩溃,而且是大概运行几天之后,因为大屏项目是部署到客户现场大屏,长时间运行不关闭,小编认为 Echarts 图表渲染导致了内存泄漏,本文将深入分析这一问题,并提供解决方案
    2023-10-10
  • js代码实现下拉菜单【推荐】

    js代码实现下拉菜单【推荐】

    本篇文章主要分享了js代码实现下拉菜单的代码,可复制直接运行看效果,具有很好的参考价值,跟小编一起来看下吧
    2016-12-12
  • JS小功能(checkbox实现全选和全取消)实例代码

    JS小功能(checkbox实现全选和全取消)实例代码

    这篇文章主要介绍了checkbox实现全选和全取消实例代码,有需要的朋友可以参考一下
    2013-11-11
  • JavaScript实现浏览器自动刷新网页的多种方法

    JavaScript实现浏览器自动刷新网页的多种方法

    本文介绍了5种常见的网页自动刷新方法:1安装浏览器扩展(推荐),2使用开发者工具控制台输入代码,3创建书签小工具,4添加meta标签修改网页代码,5运行Python脚本,下面小编为大家详细说说这五种方法,需要的朋友可以参考下
    2026-01-01
  • 使用js获取QueryString的方法小结

    使用js获取QueryString的方法小结

    从网上看到一些使用js获取QueryString的方法,但用起来不是很理想,所以决定自己写一个。主要原理是使用正则表达式匹配location.search中的字符串。
    2010-02-02

最新评论