故事开篇:
看到一则帖子,讲一个学历只是普通的大专毕业的程序员,做前端5年左右的时间了,中间干过3家公司,都是属于中型互联网企业和创业型的公司,规模不算大。很苦恼进不了大厂,一直在中小公司里打滚天天切图。
有一段时间他几乎天天在面试,从普通的一些小公司,到上市公司,到一线大厂(阿里,腾讯,字节)。然而得到最多的反馈其实就是2种,学历不够或者陪跑。
应该会有不少其他想冲击大厂的同学会得到另外两种反馈,技术深度不够,或者简历上缺乏拿得出手的项目。导致最后没有得到面试机会或者面试通过不了。
在这种前提下,你就很容易形成一种死循环,一直在中小公司徘徊,大部分的中小公司都是以业务优先,对于技术的建设相对来说比较缺乏,所以新的技术得不到实践机会,每天忙于各种业务需求,身边的氛围不好等,最终影响你能力的提升。
一面
- css 如何实现垂直居中?
- position 有哪几种?分别说一下对应的效果和用法
- css 选择器优先级
- js 原型链,问了js 如何创建对象
- 页面渲染和响应 式
- MVVM 和 MVC的区别
- Vue 生命周期,在哪个阶段可以获取页面 dom 信息
- Vue 的组件通信 ,聊到一些网络相关
- TCP 和 UDP 的区别
- TCP 的三次握手和四次挥手
- promise 有哪几种状态
- 手写一个 promise
- 算法题:最长公共前缀
- 算法题:多层数组嵌套降级
二面
-
问项目的情况
根据项目问了一点我的工作,接触前端有多久,在每个项目里学到了什么,没做项 目的时候学了什么,怎么学的这样的问题,然后开始就是实战写代码 - css 实现
给一个具体的需求写 html+css,需求大概是模块水平垂直居中对齐+不 定高,按文字自适应+带灰色遮罩+弹出动画 - css 的动画怎么做
- flex 有哪些常用标签
- position 的属性影响
- 具体实现,给一个 ul 下面插入 100 个 li 应该怎么插入,如何优化 dom 操作
- 具体实现:有一个有一百万个 url 的数组,如何从这一百万个 url 里获得资源
- 算法:判断链表内是否存在环
总体上字节的二面特别看重具体实现,会说思路不够,需要真正的写出可以实现 的代码来。一般算法就是 leetcode 的 easy/medium,不会太难,一些基本概 念也会挖的比较深,总体上说还是很有难度。
三面
之前都是先问基础,这次很难得的从一面就开始问项目了!
- http 请求的几个常见方法
- 说下 get 和 post 的区别
- get 和 post 的具体应用场景和一些注意事项
- 线程和进程的区别
- 说下跨域
- http 简单请求是什么意思
- 浏览器缓存策略
- TCP 和 UDP 的区别
- 了解流媒体对 UDP 稳定性的优化处理吗
- js 的基本数据类型
- 哪些操作是异步的?
- promise 的一些基本概念
- async await 的一些用法
- js 继承的几种方式
- 排序算法的时间复杂度空间复杂度
- 做个题,实现链表尾部插入新节点
- 算法题:版本号判断
四面
- 大概问了一些项目相关问题,比如印象比较深的技术点,怎么学习的和解决 的 balabala
- css 的垂直居中和水平居中
- css 选择器优先级
- html 的 dom 树如何生成的
- 小程序和 pc 页面有什么差异(因为项目里写了小程序)
- 项目里的一些性能优化的点
- 做个题,看代码是否能完成输出,如果不能就说下几个改的点(题太长了没记)
- 代码实现:设计一个任务队列,有 on,trigger 和 off 方法,分别完成注册 事件触发回调,触发当前事件全部回调,和取消当前事件的任务队列的功能
hr 面
- 看了我的投递记录发现我来字节面了这么多次问我这几次有什么进步,学了什么
- 字节的面试体验怎么样
- 有没有考研的打算,为什么?
- 介绍一下简历上的三个项目,为什么要选这三个项目进行展示?
- 在项目中学到了哪些东西,有什么心得体会
- 怎么学习前端的,怎么规划未来学习
- 小组合作中的压力怎么应对的,如果要面对失败会怎么调节
- 大概什么时候可以来,可以来实习多久?
看了上面的面试题,下面也分享一些大佬搜集整理的前端面试题,上面的题目大多都有包含。PDF文档整理有很多,篇幅原因就不都列举出来了。
基础学习:
前端最基础的就是 HTML , CSS 和 JavaScript 。
网页设计:HTML和CSS基础知识的学习
HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
CSS样式是表现。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现。
动态交互:JavaScript基础的学习
JavaScript是用来实现网页上的特效效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮换。可以这么理解,有动画的,有交互的一般都是用JavaScript来实现的。