前端面试总结

717 阅读8分钟

CSS

概念:bfc 伪类 伪元素

实现布局:

1、css实现正方形div水平垂直居中

2、正方形实现,三角形实现

3、 实现布局header,content,footer,上中下布局;当content 超出窗口可视区,不显示footer;当content 没超出可视区时,固定footer 在最下面

4、点击table的td显示td内容???? (这个不是CSS吧)

5、屏幕占满和未占满的情况下,使footer固定在底部,尽量多种方法

6、 css 如何实现元素a距离屏幕10px,高度无论宽度怎么改变都是其0.5

7、 css 单行和多行截断

8、 宽是高的一半的垂直居中,里面有字体也要垂直居中类数组

9、上中下三栏布局

10、回流重绘 

11、canvas

CSS常考布局:

1、垂直居中布局 多种实现方式

2、自适应布局(两栏 上下/左右)

3、三栏式布局(圣杯 双飞翼)多种实现方式

4、瀑布流布局


JS

1、js原型链继承、借用构造继承、组合继承方式、类式继承的方案,几种继承方式的优缺点、优化列出代码;实现一个子类实例可以继承父类的所有方法;

2、数字千分位处理,正则和非正则都要实现(千位加逗号)153812.7 转化153,812.7 (+3)

3、eventloop 宏任务 微任务   (node.js里的eventloop有什么区别❓)(+N)

看编程代码说出运行结果:

Process.nextTick,setImmediate 和promise.then 的优先级

Process.nextTick,pronise, setImmediate的优先级

promise async setimeout先后次序

同步异步输出的顺序

4、instanceof 原理及实现

5、promise封装setstate ❓❓❓ 什么鬼

6、实现一个bind函数(各种手写代码 apply call new 函数柯里化...)bind函数运行结果❓

多个bind连接后输出的值❓❓❓

7、请实现如下的函数,可以批量请求数据,所有的 URL 地址在 urls 参数中,同时可以通过 max 参数 控制请求的并发度,当所有请求结束之后,需要执行 callback 回调函数。发请求的函数可以直接 使用 fetch 即可

8、==的隐式转化规则

9、多空格字符串格式化为数组

10、固定日期与当前时间格式化处理

11、闭包问题

12、 argument是数组吗,如果不是怎么变为数组

13、如何实现for循环内定时器依次输出123

14、es6:箭头函数 symbol promise

15、节流函数 防抖  (原理+手写)

16、数组去重、数组扁平化

17、实现一个方法,参数是一个generator函数,执行结果是执行完所有generator中的yield

18、原码,补码,反码 ❓❓

19、事件委托 (啦啦啦 一系列概念)

20、换行字符串格式化

21、日期转化为2小时前,1分钟前等 (输入一个日期 返回几秒前 几天前或者几月前)笔试

22、[1,2,3].map(parseInt) 执行结果 为什么

23、deepClone  深拷贝 浅拷贝

24、获取页面所有img并且下载

25、函数实现正面模板

26、最后是一个写代码 处理有依赖的异步任务 加重试


北京前端一面:

1. function request(urls, maxNumber, callback) 要求编写函数实现,根据urls数组内的url地址进行并发网络请求,最大并发数maxNum ber,当所有请求完毕后调用callback函数(已知请求网络的方法可以使用fetch api)

2. throttle函数实现

3.requestAnimationFrame 和 setTime、setInterval的区别,requestAnimationFrame 可以做什么

4.二叉树路径总和(leetcode 112)

5. 给定一个不含重复数字的数组arr,指定个数n,目标和sum,判断是否含有由n个不同数字相加得到sum的情况(leetcode 40 变种, 数 字不得重复使用)

上海前端一面:

websocket 原理

http2如何实现多路复用

怎么将一个异步方法promise化,以及实现promise.all()方法


浏览器

1、https协议的过程

2、https获取加密密钥的过程

3、http的方法有哪几种,每种方法的有用途(常见的http方法)http常见的状态码,get post的区别,http网络协议 https原理

4、http握手原理(TCP三次握手 四次挥手, 为什么3次...)

5、Jsonp跨域 (常见的跨域方式)

