在 JavaScript 开发里,数据类型是地基。理解它的分类、判断和差异,是写出健壮代码的前提。咱们从分类聊起,再到怎么判断,最后看看它们在内存里的区别。
一、JS 数据类型的分类与具体种类
JavaScript 数据类型基于存储方式和访问机制的本质差异,分为两大类别,共计8 种具体类型。
1. 两大核心分类
- 基础数据类型(也叫原始数据类型、值类型)
- 引用数据类型(也叫复杂数据类型、引用类型)
2. 8 种具体数据类型
(1)基础数据类型(7 种)
基础数据类型是不可再分的最小单元,直接存储具体的值:
String:字符串类型,用于表示文本数据,如"Hello JS"、'123'(单引号、双引号、反引号均可);Number:数值类型,包含整数、浮点数以及特殊数值,如100、3.14、NaN(非数字)、Infinity(无穷大);Boolean:布尔类型,仅包含两个值,表示真假状态:true和false;Undefined:未定义类型,只有一个值undefined,表示变量已声明但未赋值,或访问不存在的对象属性时的返回值;Null:空值类型,只有一个值null,表示一个有意指向的'空对象',通常用于手动清空变量的引用;Symbol:ES6 新增的唯一标识类型,每个实例独一无二,用于解决对象属性名冲突问题,如Symbol('name');BigInt:ES10 新增的大整数类型,用于表示超出Number类型安全范围(±2^53-1)的整数,后缀以n标识,如9007199254740993n。
(2)引用数据类型(1 种,核心为 Object)
引用数据类型本质是对数据的引用,存储的是内存地址,而非具体值。核心类型为 Object,常见的衍生或内置类型都属于 Object 的子类:
- 普通对象:
{ name: "张三", age: 20 }; - 数组:
[1, 2, 3, "JS"](本质是有序索引的对象); - 函数:
function fn() { return 1; }(本质是可执行的对象); - 正则表达式:
/^\d+$/; - 日期对象:
new Date()等。
二、判断 JavaScript 数据类型的常用方法
开发中经常需要判断变量类型,不同方法有各自的适用场景和局限性。
1. typeof 操作符:基础数据类型首选
typeof 是最常用的基础判断方法,返回表示数据类型的字符串,语法:typeof 变量/值。
适用场景与示例:
// 基础数据类型判断(除 null 外均准确)
console.log( );
.( );
.( );
.( );
.( ());
.( );
.( {});
.( []);
.( /abc/);
.( (){});
.( );


