【JS】一文告诉你如何判断JS的数据类型?

常用的类型判断方法

1. typeof 操作符:简洁快速,适合基本类型

typeof 操作符是我们判断基本类型的得力助手,例如字符串、数字、布尔值、`undefined、函数、Symbol 以及 BigInt。

let num = 123;
console.log(typeof num); // 输出: 'number'

let str = "hello";
console.log(typeof str); // 输出: 'string'

let bool = true;
console.log(typeof bool); // 输出: 'boolean'

需要注意的是:

typeof null 会返回 'object',而不是 'null',这是 JavaScript 的一个历史遗留问题。
对于数组和对象,typeof 操作符都会返回 'object',无法区分。

2. instanceof 关键字:精准判断对象类型

  1. 用于判断一个对象是否属于某个构造函数的实例。
  2. 对于数组、日期等内置对象类型判断非常有用。
let arr = [];
console.log(arr instanceof Array); // 输出: true

let date = new Date();
console.log(date instanceof Date); // 输出: true

3. Array.isArray() 方法:简洁高效,专用于数组

Array.isArray() 方法是专门用来判断一个变量是否为数组类型的,比 instanceof 更简洁明了。

let arr = [];
console.log(Array.isArray(arr)); // 输出: true

4. Object.prototype.toString.call() 方法:全面精确,适合所有类型

Object.prototype.toString.call() 方法是最全面的类型判断方法,可以精确判断出包括 null 在内的所有类型的变量。它返回一个形如 ‘[object Type]’ 的字符串,其中 Type 表示变量的类型。

let num = 123;
console.log(Object.prototype.toString.call(num)); // 输出: '[object Number]'

let arr = [];
console.log(Object.prototype.toString.call(arr)); // 输出: '[object Array]'

let nul = null;
console.log(Object.prototype.toString.call(nul)); // 输出: '[object Null]'

如何选择合适的类型判断方法?

  • 对于基本类型判断,建议使用 typeof 操作符,简洁高效。
  • 对于数组类型判断,Array.isArray() 方法最为准确。
  • 对于对象类型判断,可以使用 instanceof 关键字。
  • 对于需要精确区分所有类型的场景,Object.prototype.toString.call() 方法是最佳选择。
  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一个前端人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值