1. JavaScript面试现状与准备策略2023年的前端技术生态正在经历新一轮洗牌TypeScript的普及率突破60%ECMAScript新特性被各大厂快速落地这对JavaScript基础能力的考察提出了更高要求。根据我近期参与的大厂技术面试统计JavaScript在技术轮考察中的占比仍高达45%-60%远高于框架相关题目。面试官最常采用的考察模式是原理手写场景应用三位一体原理层面重点考察执行上下文、作用域链、闭包等核心机制手写环节常见如深拷贝、Promise封装等具有实际工程价值的实现场景题常结合微任务/宏任务机制设计异步执行顺序问题重要提示2023年面试新趋势是减少对冷门API的记忆考察更关注对语言特性的理解深度。例如不再问Object.keys和Object.getOwnPropertyNames的区别而是要求用Proxy实现自动依赖收集。2. 执行上下文与作用域高频考点2.1 变量提升的现代理解传统教材常简单描述为变量声明提升到作用域顶部但现代面试更关注let/const的TDZ暂时性死区机制console.log(a); // ReferenceError let a 1;面试官期望候选人能解释编译阶段识别所有声明包括let/const执行到声明语句前访问会触发TDZ错误与var的本质区别在于初始化时机而非是否提升2.2 闭包的实战应用模式闭包问题已从单纯的概念考察升级为实际应用场景分析// 模块模式 const counter (() { let count 0; return { increment() { count }, get() { return count } }; })();高频追问点内存泄漏风险与Chrome DevTools的Memory面板验证方法在React Hooks中的具体体现useState实现原理性能优化手段避免在循环中创建闭包3. 原型与继承深度解析3.1 新型class语法糖背后的本质虽然ES6引入了class关键字但面试常要求用原型链实现相同功能class Animal { constructor(name) { this.name name; } } // 等价于 function Animal(name) { this.name name; } Animal.prototype.method function() {...};必考点包括super关键字的实现原理[[HomeObject]]机制静态方法与非静态方法的存储位置差异与工厂函数的性能对比V8隐藏类优化3.2 继承方案的演进对比2023年常见继承方式考察权重组合寄生式继承80%ES6 class继承15%原型链继承仅作原理考察典型实现对比// 组合寄生 function inherit(Child, Parent) { const prototype Object.create(Parent.prototype); prototype.constructor Child; Child.prototype prototype; } // ES6 class Child extends Parent {...}4. 异步编程进阶考点4.1 事件循环的Node.js差异浏览器与Node环境下事件循环的区别成为大厂必考环境阶段划分微任务执行时机浏览器宏任务→渲染→宏任务每个宏任务结束后Node.js6个阶段循环执行阶段切换时常考例题setTimeout(() console.log(1), 0); Promise.resolve().then(() console.log(2)); process.nextTick(() console.log(3)); // Node输出3 2 1 // 浏览器2 1 34.2 async/await的底层转化要求候选人能将async函数转换为Promise实现async function fetchData() { const res await apiCall(); return res.data; } // 等价于 function fetchData() { return apiCall().then(res { return res.data; }); }深度考点await表达式后的执行上下文恢复机制错误冒泡处理try/catch与.catch的转换关系与generator的关联可被babel转译验证5. 内存管理实战要点5.1 闭包内存泄漏定位使用Chrome DevTools的Memory面板实操获取堆快照Heap Snapshot对比多次快照的Retained Size增长定位到具体闭包引用链典型泄漏模式function leak() { const hugeArray new Array(1e6).fill(*); return function() { console.log(leak); }; }5.2 WeakMap的合理使用场景适合存储与对象生命周期绑定的元数据const metadata new WeakMap(); function setMetadata(obj, data) { metadata.set(obj, data); }与Map的关键区别不影响垃圾回收不可枚举安全性更高典型应用DOM节点关联数据存储6. ES2023新特性考察点6.1 Array.prototype.findLast新增的反向查找方法const arr [1, 2, 3, 2]; arr.findLast(v v 2); // 返回最后一个2面试官可能要求用reduceRight实现相同功能对比indexOf/lastIndexOf的性能差异6.2 Hashbang语法规范Node.js现已标准化Shebang支持#!/usr/bin/env node use strict; console.log(Hello CLI);考察重点与CommonJS/ES Module的互操作规则跨平台行尾字符处理权限管理chmod x在实际面试准备中建议按照概念理解→手写实现→性能分析→工程应用的递进路线系统复习。对于每个核心知识点至少准备一句话定义两种不同实现方式一个实际应用案例可能引发的性能问题最后分享一个调试技巧在回答原型问题时可以现场使用console.dir展示完整原型链这种可视化演示往往能给面试官留下深刻印象。对于异步问题画出事件循环的阶段图示比单纯口述更有效。