6、 前端安全 XSS工具 CSRF攻击,防御机制,https

7、cookie session token JWT

8、前端缓存机制、回话机制

9、计算机网络知识 TCP UDP,TCP和UDP的区别,优缺点及适用场景,TCP怎样保证数据有序,怎样保证可靠性。TCP为什么是可靠的


算法

1、背包问题(动态规划)❓❓ 动态规划算法

2、最长子序列 (最长公共子序列)

3、二叉树中序遍历(前中后序遍历 递归方式及非递归方式实现)二叉树搜寻算法

4、给定一个数组,一个期望值,找到数组中两个相加等于期望值

5、冒泡算法(各种排序算法)

6、['a','b'],['A','B'],['1','0'],输出['aA1','aA0','aB1','aB0','bA1','bA0','bB1','bB0'],算法的排列组合问题


React

1、diff算法 原理

2、redux基本组成和设计单向数据流

3、dom react原理 ❓❓这又是什么鬼

4、react 新版本的特性❓

5、react diff算法,key的作用,setData的机制,事件合成

6、React Fiber原理以及为什么componentWillRecievedProps会废弃

7、列表diff中key的作用 (不确定是不是React)

8、redux 异步

9、redux 异步中间件原理

10、React Hook, Fiber Reconciler ,新的生命周期 getDerivedStateFromPros 为什么是Static

11、react生命周期

12、vue-router路由监听的原理❓是不是也可以问react-router的路由监听原理

13、单页多页的区别,react路由实现原理

14、react数据驱动视图原理?更新视图的过程是否是同步的操作?

15、两个同源tab之间的交互,数据同步


Webpack

1、webpack打包的原理,webpack有没有针对打包过程做一些优化提升打包速度

2、wepack-dev-server 热更新功能实现原理

3、loader和plugin的区别

4、react项目开发环境如何配置?

Node.js

1、import和require的区别

2、event类 on once等方法

3、nodejs相关的应用(答:开发命令行工具、web服务,ssr,数据库操作等)


了解一下koa吧。。。。

1、koa1的原理,继承

2、Koa中间件机制及代码实现 express中间件原理

3、fetch取消

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。


那些年你看不懂的项目实战经验相关的or乱七八糟的题

深圳抖音二面:

写一个eventBus,元素水平垂直居中,vuex mobox,小程序架构优化 日志系统 ❓

最近在做项目(痛点,难点,怎么解决),ssr(ssr csr混合怎么处理),小程序架构(带来的优缺点),状态管理,异步编程(各个优缺点)

二轮:

1.主要是围绕你的项目经历和技术,有一定的深度,主要还是要对项目全面熟悉;还有一个就是函数 柯理化的编码实现

2. 函数柯里化、Web安全、react性能优化、react算法原理

3.上来直接让写一个autocomplete 组件,可能是想考察业务思考点;

4. 后续的问题主要会接着业务场景问 扣实际场景 不问知识理论;

5. http网络协议 ;

7. js设计模式;

8. solid原则;

杭州二面

1. 给一个由域名组成的字符串进行按子域名分组的反转,比如 news.toutiao.com 反转成 com.toutiao.news 需要 in place 做

2.其他技术问题都是穿插在我的业务项目里面的,有点针对实际情景给解决方案

三轮:

1.自己做得最有成就的项目

2.自己主动承担并是核心的项目

3.项目深度:比如现场实现vue的数据代理等

4.技术广度:什么是微前端等

5.职业发展

6. 1. js实现依赖注入

2. 接口攻击的方式和防御措施

3. https握手过程

4. 设计模式

5. redux和 mobx的区别

6. js多线程如何共享大的数据


深圳二面(这个不是前端吧。。。❓❓。。。算法补充)

1,一千个棋子,甲先取乙后取,每次最多取七个最少取一个,问是否有一个方案让甲一定赢

2,3×7的格子,从左上角到右下角,只能往右或者往下,有多少种走法,

3,一个不均匀硬币,如何抛出均匀概率

4,然后有一个生成0到13随机数的算法,如何用它均匀生成0到9随机数

5,两千万高考生成绩如何排序

6,用链表表示的大数求和