网易校招前端笔试全解析:考点地图与高效备考策略 1. 网易校招前端笔试到底考什么一场非典型的“知识体检”每年秋招季网易的校招笔试都是前端岗位投递热度最高的几场之一。2020年这场正式批笔试我印象非常深——它不算特别难但覆盖面出奇地广几乎把前端工程体系里所有核心环节都拉了一遍。那天考完之后很多人在群里吐槽“复习了三个月框架原理结果被一道CSS题问住了”也有人因为是第一次用牛客网的在线IDE写算法题慌了神连“回文判断”都没AC。如果你准备参加今年的校招或社招其实不必纠结“这是哪一年的题”因为网易乃至整个互联网大厂的校招题目考察逻辑多年未变基础扎实、原理清楚、手写不慌、思路能讲明白。真正有价值的是把这张卷子里蕴含的知识地图拆开看它反推出的一套前端工程师能力模型是什么。先说几个核心观察题型非常固定单选、多选、编程题。单选和多选一般占60-70分编程题一到两道占30-40分。没有简答题也没有让你写设计文档的题目。选择题考得很“散”从HTML语义化到浏览器缓存从事件循环到Vue响应式原理从HTTP状态码到Webpack打包流程覆盖面极广。编程题难度中等偏基础通常不考复杂的图论或动态规划而是偏“逻辑字符串数组操作”但要求你写出可运行的完整代码边界情况要处理干净。这也解释了为什么笔试结束之后大家的体验两极分化。复习时只盯着“面经里常问的面试题”的人往往在选择题上翻车而认真把整个前端知识体系重过一遍的人即使编程题没完全AC选择题也能把分数拉回来。所以我更愿意把这份笔试卷子看作一张知识体检单它不考验你有多深的研究能力而是考验你的知识面是否完整、基础概念是否准确、写代码是否形成肌肉记忆。下文按考察维度拆开讲每个维度我都补了原理分析和实操经验方便你直接拿去对标复习。2. JavaScript语言基础选择题的“重灾区”与手写题的“基本功”2.1 变量提升、闭包和this指向概念题的高频命题点网易的笔试卷子里JavaScript基础部分几乎占了选择题的30%以上。高频考点集中在这几个方向变量提升与暂时性死区TDZvar、let、const的区别是必考题但网易很少直接问你“区别是什么”而是给你一段代码让你判断输出var a 1; function foo() { console.log(a); var a 2; console.log(a); } foo();这段代码输出undefined和2。第一行console.log(a)不会报错是因为var a被提升到了函数作用域顶部但赋值没有提升所以值是undefined。如果把它换成let a 2第一行就会直接抛ReferenceError因为进入了暂时性死区。这个区别理解了基本就不会错。闭包与循环中的经典陷阱另一个高频题是循环里用var定义变量地创建异步任务for (var i 0; i 5; i) { setTimeout(() console.log(i), 100); }输出是5, 5, 5, 5, 5。原因是var是函数作用域循环结束后i变成了5所有回调共享同一个i。用let声明可以解决因为let是块级作用域每一次循环都会创建独立的绑定。我在实际面试中也会问候选人这个问题但会追加一句“除了let你还有哪些办法让输出变成0到4”这里可以答IIFE立即执行函数传参、用Function.prototype.bind传参、或者把值存在数组里。网易的多选题很可能从这些解法里挑两个作为选项你要能分辨哪个可行、哪个不可行。this指向关于this的选择题几乎每次都会出现。核心判断逻辑就一句话看函数如何被调用而不是在哪里定义。const obj { name: netease, getName() { return this.name; } }; const fn obj.getName; console.log(fn());这里输出undefined严格模式下或全局对象的name非严格模式因为fn()是普通函数调用this指向window/global而不是obj。只有obj.getName()这种通过对象属性调用的写法this才指向obj。2.2 原型链与继承让你“画图”比让你“做题”更有效原型链的题在网易试卷里出现率非常高而且经常和new的实现、instanceof的原理混在一起考。先记住一张基本对象关系图fn (函数对象) → Function.prototype → Object.prototype → null obj (普通对象) → Object.prototype → null Array → Function.prototype → Object.prototype → null判断题常考[].constructor Array、[].__proto__.constructor Array、Array.prototype.constructor Array这些都是true。而[].__proto__ Array.prototype也成立。instanceof的原理就一句话右边的构造函数的prototype是否出现在左边的原型链上。所以[] instanceof Object为true因为Array.prototype继承自Object.prototype。笔试里如果想稳妥读懂原型链的选项我建议你把new的手写实现也复习一遍。这个手写题在很多企业的笔试里出现过网易也有概率考function myNew(Constructor, ...args) { const obj Object.create(Constructor.prototype); const result Constructor.apply(obj, args); return typeof result object result ! null ? result : obj; }注意Object.create这一步它把obj的__proto__指向构造函数的prototype完成原型链的连接。然后apply把构造函数里的this绑定到obj上执行属性赋值。最后判断返回值如果构造函数显式返回了对象就以它为准否则返回obj。2.3 异步与事件循环从输出顺序看你对宏任务/微任务的理解Event Loop是前端笔试的“必考大户”网易一般会这样出题console.log(script start); setTimeout(() { console.log(setTimeout); }, 0); Promise.resolve().then(() { console.log(promise1); }).then(() { console.log(promise2); }); console.log(script end);输出顺序是script start → script end → promise1 → promise2 → setTimeout。关键点在于同步代码执行完毕后先清空微任务队列Promise.then、MutationObserver再执行宏任务setTimeout、setInterval、I/O。而每个宏任务执行完之后又会检查微任务队列是否为空为空才执行下一个宏任务。掌握这个框架绝大多数异步题的输出顺序你都可以推导出来。网易也喜欢把async/await混进来考async function async1() { console.log(async1 start); await async2(); console.log(async1 end); } async function async2() { console.log(async2); } async1(); console.log(script start);这里要注意await async2()会把async2()的返回值一个Promiseresolve之后才继续执行后面的代码而“继续执行”这步被放到了微任务队列里。所以输出是async1 start → async2 → script start → async1 end。这类题不难但需要你在那种考试状态下保持冷静别被嵌套的Promise搞晕。我的经验是先在草稿纸上画出同步任务、宏任务队列、微任务队列三个栏然后逐行“执行”代码把输出填进去。这个习惯能帮你减少八成失误。2.4 手写题防抖节流、深拷贝与数组去重网易的编程题如果只考一道往往是“逻辑基础API”的组合不太会要求你默写某个框架的源码。但两道题的情况也不少第二道可能就是基础手写题。整理一下我认为值得反复练的手写清单手写目标核心考点注意事项与进阶防抖 debouncethis绑定、闭包、定时器清理支持前置调用immediate节流 throttle时间戳对比、定时器支持首尾触发的配置深拷贝递归、循环引用、Date/RegExpWeakMap记录已拷贝对象数组去重Set、Map、双重循环考虑NaN和对象数组扁平化递归、reduce、迭代指定深度参数的写法手写Promise链式调用、状态流转、异步队列按Promise/A规范实现resolve/reject深拷贝是我个人强烈建议你背熟的一道题因为它看起来简单但想写对非常难function deepClone(target, map new WeakMap()) { if (target null || typeof target ! object) return target; if (target instanceof Date) return new Date(target); if (target instanceof RegExp) return new RegExp(target); if (map.get(target)) return map.get(target); const cloneTarget Array.isArray(target) ? [] : {}; map.set(target, cloneTarget); Reflect.ownKeys(target).forEach(key { cloneTarget[key] deepClone(target[key], map); }); return cloneTarget; }这里有两个关键点用WeakMap解决循环引用问题比如obj.self obj用Reflect.ownKeys遍历所有自有属性键包括Symbol作为键的情况。WeakMap的弱引用特性让它在深拷贝完成后可以被垃圾回收不会造成内存泄漏。笔试时间有限如果你只能准备两个手写题我的建议是防抖节流和深拷贝。这两个在网易的卷子里出现频率极高而且能体现代码功底。3. 浏览器原理与网络知识从输入URL到页面渲染的“整条链路”3.1 页面渲染流程选择题和简答题都爱考的骨干知识网易的选择题里浏览器渲染相关的内容也占了不小比重。你需要能把一条完整链路讲清楚输入URL浏览器解析协议、域名、端口、路径等信息。DNS解析域名获得IP地址。注意会先查浏览器缓存、系统缓存、路由器缓存都没有才走本地DNS服务器。建立TCP连接HTTP请求发出服务器返回HTML文档。浏览器拿到HTML后开始解析HTML构建DOM树。解析过程中遇到CSS会构建CSSOM树CSS Object Model。DOM树和CSSOM树合并生成渲染树Render Tree。根据渲染树计算每个节点的几何信息进行布局Layout/Reflow。把布局结果绘制到屏幕上Painting。页面加载完成后如果还有异步资源继续加载处理。网易经常从这条链路里抽出细节来考。比如CSS是否会阻塞DOM解析不会阻塞DOM树的构建但会阻塞渲染树的生成因为渲染需要CSSOM。这就是为什么CSS要尽早加载、尽量合并。Script标签放在哪里会影响性能普通脚本会阻塞DOM解析所以一般放在body末尾。但现代浏览器支持defer和async属性defer是延迟到文档解析完了再执行async是下载完立刻执行。重排Reflow和重绘Repaint有什么区别改变几何信息宽高、位置、display会触发重排只改变颜色、背景等样式会触发重绘。重排必然导致重绘但重绘不一定会重排。我当时复习时有一个笨办法把“输入URL到页面展示”的每个步骤写成一条笔记然后闭上眼睛复述一遍。能完整复述、不漏关键步骤选择题基本就稳了。3.2 浏览器缓存从强缓存到协商缓存的判定标准浏览器的缓存机制是网易笔试的“老朋友”几乎每年都考。核心分成两块强缓存服务器通过响应头Cache-ControlHTTP/1.1或ExpiresHTTP/1.0告诉浏览器这个资源在某个时间内直接使用本地缓存不要发请求。Cache-Control的常用值max-age3600资源在3600秒内有效。public任何节点包括代理服务器都可以缓存。private只有浏览器本地可以缓存。no-cache不要直接使用本地缓存需要向服务器验证资源是否过期。no-store完全不缓存。协商缓存当强缓存过期或设置了no-cache浏览器会带着If-Modified-Since或If-None-Match向服务器再次请求服务器根据资源是否变化决定返回200返回新资源还是304继续用本地缓存。Last-Modified/If-Modified-Since基于时间戳判断精度低如果一秒内多次修改可能判断不准。ETag/If-None-Match基于内容hash判断精度高。服务器会优先校验If-None-Match。网易喜欢让你根据一组响应头判断第二次请求的行为。做题套路先看Cache-Control有没有命中强缓存如果没有再判断协商缓存的条件是否触发如果两者都没有缓存头那就是每次都要重新请求。3.3 跨域与常见解决方案为什么JSONP只能GET跨域是前端笔试必考内容网易也不例外。核心要理解一个概念同源策略要求协议、域名、端口三者一致不一致的请求会被浏览器拦截。常用解决方式有JSONP利用script标签不受同源策略限制的特性动态创建script标签通过URL传回调函数名服务器返回一段执行回调的JavaScript代码。它只能支持GET请求因为本质上是一次脚本加载。CORS服务端设置Access-Control-Allow-Origin等响应头允许特定来源的跨域请求。这是最标准、最推荐的方案。Proxy代理在开发环境下通过webpack dev server或nginx做反向代理把跨域请求转发到目标服务器前端代码里请求的是同源地址。postMessage主要用于iframe和window.open打开的窗口之间的通信。网易选择题的套路是给你一个场景比如“前端需要调用第三方接口不支持CORS接口只支持GET”问哪个方案可行。如果你能明确“JSONP只能GET”和“CORS需要服务端配合”这两个边界答案基本就能锁定。3.4 HTTP状态码别只记404重点掌握1xx和3xx浏览器网络部分还常常考HTTP状态码。网易的出题风格一般不是直接问“500是什么意思”而是给一个网络请求的过程让你推断状态码的变化。需要重点掌握的状态码含义笔试常考场景200OK请求成功正常响应301永久重定向域名更换后跳转新地址302临时重定向未登录跳转到登录页304Not Modified协商缓存命中资源未修改400Bad Request请求参数格式错误401Unauthorized未认证403Forbidden有认证但无权限404Not Found资源不存在500服务器内部错误后端代码异常502Bad Gateway网关错误后端服务未启动504Gateway Timeout网关超时后端处理太久有一次笔试就考了这样一个场景用户首次访问一个静态资源服务端返回200第二次访问带上了If-None-Match服务端返回304。问两次请求中哪一次网络传输的时长更长答案是第一次因为第二次只返回响应头没有资源本体304的body是空的。这种题把缓存机制和状态码结合着考我第一遍还真做错过后来才意识到304代表“没变化继续用缓存”几乎没有body内容。4. 数据结构与算法题笔试中实际写代码的“硬仗”4.1 编程题的题型分布与刷题建议网易的算法编程题一般不会太偏太难但要注意笔试需要在限定时间内完成而且是在牛客网或赛码网的在线IDE上没有ide的智能提示环境比较简陋。从历年题目来看频繁出现的算法题型包括字符串处理回文判断、字符串翻转、子串匹配、字符计数。数组/链表操作数组去重、排序、删除元素、链表反转。简单动态规划爬楼梯、最大子序和、打家劫舍。栈/队列应用括号匹配、用两个栈实现队列。二叉树基础遍历、最大深度、层序遍历。这些题目本质上都是LeetCode的简单或中等难度。如果你想针对性准备网易可以把LeetCode高频题按“数组、字符串、链表、二叉树、动态规划”五个分类各挑20道认真刷两遍。4.2 一道经典编程题最长回文子串的实现与优化我拿“最长回文子串”这道题举例它是很多大厂笔试的常客网易也有过类似题目。暴力解法是遍历所有子串再判断是否是回文时间复杂度O(n^3)在笔试里必超时。更稳妥的做法是中心扩展法时间复杂度O(n^2)function longestPalindrome(s) { if (!s || s.length 2) return s; let start 0, maxLength 1; const expandAroundCenter (left, right) { while (left 0 right s.length s[left] s[right]) { const currentLength right - left 1; if (currentLength maxLength) { maxLength currentLength; start left; } left--; right; } }; for (let i 0; i s.length; i) { expandAroundCenter(i, i); // 奇数长度的回文 expandAroundCenter(i, i 1); // 偶数长度的回文 } return s.substring(start, start maxLength); }这里有两个关键点需要说明为什么中心要分奇偶两种情况回文串的长度可能是奇数也可能是偶数。奇数长度回文的中心是一个字符偶数长度回文的中心是两个字符之间的空隙。中心扩展法从每个可能的中心向两侧扩展所以必须两者都考虑。为什么记录start和maxLength而不是直接返回子串因为每次扩展都可能更新最长结果用指针记录比每次substring切分再比较的代价小得多。面试官或阅卷系统看你写的代码时也会看重这种细节处理。笔试时如果没有思路我建议先写出暴力解保底再尝试优化。AC一道题得全部分数半AC也比空着强。很多在线判题系统是按“通过的测试用例比例”给分的你能过一部分用例也能拿一部分分数。4.3 笔试答题的“时间分配策略”选择题别恋战关于编程题的答题时间我有一条经验想特别分享不要在一道题上死磕超过30分钟。正常一份卷子是90分钟或120分钟编程题如果做不出来死磕半小时可能只是浪费时间。我的策略是拿到卷子先花2分钟扫描全部题目。优先做有把握的选择题控制在一分钟内一题超过90秒没思路就标记跳过。编程题先做自己熟悉的题目保证AC一道。最后留20分钟回来处理难题或检查。可能有人觉得“先做编程题、再快速做选择”更快但从分数结构来看选择题每题少则2分、多则4分编程题一般也就30分左右选择题的分更容易拿。先把确定的分拿到手再冲高分值是校招笔试的基本原则。5. Vue/React、安全与性能优化框架之外的综合素养考察5.1 框架底层原理Vue2响应式与虚拟DOM的“必背块”网易笔试里Vue和React的占比也很高而且考虑到2020年这个时间节点Vue2依然是主力Vue3刚刚发布不久。但无论你准备的是Vue2还是Vue3核心原理都是相通的。Vue2响应式原理Vue2的响应式基于Object.defineProperty核心流程是对data的每个属性调用Object.defineProperty设置getter和setter。getter里收集依赖订阅当前属性的watcher。setter里通知依赖更新。这里有两个常见的考点Object.defineProperty无法监听新增属性是它的天然缺陷所以Vue2提供了Vue.set方法或者你用this.$set来给对象添加新的响应式属性。数组的索引和length变化同样无法被拦截所以arr[0] 1不会触发视图更新要用splice、push等方法。Vue3的响应式用了ES6的Proxy可以拦截对象属性的新增、删除、读取、写入弥补了Vue2的缺陷。它还实现了Reflect配合使用保证this指向正确。这个对比很可能出现在多选题里问“关于Vue3响应式正确的是哪些”。虚拟DOM与diff算法虚拟DOM的核心思想用JavaScript对象模拟DOM结构数据变化时通过对比新旧虚拟DOM找出最小差异再批量更新真实DOM。关键优势不是“一定比直接操作DOM快”而是降低了手动操作DOM的复杂度、跨平台能力强可以渲染到小程序、原生App。Vue2的diff算法在同层比较时使用双指针。Vue3加入了静态标记PatchFlag在编译阶段就能标记哪些节点的哪部分动态变化极大提升了diff效率。笔试选择题里可能会让你判断“虚拟DOM一定比真实DOM操作快”这个说法是否正确答案是否定的——在极小的更新场景下虚拟DOM的diff计算开销可能反而更大它的优势在于复杂应用下的可维护性和跨平台能力。5.2 Vue的组件通信方式选择题常出的“枚举题”组件通信在前端笔试里出现频率也非常高。网易可能会这么问“以下哪些方式可以实现Vue组件通信”你需要能把所有方式都列出来而且知道它们分别适用的场景。通信方式适用场景说明props / $emit父子组件父传子用props子传父用$emit$parent / $children父子组件直接访问实例耦合度高$refs父访问子组件实例常用于主动调用子组件方法EventBus$on/$emit任意组件适合小规模跨层级通讯Vue3可用mitt替代provide / inject祖先与后代适合深层级注入但数据不是响应式的除非传ref/reactive对象Vuex / Pinia全局状态共享适合中大型项目统一管理状态$attrs / $listeners跨层级属性透传常用于高阶组件或组件二次封装如果你在笔试中看到“EventBus的主要问题”这类选项要能选出“事件名容易重复、调试困难、不适合大型项目”这类判断。5.3 前端安全XSS与CSRF的“攻防关系”安全相关的题目网易笔试也会出现不算多但一旦出现就是拉开差距的题。XSS跨站脚本攻击核心是攻击者把恶意脚本注入到页面中执行。入口包括用户输入、URL参数、富文本内容等。防御手段主要有对用户输入进行转义HTML转义、URL编码。使用CSP内容安全策略限制脚本来源。对Cookie设置HttpOnly防止通过JavaScript读取用户会话。对富文本内容做白名单过滤。CSRF跨站请求伪造核心是攻击者诱导用户在已登录的网站中发起非预期的请求。比如你在某论坛登录了账号攻击者在一篇帖子里嵌了图片链接指向转账接口浏览器带着你的Cookie发出请求服务器以为是本人操作。防御手段校验请求头中的Origin或Referer。使用Token同步令牌或自定义请求头。敏感操作要求二次验证比如输入验证码、支付密码。SameSite Cookie属性设置为Strict或Lax可以很大程度阻止跨站请求携带Cookie。笔试常考的是“判断哪些措施能防御XSS/CSRF”你只要把两种攻击的手段和防御方式分别记牢基本上不会错。5.4 前端性能优化从网络层到渲染层的“提速清单”性能优化是前端笔试和面试都会问的内容网易也不例外。复习时可以按下面这个层次来组织网络层优化减少HTTP请求次数合并CSS/JS、CSS Sprite雪碧图、字体图标。使用CDN让用户就近访问缓存资源。开启HTTP缓存合理配置Cache-Control和ETag。开启HTTP/2或HTTP/3多路复用、头部压缩、服务端推送。资源压缩Gzip/Brotli压缩、HTML/CSS/JS压缩、图片压缩。渲染层优化减少重排和重绘批量修改DOM、使用requestAnimationFrame、避免强制同步布局。使用虚拟列表长列表只渲染可视区域。图片懒加载loadinglazy或IntersectionObserver实现。CSS动画使用transform和opacity这两个属性可以触发GPU加速不引起重排。构建层优化代码分割按路由懒加载首屏只加载必要资源。Tree Shaking移除未引用的代码。合理使用CDN加载第三方库比如Vue、React通过script标签引入而不是打包到业务代码里。有一道经典的网易选择题页面首屏加载过慢以下哪些方法能有效优化选项包括“图片懒加载”“合并压缩JS/CSS”“把script标签放head里”“开启Gzip”。这里“把script标签放head里”是错误选项因为普通脚本会阻塞HTML解析反而拖慢首屏。这种题就是靠你对渲染链路是否真的理解。6. 从笔试到Offer答题策略、复盘方法与备考节奏的真实经验6.1 考场上最容易犯的五个低级失误我见过太多人不是因为不会做而挂掉而是因为下面这些失误很可惜。给你提个醒第一个选择题漏选多选。网易的多选题一般会标明“少选得部分分多选错选不得分”。但如果你不确定的选项太多宁可选你最有把握的两个也不要为了“多拿分”把不确定的也选上。很多系统的计分规则是“完全匹配才得分”多选一个错的直接0分。第二个编程题不处理输入输出。牛客网/赛码网的题目需要你写完整的输入输出处理跟LeetCode的“函数补全”不一样。很多人刷题只刷LeetCode不熟悉readline来读取多行输入结果第一题就卡在输入解析上。考前一定要去牛客网至少做两三道“输入输出”专项题练手。第三个JavaScript的精度问题。如果编程题里出现了大数运算直接使用Number会溢出。2020年那次笔试有一位同学写信回文相关题目时用parseInt解析了一串超长数字结果精度丢失怎么提交都对不上。处理大整数建议用BigInt或者干脆用字符串处理不转Number。第四个不处理边界条件。输入可能为空数组、字符串可能只有一个字符、目标值可能不存在。刷题时养成习惯先判空再判断长度是否为1再写主逻辑。在线判题系统最爱考这些边界用例。第五个时间分配失衡。前面说的“选择题恋战”问题。如果一个选择题你连题目都读不懂直接跳过别浪费五分钟去猜——猜对的概率一般不会超过25%把时间留给有把握的题更值。6.2 笔试结束之后如何复盘与准备面试笔试结束不代表战斗结束。网易的招聘流程一般是投递简历→笔试→技术面试两到三轮→HR面→Offer。笔试通过之后面试官手里是能看到你的笔试成绩和代码的所以笔试阶段暴露出的问题面试环节很可能会被追问。复盘时可以问自己几个问题哪些选择题是蒙对的这些知识点是否真正理解编程题AC了多少如果没能全部AC是算法思路问题还是输入输出处理问题哪些概念一下子想不起来比如响应头字段、某个数组API的参数说明这些知识需要系统背一遍。我特别建议你把笔试里考到的每一道题都整理成一份笔记尤其是错题和蒙对的题。网易面试官非常喜欢追问“你笔试那道题是怎么考虑的”如果你能不仅说出正确答案还能讲清楚排除错误选项的理由会给你加分不少。6.3 我见过的高效复习路线四周时间足够吗如果你还剩一个月左右准备校招笔试可以按这个节奏走第一周基础查漏。快速过一遍HTML、CSS、JavaScript基础重点复习你平时用得少但笔试常考的部分CSS的BFC与选择器优先级、ES6的新特性Promise、async/await、解构、展开运算符、数组和字符串的常用API。第二周框架与网络。把Vue或React的核心原理啃下来。不需要你读过所有源码但响应式原理、虚拟DOM、diff算法、生命周期、组件通信这些必须能讲明白。同时复习浏览器缓存、HTTP状态码、跨域方案。第三周算法题专项。每天保持3-5道题的刷题量优先刷“数组、字符串、哈希表、双指针、链表”这些容易出笔试题的类型。用牛客网的校招真题模式来做适应输入输出处理。第四周模拟考试与弱点补强。找两到三套历年真题掐时间做完整模拟。做完之后把错误集中在哪几类再回头翻对应的博客或文档补课。这条路线不要求你每天学12个小时但需要你每天保持一定手感。编程这件事三天不写就手生尤其是笔试这种需要在无IDE提示下写代码的场景更是要形成条件反射。6.4 一个容易被忽略的提分点做题时留下的“思路痕迹”最后再分享一个冷门但非常有效的技巧尤其是在使用牛客网这类在线编程系统时如果你在编程题里无法写出完整正确的代码可以把清晰的注释和部分实现写在代码里。某些笔试系统的阅卷过程包括“被人工查看”即使自动判题没有AC面试官在翻看你的代码时看到你思路清晰、注释完整也会对你产生好印象。比如// 思路先排序再用双指针从左右两端逼近 // 当前sum target时右移右指针 // 当前sum target时左移左指针 // 2020-09-01 笔试现场不要轻视这种“半成品”代码的价值。对于无法AC的题它至少证明你有思路、有逻辑而不是完全不会。在竞争激烈的校招里一点点的印象分都可能影响“进入面试”的筛选决策。从网易2020这场笔试往前看往后看校招笔试的考察框架其实一直都很稳定前端基础、JS语言、浏览器与网络、框架原理、数据结构和算法。把这张地图补齐了考哪一年、哪一家公司你都不会慌。