这是我为准备前端/全栈开发工程师面试整理的第八天每日三题练习,涵盖 JavaScript 内存泄漏、React 状态提升与 prop drilling、以及高可用权限系统。每道题都配有详细解析和代码示例,助你真正掌握原理与实战技巧!
内存泄漏是指程序不再使用的内存无法被回收,常见场景包括:
function leaky() {
let data = new Array(1000000).fill("leak");
return () => console.log(data);
}
const hold = leaky(); // data 被闭包持有,内存无法释放
状态提升(Lifting State Up):将子组件共享的状态提升到最近的共同父组件。
prop drilling(属性穿透):当状态或方法需要一层层向下传递时,可能会导致维护困难。
方法 | 优点 | 问题 |
---|---|---|
状态提升 | 保持状态单一源头 | 组件间耦合度增加 |
prop drilling | 保持数据流明确 | 中间组件冗余传参,维护困难 |
// 父组件提升状态
function Parent() {
const [count, setCount] = useState(0);
return ;
}
function Child({ count, setCount }) {
return ;
}
权限系统的本质是 控制用户是否能访问某资源或执行某操作,通常由以下几个核心组成:
User -> Role -> Permission -> Resource
function checkPermission(user, action) {
const permissions = getPermissions(user.role);
return permissions.includes(action);
}
模块 | 知识点 | 关键技巧 |
---|---|---|
JavaScript | 内存泄漏 | 闭包引用、定时器未清、监听器未清除 |
React | 状态共享 | 状态提升、prop drilling、Context API |
系统设计 | 权限系统 | RBAC 模型、前后端协作、接口鉴权 |
保持输入,保持好奇,真正掌握一项技能从深度思考开始。加油,未来架构师!