JavaScript 词条目录
前端Wiki/JavaScript/基础/变量与数据类型

基本数据类型

JS 的值分为两大类:基本类型(按值保存)和引用类型(按地址保存)。基本类型有 7 种:number、string、boolean、undefined、null、symbol、bigint;引用类型主要是 object(数组、函数、日期本质上都是对象)。

检测类型用 typeof 运算符,但有两个著名的坑要记住:typeof null 返回 "object"(历史遗留 bug),数组用 typeof 也返回 "object",要判断数组请使用 Array.isArray()。

基本类型赋值是复制值本身,两份数据互不影响;引用类型赋值是复制地址,两个变量指向同一个对象,改一个另一个也会变——这是初学者最容易踩的坑之一。

本节要点7 种基本类型 + object 引用类型;typeof null 是 'object';判断数组用 Array.isArray;引用类型赋值共享同一个对象。
JavaScript
let n = 42;                    // number:整数小数都是
let s = '文本';                // string
let b = true;                  // boolean
let u;                         // undefined:声明了没赋值
let empty = null;              // null:刻意表示"空"
let big = 9007199254740993n;   // bigint:超大整数
let sym = Symbol('id');        // symbol:全局唯一值

let obj = { name: '小明' };    // object:引用类型
let arr = [1, 2, 3];           // 数组也是 object

console.log(typeof n);          // number
console.log(typeof obj);        // object
console.log(typeof arr);        // object(数组的坑)
console.log(Array.isArray(arr)); // true,判断数组用它
console.log(typeof null);       // object(历史遗留 bug)
console.log(typeof u);          // undefined

// 引用类型的坑:赋的是地址
const a = { x: 1 };
const b = a;          // b 和 a 指向同一个对象
b.x = 99;
console.log(a.x);     // 99,a 也被改了!