从工程流程看前端知识结构
新建工程
模块划分和包管理
项目架构
设计
- 虚拟列表、无限列表的原理
- 讲项目,虚拟列表的实现方法
JS
-
实现求和sum,支持sum(1), sum(1,2,3,4), sum(1)(2)(3), console.log(sum(1)(2,3)(4)) = 10
- 箭头函数题目
- this题目
- 闭包,闭包题目
-
chain = new Chain, chain.eat().sleep(5).eat().sleep(6).work()
-
原型链
- 判断数组的方式
-
instanceof
-
数组A,数字N,A中找到a,b使a+b=N
- 字符串,得出最长的没有重复字符的子串长度
TS
vue
-
vue的生命周期及说明
- vue实现数据绑定的原理
- vue data属性类型的数据响应({},[])
- vue key对性能的影响
- virtual dom的作用
- computed的缓存以及根据data属性响应的原理 (发布订阅模式)
- vue 3的变化
- computed是怎么随着data响应
打包发布
- wepack plugin的作用
浏览器获取资源和渲染
http
-
http1和http2的区别(多路复用,头部压缩的原理)
-
浏览器缓存的原理
-
什么是跨域,跨域的解决方式 (jsonp,服务端设置access-control-allow-origin:跨域资源共享,反向代理,postMessage)
- dns查询的过程(迭代/递归)
- cookie在一级域名和二级域名的读取问题
-
服务端是怎么设置浏览器cookie
- jsonp的原理和实现一个jsonp方法
安全
- xss和csrf
- 跨站脚本注入和跨站请求伪造
html
- html meta
dom
-
domContentLoaded和window.onload的区别
-
回到顶部的动画js实现
css
- wap页面如何适配不同分辨率 (rem相关)
性能优化
-
如何实现图片懒加载,除了通过getBoundingClientRect,百度图库如何懒加载
-
优化页面的指标:如何定义首屏渲染时间,观察占用内存
-
性能优化的方案