JavaScript有7种原始数据类型(string、number、boolean、null、undefined、symbol、bigint)和1种引用类型(object),共8类;原始类型按值存储,引用类型按引用存储。
JavaScript 中的数据存储方式和数据类型是两个密切相关但不同层面的问题。数据类型决定了你能存什么、怎么存,而储存方式(比如变量、对象属性、本地存储等)则决定了数据放在哪里、能用多久。
JavaScript 有 7 种原始(primitive)数据类型,加上 1 种引用类型(object),共 8 类。ES2025 新增了 BigInt,ES2025 加入了 Symbol(其实 Symbol 在 ES6 就已存在,但常被遗漏),目前标准如下:
:表示文本,如 "hello"
42、3.14;也包含 NaN 和 Infinity
true 和 false
n 结尾,如 123n
JavaScript 中“储存数据”不是靠类型本身,而是靠你把数据放在哪儿。常见方式有:
obj.key = value 或 obj[key] = value 存,适合结构化组织数据push()/unshift() 等方法存,适合有序、可遍历的数据集合localStorage:字符串键值对,长期保存(除非手动清除)sessionStorage:仅当前会话有效,关闭标签页即清空IndexedDB:支持结构化数据、事务、大量存储,适合离线应用这是理解“怎么存”和“怎么取”的核心:
例如:let a = {x: 1}; let b = a; 后,修改 b.x 也会改变 a.x —— 因为它们指向同一个对象。
储存前先问自己三个问题:
localStorage 或后端持久化localStorage 或 Cookie,优先用 httpOnly Cookie 或服务端 session
IndexedDB
类型判断可用 typeof(注意 typeof null === 'object' 是历史 bug),更准确用 Object.prototype.toString.call(value)。