前言
什么是css块元素?
块级元素是独占一行显示的。它的兄弟元素必定不会与其在同一行中(除非脱离了文档流)。通俗点来说,就是块元素(block element)一般是其他元素的容器元素,能容纳其他块元素或内联元素。
css块元素的三个特点:
- 每个块级元素都是独自占一行,其后的元素也只能另起一行,并不能两个元素共用一行。
- 元素的高度、宽度、行高和顶底边距都是可以设置的。
- 元素的宽度如果不设置的话,默认为父元素的宽度。
一面
- 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文档整理有很多,篇幅原因就不都列举出来了。
数据结构与算法
这一块在笔试、面试的代码题中考核较多,其中常考的数据结构主要有:数组、链表、队列、栈、Set、Map、哈希表等,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与一些其他算法题。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。
- 二叉树层序遍历
- B 树的特性,B 树和 B+树的区别
- 尾递归
- 如何写一个大数阶乘?递归的方法会出现什么问题?
- 把多维数组变成一维数组的方法
- 知道的排序算法 说一下冒泡快排的原理
- Heap 排序方法的原理?复杂度?
- 几种常见的排序算法,手写
- 数组的去重,尽可能写出多个方法
- 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
- 知道数据结构里面的常见的数据结构
- 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
- 合并两个有序数组
- 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)