js判断数据类型的几种方式

JavaScript中有七种数据类型,分为两大类:基本数据类型和引用数据类型。

  1. 基本数据类型

    • String(字符串): 用于表示文本数据。
    • Number(数字): 用于表示数值,包括整数和浮点数。
    • Boolean(布尔): 用于表示逻辑值,即truefalse
    • Undefined(未定义): 表示变量已声明但尚未赋值。
    • Null(空值): 表示变量没有值,通常是程序员主动赋予的。
    • Symbol(符号)(ES6引入): 用于创建唯一的标识符。
    • BigInt(大整数)(ES11引入): 用于表示大整数,解决了JavaScript数字精度限制的问题。
  2. 引用数据类型

    • Object(对象): 用于表示复杂数据结构,可以包含多个属性和方法。
    • Array(数组): 用于表示有序集合的数据结构。
    • Function(函数): 用于表示可执行的代码块。
    • Date(日期): 用于表示日期和时间。
    • RegExp(正则表达式): 用于进行文本匹配和搜索。
    • MapSet(ES6引入): 用于处理键值对集合和唯一值集合。

判断数据类型的方式有多种,下面是常见的几种方法:

  1. typeof 操作符typeof 可以用来检测一个值的数据类型。它返回一个表示数据类型的字符串。

    typeof 42; // "number"
    typeof "Hello"; // "string"
    typeof true; // "boolean"
    typeof undefined; // "undefined"
    typeof null; // "object" (注意:null返回"object",这是一个历史悠久的bug)
    typeof {} // "object"
    typeof [] // "object"
    
  2. instanceof 操作符instanceof 用于检测对象的构造函数。它可以用来判断对象是否是特定类型的实例。

    const arr = [];
    console.log(arr instanceof Array); // true
    
  3. Object.prototype.toString.call():这种方式更准确,可以用来判断所有数据类型。

    Object.prototype.toString.call(42); // "[object Number]"
    Object.prototype.toString.call("Hello"); // "[object String]"
    Object.prototype.toString.call(true); // "[object Boolean]"
    Object.prototype.toString.call(undefined); // "[object Undefined]"
    Object.prototype.toString.call(null); // "[object Null]"
    Object.prototype.toString.call({}); // "[object Object]"
    Object.prototype.toString.call([]); // "[object Array]"
    
  4. Array.isArray()(仅用于判断数组类型):检查一个值是否是数组。

    Array.isArray([]); // true
    Array.isArray({}); // false
    
  5. 直接===
    当数据类型是undefined null 等基本数据类型时,可以用 ===来进行判断

总结
这些方法可以根据具体的需要来选择,typeof适合基本数据类型的检测,instanceof适合对象的构造函数检测,Object.prototype.toString.call()是通用的方法。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可缺不可滥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值