前端三段面试经历(字节、滴滴、虎牙),讲真的还挺难的

小编整理最近了小伙伴中具有代表性的面试经历及面试题,他们的情况小编就不多说了,一起看看他们面试中都遇到了什么问题。
字节一面

刚开始就问我的项目,问得很详细。
  • webpack 提高构建速度的方式
  • loader 输入什么产出什么 ?
  • webpack 原理
  • webpack 动态加载的原理
  • webpack 热更新
  • 如何写一个 webpack plugin
  • AST 的应用
  • 如何解析一个 html 文本,还是考 AST
  • babel 原理,怎么写 babel 插件
  • 如何设计一个沙盒 sandbox ?
  • 小程序的 API 做了什么处理,能够做到全局变量的隐藏,如果是你,怎么设计 ?
  • 实现颜色转换 'rgb(255, 255, 255)' -> '#FFFFFF' 的多种思路。
  • 提供一个数字 n,生成一组 0~n-1 的整数,打乱顺序组成数组,打乱几次,如何能够看起来平衡,说出你能想到的所有方法。

二面

  • 业务,业务,还是业务,项目复盘有没有更好的解决方案。
  • 如何处理一个重大事故 bug
  • 监控体系
  • 虚拟 dom 有什么好的地方? 框架为什么要设计虚拟 dom?
  • webpack 的缺点,让你设计一个新的构建打包工具,你会怎么设计?
  • 在线文档编辑,如何处理两人的冲突,如何展示,考虑各种场景
  • excel 文档冲突高级处理,文章冲突呢?是上个问题的深化。

三面

  • 算法题:从数组 [1, 5, 8, 10, 12] 中找到两个数和为 9,返回 [1, 8] 这样的结果。
  • 算法题:从数组 [1, 5, 8, 10, 12] 中找到三个数和为 19,返回 [1, 8, 10] 这样的结果。
  • 算法题:给定一个无序的整数数组,找到其中最长上升子序列的长度。

滴滴
一面

  • webpack 原理
  • babel 原理
  • 虚拟 DOM 的理解
  • 项目里如何做的性能优化
  • 写过webpack loader 或者插件吗
  • 讲讲你写的 babel 插件

二面

  • redux 的原理
  • redux 做状态管理和发布订阅模式有什么区别
  • react-redux 的原理,是怎么跟 react 关联起来的
  • 了解多端的原理吗?
  • http 与 tcp 的关系
  • tcp 可以建立多个连接吗?
  • 介绍一下为什么要有 三次握手,四次挥手
  • 写过 babel 插件吗?用来干啥的?怎么写的 babel 插件
  • 知道怎么转化成 AST 的吗?
  • 研究过 React 的运行时吗?
  • 职业规划。

三面

  • 项目介绍
  • 说一下你的项目有哪些复杂的点,以及怎么解决的
  • 你们的业务组件库有多少个,是什么样的组件
  • 权限组件是怎么设计的
  • 会node 吗?
  • 介绍一下你对中间件的理解
  • 怎么保证后端服务稳定性,怎么做容灾
  • 怎么让数据库查询更快
  • 数据库是用的什么?
  • 为什么用 mysql
  • 希望滴滴能提供给你什么?

四面

  • 介绍一下项目的难点以及怎么解决的
  • 自己有什么技术上的优势
  • 最近在研究什么技术?
  • 职业规划
  • 移动端的业务有做过吗?
  • 当业务重的时候怎么安排时间?

虎牙
一面

  • http 的 get 和 post 区别
  • 缓存策略
  • https 的握手过程
  • http2 的特点
  • weak-Set、weak-Map 和 Set、Map 区别
  • mvvm 模型和 mvc 模型区别
  • 如何实现一个 mvvm 模型
  • 为何你用 mobx 重构了 saga,说说两者之间的区别
  • 说说 vnode 的了解
  • 讲讲 webpack 的性能优化
  • 有写过 plugin
  • 了解 webpack-dev-server 的 HMR 实现原理吗
  • 手写一下防抖和节流

二面
你做过直播,能介绍一下 webRTC 或者现在使用直播方案吗

  • 编码方面有了解过吗,能解释一下码率吗
  • 编码方面有了解过吗,能解释一下码率吗
  • RGB 和 YUV 区别
  • 有了解过哪些直播协议
  • flv 和 mp4 区别有了解过吗
  • MediaSource 规范有了解过

