news 2026/4/23 13:47:27

字节跳动前端面试经验与核心知识点整理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
字节跳动前端面试经验与核心知识点整理

一、面试经历与个人感悟

面试形式:远程视频面试
影响:省去奔波但缺乏面对面交流的代入感,容易紧张

关键教训:

  1. 重视基础:不要轻视通用业务、项目经历、价值观和软技能的考察

  2. 代码习惯:过度依赖IDE提示可能导致手写代码能力下降,需做到“手到心到”

  3. 面试重点:简历熟悉度 + 底层原理考察

今日感悟:

  • CI/CD概念已深度融入工具和框架

  • 程序员高频操作:Ctrl+C / Cmd+C 与 Ctrl+V / Cmd+V

  • 开发重点从语言本身转向工具链使用(Git→Sourcetree,语言→框架)

  • 高级语言的核心价值是提升开发者效率


二、CSS核心知识点

1. display常用属性
属性值说明
none元素不显示,不占位
block块级元素,前后有换行符
inline内联元素(默认),前后无换行符
inline-block行内块元素(CSS2.1新增)
2. position定位属性
属性值说明
absolute绝对定位,相对于最近的非static父元素
fixed固定定位,相对于浏览器窗口
relative相对定位,相对于自身正常位置
static默认值,无定位,正常文档流
3. margin与padding区别
特性margin(外边距)padding(内边距)
作用对象容器外距离(自身边框到另一个容器)容器内距离(自身边框到内部内容)
取值可为负值不能为负值
典型场景兄弟元素间距父子元素内间距

示例:

html

<!-- margin: box1与box2之间的间距 --> <div class="box1"></div> <div class="box2"></div> <!-- padding: box1内部到box2的间距 --> <div class="box1"> <div class="box2"></div> </div>
4. 纯CSS实现三角形

原理:利用border属性,将元素宽高设为0,设置不同边框颜色与透明度

实现步骤:

  1. 创建带边框的div

  2. 将内部div宽高设为0

  3. 保留一个边框颜色,其他设置为透明

代码示例:

css

.triangle { width: 0; height: 0; border-width: 40px; border-style: solid; border-color: red transparent transparent transparent; }
5. rpx与px换算

在小程序开发中,rpx(responsive pixel)是响应式像素单位,换算关系与屏幕宽度相关:

  • 设计稿通常以750rpx为基准

  • 换算公式:px = rpx * (屏幕宽度 / 750)

  • 物理像素关系取决于设备像素比(DPR)

6. 垂直水平居中方案

推荐方案:Flex布局(最简单直观)

html

<div id="app"> <div class="center">hello world</div> </div> <style> #app { height: 100vh; display: flex; justify-content: center; /* 水平居中 */ align-items: center; /* 垂直居中 */ } #app .center { width: 300px; height: 300px; } </style>

三、HTTP与网络相关

7. GET与POST深度辨析

表层区别:

特性GETPOST
缓存可缓存不缓存
历史记录保留不保留
书签可收藏不可收藏
数据长度有限制(URL长度)无限制
安全性较低(数据在URL中)相对较高
用途获取数据提交数据

底层本质:

  • GET和POST都是基于TCP的HTTP请求,本质无差别

  • 关键差异在于HTTP协议和浏览器/服务器的实现:

    • GET:浏览器一次性发送header和data,服务器响应200

    • POST:浏览器先发header,服务器响应100 continue,再发data,服务器响应200

  • 虽然GET理论上性能稍优,但实际差异微乎其微,推荐根据语义选择

8. 跨域问题解决方案

开发推荐:本地NGINX反向代理

  • 避免修改后端代码或使用JSONP等复杂方案

  • 配置灵活,模拟生产环境

  • 上线后同域部署自然解决跨域


四、JavaScript核心概念

9. 闭包(Closure)

本质:函数与其词法环境的组合

特性:

  1. 创建私有变量

  2. 延长变量生命周期

  3. 避免全局污染

核心:内部函数可访问外部函数作用域,即使外部函数已执行完毕

10. 前端存储方案对比
特性cookielocalStoragesessionStorage
生命周期可设置过期时间永久(手动清除)会话结束(标签页关闭)
存储位置浏览器+服务器浏览器本地浏览器本地
请求携带每次HTTP请求自动携带不自动携带不自动携带
存储大小~4KB~5-10MB~5-10MB
APIdocument.cookiesetItem/getItemsetItem/getItem

localStorage使用示例:

javascript

