JS的数据类型?如何判断js的数据类型?

JavaScript 中的数据类型可以分为两大类:基本数据类型(Primitive Types)和引用数据类型(Reference Types)。

基本数据类型

  1. Undefined - 表示一个未初始化的值。
  2. Null - 表示一个空值或不存在的对象。
  3. Boolean - 包含两个值:true 和 false
  4. Number - 用于表示整数或浮点数,还包括特殊值如 NaN(非数字)和 Infinity
  5. String - 字符串是由单引号、双引号或反引号包围的零个或多个字符组成的文本。
  6. Symbol (ES6 新增) - 表示独一无二的值,通常用来创建对象的唯一属性键。
  7. BigInt (ES11 新增) - 可以安全地存储比 Number 类型上限更大的整数。

引用数据类型

  • Object - 包括普通对象 {}、数组 []、函数 function(){} 等。

判断数据类型的方法

使用 typeof 操作符

typeof 是最常用的判断数据类型的手段,但它对一些类型返回的结果可能不是特别精确:

  • typeof undefined 返回 "undefined"
  • typeof null 返回 "object" (这是一个历史遗留问题)
  • typeof true 返回 "boolean"
  • typeof 42 或 typeof NaN 返回 "number"
  • typeof 'blabla' 返回 "string"
  • typeof Symbol() 返回 "symbol"
  • typeof 1234567890123456789012345678901234567890n 返回 "bigint"
  • typeof {a: 1} 返回 "object"
  • typeof [1,2,3] 返回 "object"
  • typeof function() {} 返回 "function"
使用 instanceof

instanceof 运算符用来测试某个构造函数的 prototype 属性所指向的对象是否存在另外一个要检测对象的原型链上。主要用于判断引用类型的具体类型,例如是否为数组或特定构造函数的实例。

[1, 2, 3] instanceof Array // true
使用 Array.isArray()

专门用来判断某个值是否为数组类型。

Array.isArray([1, 2, 3]) // true
使用 Object.prototype.toString.call()

这种方法可以准确地获取任何类型的全称字符串表示形式,适用于所有数据类型。

Object.prototype.toString.call(null) // "[object Null]"
Object.prototype.toString.call(42) // "[object Number]"
Object.prototype.toString.call('blabla') // "[object String]"
// etc.

这些方法各有优劣,根据实际需求选择最适合的一种或几种组合使用来判断JavaScript中的数据类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值