三面

  • webSocket 和 ajax 的区别
  • xss、csrf 有了解过吗,如何防范
  • 有了解过 React 的 fiber
  • 能简单介绍一下 react 执行过程吗
  • 能介绍一下 hook 吗
  • 情景题,做一个直播弹幕

小编最近整理了一次大厂面试题,包括:HTML和CSS、HTML5和CSS3、JS基础、Ajax、流行框架、十、Node.Js、前端概括性问题等。完整版的前端大厂面试题汇总已经打包完毕,希望对大家有帮助!
一、HTML和CSS
你做的页面在哪些浏览器测试过?这些浏览器的内核分别是什么?

  • 每个HTML文件里开头都有个很重要的东西,Doctype,知道这是干什么的吗?
  • Quirks模式是什么?它和Standards模式有什么区别
  • div+css的布局较table布局有什么优点?
  • img的alt与title有何异同? strong与em的异同?
  • 你能描述一下渐进增强和优雅降级之间的不同吗?
  • 为什么利用多个域名来存储网站资源会更有效?
  • 请谈一下你对网页标准和标准制定机构重要性的理解。
  • 请描述一下cookies,sessionStorage和localStorage的区别?
  • 简述一下src与href的区别。
  • 知道的网页制作会用到的图片格式有哪些?
  • 知道什么是微格式吗?谈谈理解。在前端构建中应该考虑微格式吗?
  • 在css/js代码上线之后开发人员经常会优化性能,从用户刷新网页开始,一次js请求一般情况下有
  • 一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些图片的加载,给用户更好的
  • 你如何理解HTML结构的语义化?
  • 谈谈以前端角度出发做好SEO需要考虑什么?
  • 有哪项方式可以对一个DOM设置它的CSS样式?
  • CSS都有哪些选择器?
  • CSS中可以通过哪些属性定义,使得一个DOM元素不显示在浏览器可视范围内?
  • 超链接访问过后hover样式就不出现的问题是什么?如何解决?
  • 什么是Css Hack?ie6,7,8的hack分别是什么?
  • 请用Css写一个简单的幻灯片效果页面
  • 行内元素和块级元素的具体区别是什么?行内元素的padding和margin可设置吗?
  • 什么是外边距重叠?重叠的结果是什么?


二、JS基础

  • javascript的typeof返回哪些数据类型
  • 例举3种强制类型转换和2种隐式类型转换?
  • split() join() 的区别
  • 数组方法pop() push() unshift() shift()
  • 事件绑定和普通事件有什么区别
  • IE和DOM事件流的区别
  • call和apply的区别
  • b继承a的方法
  • JavaScript this指针、闭包、作用域
  • 如何阻止事件冒泡和默认事件
  • ”==”和“===”的不同
  • JavaScript的数据类型都有什么?
  • 看下列代码输出为何?解释原因。
  • foo = foo||bar ,这行代码是什么意思?为什么要这样写?
  • 完成foo()函数的内容,要求能够弹出对话框提示当前选中的是第几个单选框。
  • 完成函数showImg(),要求能够动态根据下拉列表的选项变化,更新图片的显示
  • 阻止冒泡函数
  • 输出多少?
  • 精度问题: JS 精度不能精确到 0.1 所以 。。。。同时存在于值和差值中
  • 输出结果
  • 以下代码中end字符串什么时候输出
  • 请用原生js实现jquery的get\post功能,以及跨域情况下
  • 请简要描述web前端性能需要考虑哪方面,你的优化思路是什么?


三、HTML5 CSS3

  • CSS3有那些新特性
  • html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HT
  • 本地存储(Local Storage )和cookies(储存在用户本地终端上的数据)之间的区别
  • 如何实现浏览器内多个标签页之间的通信?
  • 你如何对网站的文件和资源进行优化?
  • 什么是响应式设计?
  • 新的 HTML5 文档类型和字符集是?
  • HTML5 Canvas 元素有什么用?
  • HTML5 存储类型有什么区别?
  • 用H5+CSS3解决下导航栏最后一项掉下来的问题
  • CSS3新增伪类有那些?
  • 请用CSS实现:一个矩形内容,有投影,有圆角,hover状态慢慢变透明。
  • 描述下CSS3里实现元素动画的方法
  • html5\CSS3有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?
  • 你怎么来实现页面设计图,你认为前端应该如何高质量完成工作? 一个满屏 品 字布局 如何设计?


