# 一面

# Event Loop

事件循环 (opens new window)

# Webpack 的 loader 和 plugins 的区别

loader 是一个转换器,由于 webpack 本身只支持 js 和 json 格式的文件,对其他文件需要转换成 common.js 格式才能被 webpack 解析;

plugin 是一个扩展器,它丰富了 webpack 本身,针对的是 loader 结束之后,webpack打包的整个过程,它并不直接操作文件,而是基于事件机制工作,会监听webpack打包过程中的某些节点,执行广泛的任务。

# HTTP 状态吗 206 是干什么的

HTTP 状态码 (opens new window)

# React 高阶组件的作用有哪些

React 高阶组件 (opens new window)

# React 和 Vue 的区别

react 和 vue 的区别 (opens new window)

react 和 vue 的区别 (opens new window)

# Service Worker 的作用

一篇文章让你了解 Service Worker (opens new window)

# 跨域

跨域 (opens new window)

# 文件上传的二进制具体是怎么处理的

# Vue 响应式原理

Vue 响应式原理 (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

# 绝对定位

  • 一旦给元素加上 absolutefloat 就相当于给元素加上 display: block
  • absolute 元素覆盖正常文档流内元素(不用设 z-index,自然覆盖)
  • 可以减少重绘重排的代价(如 absolute + top : -9999em,或 absolute + visibility: hidden ,将动画效果放到 absolute 元素内)

# 属性介绍

  • static ,默认值,位置设为 static 的元素会始终处于文档流给予的位置
  • inherit,规定应从父元素继承 position 属性的值。但是任何版本的 IE 都不支持 inherit
  • fixed,生成绝对定位元素。默认情况下,可定位相对于浏览器窗口的指定坐标。元素通过 left,top,right 以及 bottom 属性进行定位。无论窗口滚动与否,元素都会留在那个位置。但是当祖先元素具有 transform 属性且不为 none 时,就会相对于祖先元素指定坐标,而不是浏览器窗口
  • absolute,生成绝对定位元素,相对于距该元素最近的已定位的祖先元素进行定位。此元素可通过 left,top,right 和 bottom 属性进行定位。
  • relative,生成相对定位元素,相对于该元素在文档中的初始位置进行定位。通过 left,top,right 和 bottom 属性进行定位。

浮动、绝对定位和固定定位会脱离文档流,相对定位不会脱离文档流,绝对定位相对于该元素最近的已定位的祖先元素,如果没有一个祖先元素设置定位,那么参照物是 body。

绝对定位相对于包含块的起始位置:

  • 如果祖先元素是块级元素,包含块则设置为该元素的内边距边界
  • 如果祖先元素是行内元素,包含块则设置为该元素的内容边界