1. js基本数据类型(7种)
string,number, boolean, null, undefined, Symbol, BigInt
2. ES6+新增类型
- Symbol 唯一不可变的原始类型
- BigInt 超大整数类型
- Map 键值对集合
- Set 无重复值的集合
- WeakMap/WeakSet 弱引用集合
- WeakMap:键必须是对象,弱引用→当对象无其他引用时,会被 GC 回收,对应键值对自动删除;
- WeakSet:值必须是对象,同理弱引用,无size属性,不可遍历;
- 无内存泄漏风险:适合临时关联对象数据。
- Promise 异步操作对象
- 用于处理异步操作的对象,解决回调地狱问题。
- Generator(ES6)/Async/Await(ES2017)------ 异步迭代类型
- Generator:返回迭代器的函数(function*),可暂停 / 恢复执行,是 Async/Await 的底层基础;
- Async/Await:语法糖,基于 Generator 和 Promise,将异步代码同步化书写。
- ArrayBuffer/TypedArray/DataView(ES6)------ 二进制数据类型
- ArrayBuffer:表示固定长度的二进制数据缓冲区(不可直接操作);
- TypedArray:操作 ArrayBuffer 的视图(如 Uint8Array、Float32Array),对应不同数据类型;
- DataView:灵活操作 ArrayBuffer,支持不同字节序。
3. ES6+新增语法
- let/const(替代var)
- let:块级作用域、无变量提升、不可重复声明;
- const:块级作用域、声明必赋值、引用不可改(原始值不可变,引用类型仅冻结指针);
- 解构赋值:快速提取数组 / 对象数据
- 箭头函数:() => {}
- 模板字符串:``
- 模块化:import / export
- 类:class
- 可选链操作符:?.
- 空值合并运算符:??