四、Ajax
Ajax 是什么? 如何创建一个Ajax?

  • 同步和异步的区别?
  • 如何解决跨域问题?
  • 页面编码和被请求的资源编码如果不一致如何处理?
  • 简述ajax 的过程。
  • 阐述一下异步加载。
  • 请解释一下 JavaScript 的同源策略。
  • GET和POST的区别,何时使用POST?
  • ajax 是什么?ajax 的交互模型?同步和异步的区别?如何解决跨域问题?
  • Ajax的最大的特点是什么。
  • ajax的缺点
  • ajax请求的时候get 和post方式的区别
  • 解释jsonp的原理,以及为什么不是真正的ajax
  • 什么是Ajax和JSON,它们的优缺点。


五、前端概括性问题

  • 常使用的库有哪些?常用的前端开发工具?开发过什么应用或组件?
  • 对BFC规范的理解?
  • WEB应用从服务器主动推送Data到客户端有那些方式?
  • 平时如何管理你的项目,如何设计突发大规模并发架构?
  • 那些操作会造成内存泄漏?
  • 谈谈你认为怎样做能使项目做的更好?
  • php中rmdir可以直接删除文件夹吗?该目录必须是空的,而且要有相应的权限--来自api
  • phpinset和empty的区别,举例说明
  • php中$_SERVER变量中如何得到当前执行脚本路径
  • 写一个php函数,要求两个日期字符串的天数差,如2012-02-05~2012-03-06的日
  • 如何优化网页加载速度?



由于篇幅原因列举的内容不多,完整版的前端大厂面试题汇总已经打包完毕,希望对大家有帮助!有需要的朋友可以 戳此传送门即可获取完整版的 PDF 哦! 祝大家顺风顺水顺财神!
结束语
无论做什么,不止前端,都应该要有自己的想法和思考,这样子才能把事情做好,做得更深。否则这就像一场梦,醒来还是很感动。希望各位读者,看上面的题目并不是背答案,而是理解它,并能活用,以后做类似的事情,有参考的思路。如果遇到和我同一个面试官,题目当然是不完全一样的,此时需要临场发挥自己的积累和灵活运用了。
最后再补充一点,如果你见过了普遍情况,了解到了普遍现象,那要是什么都和人家一样,最后不就是也成为普遍水平了吗?如果想脱离当前现状,实现突破,那么目标应该是成为有个性、有特色的、有区分度的人,成为一名不一样的前端,不一样的人。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/198614.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全光谱护眼灯好吗?考公用的台灯推荐

全光谱护眼台灯是近年来新兴的一种照明产品,其使用全光谱LED灯泡,能够模拟自然光的光谱,为人们提供更加舒适、柔和的照明环境。相比传统的白炽灯或荧光灯,全光谱护眼台灯在照明效果、节能环保、眼睛健康等方面都有着明显的优势。 …

mysql:免费的GUI客户端工具推荐并介绍常用的操作

给大家推荐几个常用的 mysql 数据库客户端 sequel-pro sequel-ace 官网下载地址 免费 sequel-ace 可以理解为 Sequel Pro 的升级版,由于Sequel Pro官方不维护了,特别是对 MySQL 8.0 支持不好,所以现在由社区维护了新分支 sequel-ace&#x…

生鲜蔬果展示预约小程序作用是什么

线下生鲜蔬果店非常多,对商家来说主要以同城生意为主,而在互联网电商的发展下,更多的商家会选择搭建私域商城进行多渠道的销售卖货和拓展,当然除了直接卖货外,还有产品纯展示或预约订购等需求。 但无论哪种模式&#…

【云原生 | Docker】Docker核心概念 应用上手最佳流程

🤵‍♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…

面试题:Java Switch 是如何支持 String 的,为什么不支持 long

目录 前言一、结论二、枚举类型是咋变成 int 类型的?三、String 类型是咋变成 int 类型的?四、它们的包装类型支持吗? 前言 我们知道Java Switch 支持byte、short、int类型,在JDK 1.5 时,支持了枚举类型,在…

STC15F100E单片机模拟串口

文章目录 一、芯片简介二、开发环境三、软件模拟串口参考 一、芯片简介 STC15F100系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,新一代8051单片机,指令代码完全兼容传统8051,但是速度快6-12倍。 内部集成R/C时钟,5MHz…

25、pytest的测试报告插件allure

allure简介 在这里,你将找到使用allure创建、定制和理解测试报告所需的一切。开始让你的测试沟通更清晰,更有影响力。 Allure Report是一个实用程序,它处理由兼容的测试框架收集的测试结果并生成HTML报告。 安装allure 1、确保安装了Java…

【SSM源码】基于JAVA的高校竞赛和考级查询系统

