前端面试大纲
js
- es标准 -j
- promise原理 -j
- 事件委托、冒泡、捕获 -j
- 闭包、this -j
- 什么是块级作用域 -j
- 双等三等区别 -j
- 如何给数组添加新的方法?(考察原型、继承) -j
- 如何判断两个数组是否相等 -j
- 0.1+0.2在三等情况下是否等于0.3 -j
- undefined和null区别 -j
- 说说洋葱圈模型「类似于柯里化,内层中间件返回的值作为外层中间件的参数」 -j
- 类有哪些东西可以被继承? -j
- 一个类中,static 普通方法 箭头函数重名时,会调用哪个? -j
- 深拷贝和浅拷贝 -j
- map和weakmap -j
- 防抖和节流 -j
- sleep函数 -j
- 箭头函数有哪些特性 -j
- promise、async await、Generator的区别 -j
- Object.assign、Object.defineProperty分别什么时候使用 -j
- Proxy -j
css
- scss用过哪些功能 -c
- css:怪异模式 -c
- scss中的@和%有什么区别 -c
- Css问题 p标签文本没法设置它的高度,怎么去让它前n个字符变高 -c
- 清除浮动的方法 -c
- 如何用css实现一个三角形 -c
vue相关
- vue、react区别 -v
- vue router有哪些钩子 -v
- vue响应式系统 -v
- vue的生命周期 -v
- v-if v-show区别 -v
- location.href和vue-router跳转有什么区别 -v
- vue nextTick -v
- 虚拟dom -v
- vue3 watch、Provide/inject、watchEffect -v
- 如何实现一个指令 -v
- 如何做到的双向绑定 -v
- v-once是做什么的 -v
移动端适配
- 移动端适配
- 各种布局
构建相关
- npm run dev执行过程 -g
- 路径别名 -g
- MVVM MVC MVP -g
- 单页面多页面区别 -g
- Webpack有用过吗?做过哪些配置?「不同环境的配置,devserver」有哪些优化措施?「tree shaking,路由懒加载,代码分割」 -g
- node服务怎么让它后台启动的?「supervisor配置,然后开启进程」 -g
- 单向数据流和双向数据流 -g
- webpack:loader、plugin是用来干什么的,tree-shaking是什么 -g
- webpack执行过程 -g
- 如何编写一个loader、plugin -g
- js模块化(commonjs/AMD/CMD/ES6) -g
- type=“module” 、vite -g
- typescript基本类型 -g
- typescript泛型 -g
- 设计模式:单例 -g
浏览器相关
- 浏览器渲染过程 -l
- html中写css和js对页面渲染有什么影响 -l
- 跨域问题,同源策略 -l
- http有哪些缓存 -l
- Url输入到页面显示经历了什么? -l
- 在网络请求中如何把大文件资源压缩传输?(没答上来)你知道GZip格式吗?「嗯 知道,在nginx配置时有设置过gzip压缩」 -l
- https -l
- 什么是xss,如何预防 -l
- 什么是csrf,如何预防 -l
- 为什么会造成csrf攻击 -l
- http多路复用、头部压缩、并发请求 -l
- 一个网页从请求到呈现花了很长时间,如何排查 -l
- 首屏加载如何优化 -l
应用相关
- 网站换肤 -y
- 连续调三个接口,ab接口调完之后再调c接口,你会怎么做 -y
- 项目中如何鉴权的 -y
- 小程序有没有大小限制?如果超过限制了怎么做 -y
- 路由懒加载如何实现 -y
- 图片懒加载原理是什么 -y
- 上传文件断点续传怎么做 -y
canvas
- canvas基础知识 -canvas