web学习路线总结
HTML/CSS
html5 新特性
浏览器渲染机制
DOMcontantload 和 window.onload
重绘和回流
是什么?
在浏览器渲染的什么阶段?
怎么提升性能?
css盒模型
IE盒模型
标准盒模型
box-sizing
水平/垂直居中
定宽高
不定宽高
BFC
BFC是什么?
使用场景
怎么生成BFC
visibility、opacity、display的区别
@import和link标签的区别
相对单位
em/rem/vh/vw
flex布局
相关新布局了解
GPU加速、创建新图层
使用translate实现动画和直接修改left有何区别
will-change的作用; 可以写will-change: * 吗?
JS
闭包和作用域
闭包的作用? 缺点?
什么是变量提升? const、let、var的区别?
异步
如何取消一个请求?
promise的本质是什么? async的本质是什么? 区别
async原理是什么?
协程是什么? generator中怎么利用协程 ?
generator中怎么捕获错误,并抛出?
简单介绍下浏览器多线程,多进程
浏览器时间循环和node事件循环介绍?
vue中nextTick原理
垃圾回收机制? 新生代和老生代?
ES6新特性
set和weakSet的区别?
es6模块化和commonjs模块化区别?
防抖和节流
使用场景?
有何区别?
lodash源码阅读
原型
简单介绍下原型链?
instanceOf的实现原理?
Object instanceOf Function
Function instanceOf Object
Function instanceOf Function
Object.create的原理? Object.setPrototypeOf的区别
原型继承、组合继承、寄生继承的优缺点;
数据类型
实现一个深拷贝、并解决循环引用问题
typeOf和instanceOf的优缺点; 有没有完美的判断类型的方法
‘2’.toString(); 为什么字符串能调用方法,介绍下包装对象
事件
介绍下事件流? 捕获和冒泡?
target和currentTarget的区别
绑定事件的几种方式? 有何区别
script defer和async的区别?
网络network
输入url到浏览器解析的过程?
浏览器缓存
强缓存和协商缓存的区别?
强缓存的返回状态码是多少?
强缓存缓存from disk和from memory的区别?
from disk 举例?
from memory 举例?
强缓存中cash-control中的no-cash是做什么的? no-store呢?
HTTPS和HTTP的区别?
HTTPS一定安全吗?
HTTPS的缺点是?
TCP链接
简述三次握手、四次挥手?
为什么连接需要三次,断开需要四次?
TCP中怎么进行丢包处理?
TCP的拥塞控制?
TCP和UDP的区别? 使用场景?
滑动窗口机制是什么? 为什么会有? 如果此时丢包是如何处理的?
如何建立HTTPS的链接?
cookie/session/jwt的优缺点?
如何解决cookie跨域?
介绍下ws? ws如何建立连接? 发送HTTP请求升级成功返回的状态码?
安全
xss攻击
是什么?
如何防御?
csrf攻击
是什么?
如何防御?
点击劫持
还知道什么攻击方式?
sql注入
dns劫持
怎么攻击HTTPS?
webpack
publicPath是做什么的?
hash和chunkHash的区别是什么? 为什么需要hash? 为什么需要两种hash?
loader是什么? plugin是什么? 区别是什么? 是否写过loader或者plugin?
dll插件有使用过吗? 原理是? 怎么优化打包速度的?
mode中production和development有何区别?
简述webpack打包过程?
Tree shaking原理?
代码分割原理?
懒加载原理?
热更新原理?
prefetch预加载原理?
sourceMap原理?
scope Hoisting原理?
webpack如何优化? 分为打包速度优化、运行速度优化?
vue
MVVM是什么?
vue双向绑定原理?
说出vue的五种通信方法? provide和inject有何区别?
nextTick原理? 为何修改数据是异步更新视图?
Vue.router
介绍下路由更改到页面重新渲染的过程?
路由导航钩子?
网友评论