html
html语义化
script标签中的defer和async的区别
css
盒模型
css选择器和优先级
重排和重绘的理解
对bfc的理解(特性创建,bfc的方式,bfc可以解决什么问题)
实现两栏布局的方式(浮动、绝对定位、flex布局)三栏布局
水平垂直居中的多种实现方式
flex布局
line-height如何继承
父-值,子直接继承值
父-比例,子继承比例
父-百分比,子元素会在父元素中先算出line-height的具体值,然后在对具体值进行继承
js
js基本数据类型和引用数据类型,分别存在什么样的数据结构中
数据类型的判断(局限性和优势)
深拷贝和浅拷贝(代码)
作用域、作用域链、执行上下文、闭包(执行顺序)事件循环,宏任务,和微任务
call、apply、bind区别和相同点
外部存储
cookie、webstorage(localstorage、sessionstorage)
网络
状态码
12345
缓存
强制缓存和协商缓存(关键字)
cache-control
协商缓存里面的etag和last-modify
http2.0和http1.1
头部压缩、多路复用服务器推送
性能
js—防抖和节流
css—可以减少它的一个回流和重绘
构建—代码压缩、开启gzip压缩,cdn服务
vue
spa理解,单页面的理解优缺点
v-show和v-if的区别
class与style是如何实现动态绑定的
如何理解vue是单向数据流的
watch和computed的区别
vue对数据监测有什么局限性
vue生命周期的理解
vue的父子组件的传值有哪些方式
在那个生命周期可以调用异步请求的
在什么阶段才可以访问操作dom
父组件可以监听子组件的生命周期吗
data为什么是个函数而不是一个对象
v-model的实现原理vue是怎么实现双向数据绑定的
vue的组件通信有哪些
父子组件通信隔代组件通信,兄弟组件通信
vuex核心概念state、getter、mutation、action、module
路由模式hash history
mvvm和mvc的区别
虚拟dom优点和实现原理
vue中使用key的注意事项
手写代码:new实现call、apply、bind
数据扁平化的一个方式