前端面试索引

177 阅读2分钟

一、javascript基础

上下文

1.什么是上下文
2.什么是作用域链

作用域

1.js 中的this是什么
2.如何改变this的指向
3.call和apply的区别
4.手写call 和 apply
5.手写bind

闭包

1.闭包是什么?
2.应用场景

原型

1.原型是什么
2.原型链是什么
3.如何实现原型的继承

继承

1.继承的方式有多少种

深拷贝、浅拷贝

1.什么是深拷贝
2.什么是浅拷贝
3.如何实现深、浅拷贝
4.拷贝时需要注意哪些问题
5.如何解决循环引用的问题

事件机制

1.手写一个发布订阅
2.介绍一下event loop
3.什么是宏任务、什么是微任务,区别是什么

二、es6

promise

1.什么是promise
2.手写一个promise
3.async await

常用数组方法

三、React

  • 生命周期
  • 组件通信
  • hooks
  • HOC

四、Vue

  • 生命周期
  • 组件通信
  • mixin
  • 计算、侦听属性

五、webpack

  • 构建流程
  • webpack与rollup的异同
  • loader:1.常用loader 2.说两个loader的思路
  • plugin: 1. 常用plugin 2.说两个plugin的思路
  • webpack 热更新如何实现
  • webpack 优化
  • dell
  • tree shaking
  • scope hosting
  • babel原理
  • 模板引擎

打包

  • 压缩
  • 图片处理

六、性能优化

网络优化

  • dns
  • cdn
  • 缓存
  • preload
  • prefetch
  • lazy

代码优化

  • loading骨架屏
  • web worker
  • 虚拟列表
  • lazy load

七、网络

http

1.状态码
2.304和302的区别
3.http缓存策略
4.connection 中的keep-alive是表示什么

dns

cdn

1.应用场景 2.回源是什么

tcp

1.三次握手
2.四次挥手

https

  • 工作原理

从输入url到页面展示发生了什么

xss

csrf

风控策略

可信前端

服务端安全策略

八、状态管理

vuex

redux

CI/CD

八、其他

  • 函数式编程
  • service worker
  • web worker
  • mvvm