深浅拷贝 · 扁平化 · 嵌套取值 · 属性过滤 · 合并 · 比较 · 遍历
场景:复制表单数据到编辑器,修改副本不能影响原数据。必考,深拷贝几乎 100% 问。
Reflect.ownKeys 拷贝 Symbol 属性。生产环境直接用 structuredClone(obj)。场景:只复制一层,嵌套对象还是引用。理解浅拷贝是理解深拷贝的前提。
场景:表单嵌套数据提交到后端要扁平化;配置文件 key 用点分隔。
场景:取深层属性 obj.user.address.city,任何一层为空都不会报错。前端取后端数据防 undefined 必备。
acc?.[key] 可选链是灵魂,避免 Cannot read property of undefined。场景:API 请求只发白名单字段(pick);密码字段不返回前端(omit)。
omit(user, ['password', 'salt', 'token']) 是必做操作,防止敏感数据泄露。场景:合并多层配置对象,比如默认配置 + 用户配置。Object.assign 只合并第一层。
场景:判断两个对象内容是否相同(=== 比较的是引用)。React.memo、表单 dirty 判断常用。
场景:找出对象里所有等于某值的路径;批量改字段名;统计对象大小。
场景:后端返回扁平数组(带 pid),前端要构建成树给 Tree 组件。这是前端面试必考题。
场景:面试官常问"为什么不用 JSON.parse(JSON.stringify())?"要知道每种方法的边界。