聊城市网站建设_网站建设公司_建站流程_seo优化
2025/12/28 23:01:28
网站建设
项目流程
字节前端面试近期以基础深度+工程化+框架原理+算法编程+网络与浏览器 为核心,一面重基础与手写,二面偏场景与方案设计,三面会结合字节业务(如抖音、直播)考察性能与架构能力。以下按模块整理高频题,附面试友好的答题要点与示例,方便你快速对标准备。
一、HTML/CSS高频题(一面必问) 实现元素水平垂直居中的常用方式(Flex、Grid、绝对定位+transform、table-cell等,分别说明适用场景)。 什么是BFC?触发条件、渲染规则与应用场景(如清除浮动、防止margin重叠)。 盒模型的两种模式(content-box、border-box),如何切换?宽高计算差异。 Flex布局的核心属性(flex-direction、flex-wrap、flex-grow/shrink/basis),如何实现两栏/三栏自适应布局。 如何用CSS实现自适应正方形(padding-top百分比法、aspect-ratio)。 CSS优先级计算规则,!important、内联、ID、类、标签的权重关系。 opacity、visibility、display: none的区别(渲染、事件、过渡、重排重绘)。 二、JavaScript核心题(贯穿全流程) 原型链与继承:原型对象与构造函数的关系、继承的常用实现方式(ES5原型链继承、ES6 class extends),举例说明。 闭包的定义、产生原因、应用场景(防抖节流、模块化)与内存泄漏风险。 this指向规则(默认、隐式、显式、new绑定),如何改变this指向(call/apply/bind)。 Promise的状态与执行顺序,手写Promise.all/race,解决回调地狱与竞态问题(如避免旧请求覆盖新请求)。 数组扁平化(flat实现)、数组去重、实现map/reduce方法,forEach中如何中断循环。 与 =的区别,对象转原始类型的流程,如何让if(a == 1 && a == 2)成立。事件循环(Event Loop)机制:宏任务/微任务分类,结合async/await的执行顺序分析。 三、浏览器与网络(高频深度题) 从URL输入到页面渲染的完整流程(DNS解析→TCP连接→HTTP请求→响应解析→DOM/CSSOM构建→布局→绘制→合成)。 HTTP缓存机制:强缓存(Cache-Control、Expires)与协商缓存(Last-Modified/If-Modified-Since、ETag/If-None-Match),如何禁止缓存。 跨域问题的原因与解决方案(CORS、JSONP、代理、postMessage、Cookie+Session+Nginx反向代理)。 HTTPS的加密流程:非对称加密(握手)+对称加密(传输)+CA证书验证,对比HTTP的核心差异。 TCP三次握手、四次挥手的过程,重传机制、滑动窗口与拥塞控制(慢启动、快重传)。 script标签async/defer的区别,对DOM解析与JS执行的影响。 四、框架与工程化(根据简历提问) React:虚拟DOM的作用与diff算法,Hooks原理(useState/useEffect依赖项),React 18并发特性(如Suspense)。 Vue:Vue3与Vue2的核心差异(Composition API、响应式原理Proxy vs Object.defineProperty),Pinia与Vuex的区别,watch与watchEffect的差异。 工程化:Webpack与Vite的区别(构建原理、冷启动速度),Babel的作用与polyfill方案,代码分割与懒加载实现。 性能优化:首屏加载优化(资源压缩、预加载、CDN),运行时优化(防抖节流、虚拟列表),性能指标(FCP、LCP、CLS)与排查工具(Lighthouse、Performance)。 五、算法编程题(手撕必考) 数组类:最长连续序列、数组扁平化深度计算、洗牌算法(Fisher-Yates)。 字符串类:最长回文子串、字符串匹配(KMP)、防抖节流函数实现。 链表类:反转链表、环形链表检测、合并两个有序链表。 动态规划:爬楼梯、最长递增子序列、背包问题(基础版)。 场景编程:实现并发请求缓存加载器(同一资源不重复请求、过期自动清理);输入框搜索防抖+避免请求竞态。 六、场景与业务题(二面/三面重点) 抖音Web端视频秒开方案:预加载、HLS/DASH分片、CDN缓存、首帧缓存、弱网降级策略。 直播间百万在线弹幕实现:WebSocket长连接、消息分片、本地缓存、弹幕防刷屏限流。 页面白屏/卡顿排查:网络层面(请求失败、跨域)、渲染层面(JS阻塞、重排重绘)、资源层面(加载超时、内存泄漏)。 单点登录(SSO)流程:跨域名登录态共享(Cookie+Token、CAS协议),如淘宝/天猫一键登录。 七、面试准备建议 基础先行:吃透JS原型链、事件循环、HTTP缓存、BFC等,用“原理+场景+手写”串联记忆。 算法保底:LeetCode中等题(数组、字符串、动态规划),重点练字节高频手撕(如Promise、防抖节流、数组扁平化)。 框架深挖:React/Vue任选其一,讲清响应式、虚拟DOM、Hooks/Composition API的底层逻辑,结合项目说明优化点。 业务结合:思考前端在高并发、高性能场景(如短视频、直播)的解决方案,体现工程化思维。 需要我把这些题目整理成可直接背诵的面试答案模板 ,并补充3道字节高频手撕题的简化版代码+核心思路 吗?