该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程等学习内容。 目录 一、项目介绍: 二、文档学习资料: 三、模块截图: 四、开发技术与运行环境: 五、代码展示: 六、数据库表截图&#xff1a…

MISRA C 2012 标准浅析

MISRA(The Motor Industry Software Reliability Association),汽车工业软件可靠性联会; 1994年,英国成立。致力于协助汽车厂商开发安全可靠的软件的跨国协会,其成员包括:AB汽车电子、罗孚汽车、宾利汽车、福特汽车、捷…

js实现动态添加删除表格数据的两种方式

目录 1、通过创建节点实现 css代码 html代码 js代码 完整代码 2、通过渲染表格,事件委托实现 css代码 html代码 js代码 完整代码 效果图 1、通过创建节点实现 思路:先把整体的html结构写出来,table表格分为3部分,其中t…

HNU-电路与电子学-2021期末A卷(不含解析)

【写在前面】 电路与电子学好像是从2020级开设的课程,故实际上目前只有2020与2021两个年级考过期末考试。 本份卷子的参考性很高,这是2020级的期末考卷。题目都是很典型的,每一道题都值得仔细研究透。 特别注意:看得懂答案跟写得…

逆水行舟!浅谈24届双非本科秋招

逆水行舟!浅谈24届双非本科的秋招 逆水行舟!浅谈24届双非本科的秋招0、背景 -- 写下本文的初衷1、实习 -- 秋招的预备战役1.1 科大讯飞1.2 三七互娱 2、秋招 -- 一场没有硝烟的战争3、总结 -- 做好自己想做的事情 0、背景 – 写下本文的初衷 如题&#…

常用汇编指令集

寄存器 如上是OD展示的寄存器,逐条说明常用的寄存器和标志位含义: EIP:寄存器指向即将要执行的指令的地址(EIP中的地址,就是下一步要执行指令的地址) ESP:里面的内容永远指向堆栈的最顶端 EAX&…

一文详解集合竞价,建议收藏!

集合竞价是指对在规定的一段时间内接受买卖申报一次性集中撮合的竞价方式。沪深市场9:15-9:25及14:57-15:00为集合竞价的时间段。集合竞价的所有交易以同一个价格成交。集合竞价的成交价确定原则是: 1、可实现最大成交量的价格; 2、高于该价格的买入申…

mac苹果笔记本电脑如何强力删除卸载app软件?

苹果电脑怎样删除app?不是把app移到废纸篓就行了吗,十分简单呢! 其实不然,因为在Mac电脑上,删除应用程序只是删除了应用程序的主要组件。大多数时候,系统会有一个相当长的目录,包含所有与应用程…

Java三种代理模式:静态代理、动态代理和CGLIB代理

Java三种代理模式:静态代理、动态代理和CGLIB代理 代理模式 代理模式是23种设计模式种的一种。代理模式是一种结构型设计模式,它允许为其他对象提供一个替代品或占位符,以控制对这个对象的访问。代理模式可以在不修改被代理对象的基础上&am…

C语言之多重循环

目录 二重循环 用break语句强制结束循环 显示图形 绘制等腰直角三角形 多重循环 continue语句 将循环语句的循环体作为循环语句,就可以进行二重、三重循环。这样的循环称为多重循环。 我们先来了解二重循环 二重循环 在之前我们学习到的循环中的程序都比较简…

Java---异常

文章目录 1. 异常概述2. try...catch3. Throwable成员方法4. 编译时异常和运行时异常区别5. 异常处理之throws6. 自定义异常7. throws和throw的区别 1. 异常概述 1. 异常:就是程序中出现了不正常的情况。 2. Error:严重问题,不需要处理。Exce…

【带头学C++】----- 九、类和对象 ---- 9.4 拷贝构造函数、赋值

目录 9.4 拷贝构造函数、赋值 9.4.1 定义拷贝构造函数 9.4.2 拷贝构造和无参构造、有参构造的关系 9.4.3 拷贝构造的几种调用形式 1、旧对象给新对象初始化,调用拷贝构造 2、给对象取别名不会调用拷贝构造 3、普通对象作为函数参数,调用函数时会发…

STM32-GPIO编程

一、GPIO 1.1 基本概念 GPIO(General-purpose input/output)通用输入输出接口 --GP 通用 --I input输入 --o output输出 通用输入输出接口GPIO是嵌入式系统、单片机开发过程中最常用的接口,用户可以通过编程灵活的对接口进行控制,…