const db = window.localStorage; db.setItem('name', '李四'); db.setItem('age', 22); // 存储数字会自动转为字符串 console.log(db.getItem('name')); // '李四' console.log(db.getItem('age')); // '22' // 存储对象需序列化 const obj = { key: 'value' }; localStorage.setItem('obj', JSON.stringify(obj)); const retrieved = JSON.parse(localStorage.getItem('obj'));
11. 箭头函数 vs 普通函数
特性箭头函数普通函数
this绑定继承上下文this(不可改变)动态绑定(调用者决定)
构造函数不可用作构造函数(无new)可用作构造函数
arguments不绑定,使用rest参数(...args)绑定arguments对象
原型无prototype属性有prototype属性
yield不能用作Generator函数可用作Generator函数
简洁性语法更简洁语法相对冗长

关键记忆点:箭头函数的this在定义时确定且永不改变,普通函数的this由调用方式决定。

12. var、let、const区别
特性varletconst
作用域函数作用域块级作用域块级作用域
变量提升提升且初始化undefined提升但不初始化(暂时性死区)提升但不初始化
重复声明允许不允许不允许
值修改可修改可修改不可修改(引用类型可修改属性)
13. call、apply、bind方法比较

共同点:改变函数执行时的this指向

区别:

  • callfunc.call(thisArg, arg1, arg2, ...)- 参数逐个传递

  • applyfunc.apply(thisArg, [argsArray])- 参数以数组传递

  • bindfunc.bind(thisArg, arg1, arg2, ...)- 返回新函数,不立即执行

使用场景:

  • call:参数数量明确时

  • apply:参数为数组或伪数组时

  • bind:需要延迟执行或创建偏函数时


五、总结与建议

面试准备重点:

  1. 基础扎实:CSS盒模型、定位、布局必须熟练掌握

  2. 原理深入:不要只记表面区别(如GET/POST),理解底层机制

  3. 手写能力:减少对IDE提示的依赖,能徒手实现常见功能

  4. 项目清晰:对简历上的项目经历要了如指掌

  5. 工具链:熟悉现代前端开发工具和流程(CI/CD、Git等)

心态调整:

  • 视频面试需提前熟悉技术环境

  • 紧张时深呼吸,将问题拆解回答

  • 诚实面对不懂的问题,展示学习能力

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 9:16:27

JavaScript 深入解析与前端面试精粹

第一部分&#xff1a;JavaScript 核心概念深度解析一、原型链与继承系统1.1 JavaScript 的原型系统原型链的基本概念JavaScript 是一门基于原型的语言&#xff0c;每个对象都有一个指向其原型的内部链接。这个原型对象也有自己的原型&#xff0c;如此层层递进&#xff0c;形成原…

作者头像 李华
网站建设 2026/4/23 10:44:49

用YOLOv9镜像做课程设计,一周搞定全部内容

用YOLOv9镜像做课程设计&#xff0c;一周搞定全部内容 在人工智能课程设计中&#xff0c;目标检测是一个经典且实用的课题。然而&#xff0c;传统开发流程中常见的环境配置复杂、依赖冲突、模型下载缓慢等问题&#xff0c;常常让学生把大量时间耗费在“跑通环境”而非“理解算…

作者头像 李华
网站建设 2026/4/23 12:13:07

从噪声中还原纯净人声|FRCRN-16k大模型镜像技术揭秘

从噪声中还原纯净人声&#xff5c;FRCRN-16k大模型镜像技术揭秘 1. 引言&#xff1a;语音降噪的现实挑战与技术演进 在真实场景中&#xff0c;语音信号常常受到环境噪声、设备限制和传输干扰的影响&#xff0c;导致听感模糊、识别率下降。尤其在单麦克风采集条件下&#xff0…

作者头像 李华
网站建设 2026/4/23 10:45:03

SAM3技术解析:多尺度特征融合

SAM3技术解析&#xff1a;多尺度特征融合 1. 技术背景与核心价值 图像分割作为计算机视觉中的基础任务&#xff0c;长期以来依赖于大量标注数据和特定类别的训练模型。传统方法如Mask R-CNN、U-Net等虽然在特定场景下表现优异&#xff0c;但泛化能力有限&#xff0c;难以实现…

作者头像 李华
网站建设 2026/4/23 13:30:22

实战演示:构建支持联网功能的Batocera整合包

实战演示&#xff1a;构建支持联网功能的 Batocera 整合包你有没有过这样的经历&#xff1f;手头一堆经典游戏 ROM&#xff0c;想往 Batocera 主机里拷贝&#xff0c;结果发现必须拔下 SD 卡、插到电脑上&#xff0c;复制完再插回去——稍有不慎还可能损坏文件系统。更别提多人…

作者头像 李华
网站建设 2026/4/23 10:44:46

GPEN联邦学习尝试?隐私保护下的人脸数据协同训练

GPEN联邦学习尝试&#xff1f;隐私保护下的人脸数据协同训练 随着深度学习在图像增强领域的广泛应用&#xff0c;人脸修复与增强技术取得了显著进展。其中&#xff0c;GPEN&#xff08;GAN-Prior based Enhancement Network&#xff09;作为一种高效的人像超分与细节恢复模型&…

作者头像 李华