# 一面
# Event Loop
# Webpack 的 loader 和 plugins 的区别
loader 是一个转换器,由于 webpack 本身只支持 js 和 json 格式的文件,对其他文件需要转换成 common.js 格式才能被 webpack 解析;
plugin 是一个扩展器,它丰富了 webpack 本身,针对的是 loader 结束之后,webpack打包的整个过程,它并不直接操作文件,而是基于事件机制工作,会监听webpack打包过程中的某些节点,执行广泛的任务。
# HTTP 状态吗 206 是干什么的
# React 高阶组件的作用有哪些
# React 和 Vue 的区别
react 和 vue 的区别 (opens new window)
react 和 vue 的区别 (opens new window)
# Service Worker 的作用
一篇文章让你了解 Service Worker (opens new window)
# 跨域
# 文件上传的二进制具体是怎么处理的
# Vue 响应式原理
# 首屏加载性能优化
- 资源懒加载
- 代码切割 Webpack 大法之 Code Spliting (opens new window)
# 二面
# computed 的实现原理
Vue computed 实现原理 (opens new window)
# Vue 实现原理
剖析 MVVM 实现原理 (opens new window)
# Chrome 插件如何屏蔽广告
AdBlock 工作原理 (opens new window)
# 如何判断两个变量相等
等价于问 Object.is 的实现原理
== VS === VS Object.is() (opens new window)
# Wacth 的运行原理
# Vue 的数据为什么频繁变化但只会更新一次
# Event Loop
# 除了 Flex 还可以用什么进行布局
Grid
# 绝对定位、固定定位和 z-index
# 绝对定位
- 一旦给元素加上
absolute
或float
就相当于给元素加上display: block
absolute
元素覆盖正常文档流内元素(不用设 z-index,自然覆盖)- 可以减少重绘重排的代价(如
absolute + top : -9999em
,或absolute + visibility: hidden
,将动画效果放到absolute
元素内)
# 属性介绍
static
,默认值,位置设为 static 的元素会始终处于文档流给予的位置inherit
,规定应从父元素继承 position 属性的值。但是任何版本的 IE 都不支持 inheritfixed
,生成绝对定位元素。默认情况下,可定位相对于浏览器窗口的指定坐标。元素通过 left,top,right 以及 bottom 属性进行定位。无论窗口滚动与否,元素都会留在那个位置。但是当祖先元素具有transform
属性且不为 none 时,就会相对于祖先元素指定坐标,而不是浏览器窗口absolute
,生成绝对定位元素,相对于距该元素最近的已定位的祖先元素进行定位。此元素可通过 left,top,right 和 bottom 属性进行定位。relative
,生成相对定位元素,相对于该元素在文档中的初始位置进行定位。通过 left,top,right 和 bottom 属性进行定位。
浮动、绝对定位和固定定位会脱离文档流,相对定位不会脱离文档流,绝对定位相对于该元素最近的已定位的祖先元素,如果没有一个祖先元素设置定位,那么参照物是 body。
绝对定位相对于包含块的起始位置:
- 如果祖先元素是块级元素,包含块则设置为该元素的内边距边界
- 如果祖先元素是行内元素,包含块则设置为该元素的内容边界