1/6
这些闪卡涵盖了Javascript对象的基础知识、拷贝方法及其比较、陷阱识别等内容。
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
JS对象的核心特征
复合数据型,键值对集合(键:字符串/Symbol,值:任意类型),动态性(随时增删属性),原型链继承机制。
JS对象赋值时发生的情况
内存地址引用(非对象本身),修改 obj2 会影响 obj1,obj1 === obj2 为真。
浅拷贝的常用方法
方法1:展开运算符 {…original};方法2:Object.assign({}, original);注意陷阱,嵌套对象的引用。
深拷贝方法优缺点比较
JSON.parse/stringify对基础对象支持好但丢失函数/Symbol;structuredClone()支持循环引用但不支持函数;Lodash库 _.cloneDeep支持复杂对象但需引入外部库。
何时使用浅拷贝?何时必须深拷贝?
浅拷贝适用场景:简单配置对象、性能敏感、需要共享嵌套;深拷贝必需场景:状态管理库、不可变数据、多层嵌套对象。
深浅拷贝核心差异记忆口诀
浅拷贝:快又省,共享引用要小心;深拷贝:独立强,性能稍差无影响。
导致问题的代码示例
const original = { date: new Date(), fn: () => console.log('Hi') }; const copy = JSON.parse(JSON.stringify(original)); 导致 copy.date 变成字符串,copy.fn 为 undefined。正确方法为:structuredClone() 或 Lodash.