关于css:太棒了20182020前端经典面试题整理合集还附带大厂面试题分享

6次阅读

共计 11851 个字符,预计需要花费 30 分钟才能阅读完成。

1,盒模型

1.1,ie 盒模型算上 border、padding 及本身(不算 margin),规范的只算上本身窗体的大小 css 设置办法如下:

/* 规范模型 */box-sizing:content-box ;
/*IE 模型 */box-sizing:border-box ; 

1.2,几种取得宽高的形式

  • dom.style.width/height:这种形式只能取到 dom 元素内联款式所设置的宽高,也就是说如果该节点的款式是在 style 标签中或外联的 CSS 文件中设置的话,通过这种办法是获取不到 dom 的宽高的。
  • dom.currentStyle.width/height:这种形式获取的是在页面渲染实现后的后果,就是说不论是哪种形式设置的款式,都能获取到。但这种形式只有 IE 浏览器反对。
  • window.getComputedStyle(dom).width/height:这种方的原理和 2 是一样的,这个能够兼容更多的浏览器,通用性好一些。
  • dom.getBoundingClientRect().width/height:这种形式是依据元素在视窗中的相对地位来获取宽高的。
  • dom.offsetWidth/offsetHeight:这个就没什么好说的了,最罕用的,也是兼容最好的。

1.3,拓展 各种取得宽高的形式

  • 获取屏幕的高度和宽度(屏幕分辨率):
    window.screen.height/width
  • 获 取 屏 幕 工 作 区 域 的 高 度 和 宽 度(去 掉 状 态 栏):
    window.screen.availHeight/availWidth
  • 网页全文的高度和宽度:
    document.body.scrollHeight/Width
  • 滚动条卷下来的高度和向右卷的宽度:
    document.body.scrollTop/scrollLeft
  • 网页可见区域的高度和宽度(不加边线):
    document.body.clientHeight/clientWidth
  • 网页可见区域的高度和宽度(加边线):
    document.body.offsetHeight/offsetWidth

1.4,距重叠解决方案(BFC) BFC 原理

  • 外部的 box 会在垂直方向,一个接一个的搁置 每个元素的 margin box 的右边,与蕴含块 border box 的右边相接触(对于从做往右的格式化,否则相同)
  • box 垂直方向的间隔由 margin 决定,属于同一个 bfc 的两个相邻 box 的 margin 会产生重叠
  • bfc 的区域不会与浮动区域的 box 重叠
  • bfc 是一个页面上的独立的容器,里面的元素不会影响 bfc 里的元素,反过来,外面的也不会影响里面的
  • 计算 bfc 高度的时候,浮动元素也会参加计算 创立 bfc ? float 属性不为 none(脱离文档流)
  • position 为 absolute 或 fixed
  • display 为 inline-block,table-cell,table-caption,flex,inine-flex ? overflow 不为 visible
  • 根元素 demo
2,居中办法

程度方向上

针对 inline, 内联块 inline-block, 内联表 inline-table, inline-flex 元素及 img,span,button 等元素

.text_div{text-align:center;}
不定宽块状元素居中
.text_div{margin:0 auto;// 且须要设置父级宽度} 

通过给父元素设置 float,而后给父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left: -50% 来实现程度居中。

.wrap{
float:left;
position:relative;
left:50%;
clear:both;
}
.wrap-center{left:-50%;} 

垂直居中

  • 单行内联 (inline-) 元素垂直居中
    通过设置内联元素的高度 (height) 和行高 (line-height) 相等,从而使元素垂直居中。
.text_div{
height: 120px;
line-height: 120px;
} 
  • 利用表布局
.father {display: table;}
.children {
display: table-cell;
vertical-align: middle;
text-align: center;
} 
  • flex 布局
.center-flex {
display: flex;
flex-direction: column;// 高低排列
justify-content: center;
} 
  • 相对布局形式

已知高度

.parent {position: relative;}.child {position: absolute;
top: 50%;
height: 100px;
margin-top: -50px;
} 

未知高度

.parent {position: relative;}.child {
position: absolute;
top: 50%;
transform: translateY(-50%);
} 

垂直程度居中依据上方联合

flex 形式
.parent {
display: flex;
justify-content: center;
align-items: center;
}

grid 形式
.parent {
height: 140px;
display: grid;
}

.child {margin: auto;} 
3,css 优先级确定
  • 每个选择器都有权值,权值越大越优先
  • 继承的款式优先级低于本身指定款式
  • !important 优先级最高 js 也无奈批改
  • 权值雷同时,凑近元素的款式优先级高 程序为内联样式表(标签外部)> 外部样式表(以后文件中)> 内部样式表(内部文件中)
4,如何革除浮动

不分明浮动会产生高度塌陷:浮动元素父元素高度自适应(父元素不写高度时,子元素写了浮动后,父元素会产生高度塌陷)

  • clear 革除浮动(增加空 div 法)在浮动元素下方增加空 div, 并给该元素写 css 款式:{clear:both;height:0;overflow:hidden;}
  • 给浮动元素父级设置高度
  • 父级同时浮动(须要给父级同级元素增加浮动)? 父级设置成 inline-block,其 margin: 0 auto 居中形式生效
  • 给父级增加 overflow:hidden 革除浮动办法
  • 万能革除法 after 伪类 清浮动(当初支流办法,举荐应用)
.float_div:after{
content:".";
clear:both;
display:block;
height:0;
overflow:hidden;
visibility:hidden;
}

.float_div{zoom:1} 
5,link @import 导入 css

(1)link 是 XHTML 标签,除了加载 CSS 外,还能够定义 RSS 等其余事务;@import 属于 CSS 领域,只能加载 CSS。

(2)link 援用 CSS 时,在页面载入时同时加载;@import 须要页面网页齐全载入当前加载。

(3)link 无兼容问题;@import 是在 CSS2.1 提出的,低版本的浏览器不反对。

(4)link 反对应用 Javascript 管制 DOM 去扭转款式;而 @import 不反对。

6,[“1”, “2”, “3”].map(parseInt)

首先, map 承受两个参数, 一个回调函数 callback, 一个回调函数的 this 值,其中回调函数承受三个参数 currentValue, index, arrary;而题目中, map 只传入了回调函数 –parseInt.。其次, parseInt 只承受两个两个参数 string, radix(基数).

本题了解来说也就是 key 与 index

所以本题即问 parseInt(‘1’, 0);parseInt(‘2’, 1);parseInt(‘3’, 2);

parseInt(string, radix)

string 必须,要被解析的字符串。
radix 可选,示意要解析的数字的基数。该值介于 2 ~ 36 之间。

如果省略该参数或其值为 0,则数字将以 10 为根底来解析。如果它以“0x”或“0X”结尾,将以 16 为基数。

7,浅拷贝和深拷贝
  • 浅拷贝
// 第一层为深拷贝
Object.assign()
Array.prototype.slice()
扩大运算符 ... 
  • 深拷贝
JSON.parse(JSON.stringify()) 

递归函数

function cloneObject(obj) {var newObj = {} // 如果不是援用类型,间接返回
  if (typeof obj !== 'object') {return obj}
  // 如果是援用类型,遍历属性
  else {for (var attr in obj) {
      // 如果某个属性还是援用类型,递归调用
      newObj[attr] = cloneObject(obj[attr])
    }
  }
  return newObj
} 
8,数组去重的办法

1)ES6 的 Set

let arr = [1,1,2,3,4,5,5,6]
let arr2 = [...new Set(arr)] 

2)reduce()

let arr = [1,1,2,3,4,5,5,6]
let arr2 = arr.reduce(function(ar,cur) {if(!ar.includes(cur)) {ar.push(cur)
  }

  return ar
},[]) 

3)filter()

// 这种办法会有一个问题:[1,'1']会被当做雷同元素,最终输出[1]
let arr = [1,1,2,3,4,5,5,6]
let arr2 = arr.filter(function(item,index) {// indexOf() 办法可返回某个指定的 字符串值 在字符串中首次呈现的地位
  return arr.indexOf(item) === index
}) 
9,cookie、localStorage、sessionStorage 的区别和应用?

cookie:是存储在本地的数据,有时候也用 cookies,通常通过加密,利用最经典的就是判断注册用户是否曾经登录过该网站。
localStorage:仅在客户端保留(即浏览器),不参加和服务器的通信;没有工夫限度,即便浏览器敞开,数据仍然存在;

创立和拜访 localStorage:1)、设置数据:var forgetData = {phone:vm.phone};
   localStorage.setItem("forgetData",JSON.Stringfy(forgetData)); 
//forgetData 是存储在 localStorage 里边的本地数据;JSON.Stringfy(forgetData)是将数据转化
为字符串格局;获取数据:vm.forgetData=JSON.parse(localStorage.getItem("forgetData")); // 将字符串
转化为 JSON 化;2)、设置:localStorage.name = "zhao";
      获取:localStorage.name  //zhao 
      localStorage.setItem(key,value);// 设置数据 
      localStorage.getItem(key);// 获取数据 
      localStorage.removeItem(key);// 删除单个数据 
      localStorage.clear();// 革除所有 localStorage 的数据
      
 sessionStorage:当用户的浏览器窗口敞开时,数据会被革除;

共同点:都是保留在浏览器端,且同源的。

区别:

cookie 数据始终在同源的 http 申请中携带 9 即便不须要),即 cookie 在浏览器和服务器之间来回传递;cookie 数据还有门路的概念,能够限度 cookie 只属于某个门路下。存储大小限度也不同,cookie 数据大小不能超过 4K,同时因为每次 http 申请都会携带 cookie,所以 cookie 只能保留很小的数据。
sessionStorage 和 localStorage 不会主动把数据发给服务器,只在本地保留,尽管也有大小限度,然而要比 cookie 大得多,能够达到 5M 或者更大。

数据有效期不同,
sessionStorage 仅在以后浏览器窗口敞开前无效,不能长久保留;
localStorage:始终无效,浏览器窗口敞开也始终保留;
cookie:只在 cookie 设置的过期工夫之前保留,即便浏览器窗口敞开。

作用域不同,
sessionStorage 在不同浏览器窗口的数据不能共享,即便是同一个页面;
localStorage 在所有的同源窗口中都是共享的;
cookie 也是在同源窗口中共享的

10、ajax 申请时 get 和 post 的区别?

get:从服务器上获取数据,传送数据量小,安全性低,申请会被缓存,缓存是针对 URL 进行缓存的,get 申请参数间接加在 URL 地址前面,一种参数组合就会产生一种 URL 的缓存,反复的申请后果是雷同的;

post:向服务器发送数据;传送数据量大,申请不会被缓存,参数封装在二进制的数据体中,服务器也不会记录参数,绝对平安,所以波及用户隐衷的数据都要用 post 传送

11、常见状态码

2 结尾(申请胜利)示意胜利解决了申请的状态代码

200(胜利)服务器已胜利解决了申请。通常,这示意服务器提供了申请的网页。
201(已创立)申请胜利并且服务器创立了新的资源。
202(已承受)服务器已承受申请,但尚未解决。
203(非受权信息)服务器已胜利解决了申请,但返回的信息可能来自另一起源。
204(无内容)服务器胜利解决了申请,但没有返回任何内容。
205(重置内容)服务器胜利解决了申请,但没有返回任何内容。
206(局部内容)服务器胜利解决了局部 GET 申请。

3 结尾(申请被重定向)示意要实现申请,须要进一步操作。通常,这些状态代码用来重定向

300(多种抉择)针对申请,服务器可执行多种操作。服务器可依据请求者 (user agent) 抉择一项操作,或提供操作列表供请求者抉择。
301(永恒挪动)申请的网页已永恒挪动到新地位。服务器返回此响应(对 GET 或 HEAD 申请的响应)时,会主动将请求者转到新地位。
302(长期挪动)服务器目前从不同地位的网页响应申请,但请求者应持续应用原有地位来进行当前的申请。
303(查看其余地位)请求者该当对不同的地位应用独自的 GET 申请来检索响应时,服务器返回此代码。
304(未修改)自从上次申请后,申请的网页未修改过。服务器返回此响应时,不会返回网页内容。
305(应用代理)请求者只能应用代理拜访申请的网页。如果服务器返回此响应,还示意请求者应应用代理。
307(长期重定向)服务器目前从不同地位的网页响应申请,但请求者应持续应用原有地位来进行当前的申请。

4 结尾(申请谬误)这些状态代码示意申请可能出错,障碍了服务器的解决

400(谬误申请)服务器不了解申请的语法。
401(未受权)申请要求身份验证。对于须要登录的网页,服务器可能返回此响应。
403(禁止)服务器拒绝请求。
404(未找到)服务器找不到申请的网页。
405(办法禁用)禁用申请中指定的办法。
406(不承受)无奈应用申请的内容个性响应申请的网页。
407(须要代理受权)此状态代码与
408(申请超时)服务器等待申请时产生超时。
409(抵触)服务器在实现申请时发生冲突。服务器必须在响应中蕴含无关抵触的信息。
410(已删除)如果申请的资源已永恒删除,服务器就会返回此响应。
411(须要无效长度)服务器不承受不含无效内容长度标头字段的申请。
412(未满足前提条件)服务器未满足请求者在申请中设置的其中一个前提条件。
413(申请实体过大)服务器无奈解决申请,因为申请实体过大,超出服务器的解决能力。
414(申请的 URI 过长)申请的 URI(通常为网址)过长,服务器无奈解决。
415(不反对的媒体类型)申请的格局不受申请页面的反对。
416(申请范畴不符合要求)如果页面无奈提供申请的范畴,则服务器会返回此状态代码。
417(未满足期望值)服务器未满足 ” 冀望 ” 申请标头字段的要求。

5 结尾(服务器谬误)这些状态代码示意服务器在尝试解决申请时产生外部谬误。这些谬误可能是服务器自身的谬误,而不是申请出错

500(服务器外部谬误)服务器遇到谬误,无奈实现申请。
501(尚未施行)服务器不具备实现申请的性能。例如,服务器无奈辨认申请办法时可能会返回此代码。
502(谬误网关)服务器作为网关或代理,从上游服务器收到有效响应。
503(服务不可用)服务器目前无奈应用(因为超载或停机保护)。通常,这只是临时状态。
504(网关超时)服务器作为网关或代理,然而没有及时从上游服务器收到申请。
505(HTTP 版本不受反对)服务器不反对申请中所用的 HTTP 协定版本。

12,挪动端触摸事件

①touchstart:当手指触碰到屏幕的时候触发
②touchmove:当手指在屏幕上滑动的时候触发
③touchend:当手指来到屏幕的时候时候触发
④touchcancel 事件:当零碎进行跟踪触摸的时候触发(这个事件很少会用,个别不做深入研究)。电话接入或者弹出信息等其余事件切入 event:

(1)touches:示意以后跟踪的触摸操作的 touch 对象的数组。
(2)targetTouches:特定于事件指标的 Touch 对象的数组。
(3)changeTouches:示意自上次触摸以来产生了什么扭转的 Touch 对象的数组。每个 touch 对象蕴含的属性
(4)clientX:触摸指标在视口中的 x 坐标。
(5)clientY:触摸指标在视口中的 y 坐标。
(6)identifier:标识触摸的惟一 ID。
(7)pageX:触摸指标在页面中的 x 坐标。
(8)pageY:触摸指标在页面中的 y 坐标。
(9)screenX:触摸指标在屏幕中的 x 坐标。
(10)screenY:触摸指标在屏幕中的 y 坐标。
(11)target:触目标 DOM 节点指标。

13,生命周期

总共分为 8 个阶段创立前 / 后,载入前 / 后,更新前 / 后,销毁前 / 后。

  • 创立前 / 后:在 beforeCreate 阶段,vue 实例的挂载元素 el 和数据对象 data 都为 undefined,还未初始化。在 created 阶段,vue 实例的数据对象 data 有了,el 还没有。
  • 载入前 / 后:在 beforeMount 阶段,vue 实例的 $el 和 data 都初始化了,但还是挂载之前为虚构的 dom 节点,data.message 还未替换。在 mounted 阶段,vue 实例挂载实现,data.message 胜利渲染。
  • 更新前 / 后:当 data 变动时,会触发 beforeUpdate 和 updated 办法。
  • 销毁前 / 后:在执行 destroy 办法后,对 data 的扭转不会再触发周期函数,阐明此时 vue 实例曾经解除了事件监听以及和 dom 的绑定,然而 dom 构造仍然存在

(1)什么是 vue 生命周期

Vue 实例从创立到销毁的过程,就是生命周期。也就是从开始创立、初始化数据、编译模板、挂载
Dom→渲染、更新→渲染、卸载等一系列过程,咱们称这是 Vue 的生命周期。

(2)vue 生命周期的作用是什么

它的生命周期中有多个事件钩子,让咱们在管制整个 Vue 实例的过程时更容易造成好的逻辑。

(3)vue 生命周期总共有几个阶段

能够总共分为 8 个阶段:创立前 / 后, 载入前 / 后, 更新前 / 后, 销毁前 / 销毁后

(4)第一次页面加载会触发哪几个钩子

第一次页面加载时会触发 beforeCreate, created, beforeMount, mounted 这几个钩子

(5)DOM 渲染在 哪个周期中就曾经实现

DOM 渲染在 mounted 中就曾经实现了

(6)简略形容每个周期具体适宜哪些场景

生命周期钩子的一些应用办法:

  • beforecreate : 能够在这加个 loading 事件,在加载实例时触发
  • created : 初始化实现时的事件写在这里,如在这完结 loading 事件,异步申请也合适在这里调用
  • mounted : 挂载元素,获取到 DOM 节点
  • updated : 如果对数据对立解决,在这里写上相应函数
  • beforeDestroy : 能够做一个确认进行事件的确认框
  • nextTick : 更新数据后立刻操作 dom
14,Vue 的 nextTick 的原理是什么?

1)为什么须要 nextTick
Vue 是异步批改 DOM 的并且不激励开发者间接接触 DOM,但有时候业务须要必须对数据更改 – 刷新后的 DOM 做相应的解决,这时候就能够应用 Vue.nextTick(callback)这个 api 了。

2)了解原理前的筹备
首先须要晓得事件循环中宏工作和微工作这两个概念 (这其实也是面试常考点)。
常见的宏工作有 script, setTimeout, setInterval, setImmediate, I/O, UI rendering
常见的微工作有 process.nextTick(Nodejs),Promise.then(),MutationObserver;

3)了解 nextTick
而 nextTick 的原理正是 vue 通过异步队列管制 DOM 更新和 nextTick 回调函数先后执行的形式。如果大家看过这部分的源码,会发现其中做了很多 isNative()的判断,因为这里还存在兼容性优雅降级的问题。可见 Vue 开发团队的三思而行,对性能的良苦用心。

15,Vue 中引入组件的步骤?

1)采纳 ES6 的 import … from … 语法或 CommonJS 的 require()办法引入组件
2)对组件进行注册, 代码如下

// 注册
Vue.component('my-component', {template: '<div>A custom component!</div>'}) 

3)应用组件 <my-component></my-component>

16,说出至多 4 种 vue 当中的指令和它的用法?
  • v-if:判断是否暗藏;
  • v-for:数据循环;
  • v-bind:class:绑定一个属性;
  • v-model:实现双向绑定
17,vuex

(1)vuex 是什么?怎么应用?哪种性能场景应用它?

vue 框架中状态治理。在 main.js 引入 store,注入。新建一个目录 store,….. export。

场景有:单页利用中,组件之间的状态。音乐播放、登录状态、退出购物车

(2)vuex 有哪几种属性?

有五种,别离是 State、Getter、Mutation、Action、Module

  • vuex 的 State 个性
    A、Vuex 就是一个仓库,仓库外面放了很多对象。其中 state 就是数据源寄存地,对应于个别 Vue 对象外面的 data
    B、state 外面寄存的数据是响应式的,Vue 组件从 store 中读取数据,若是 store 中的数据产生扭转,依赖这个数据的组件也会产生更新
    C、它通过 mapState 把全局的 state 和 getters 映射到以后组件的 computed 计算属性中
  • vuex 的 Getter 个性
    A、getters 能够对 State 进行计算操作,它就是 Store 的计算属性
    B、尽管在组件内也能够做计算属性,然而 getters 能够在多组件之间复用
    C、如果一个状态只在一个组件内应用,是能够不必 getters
  • vuex 的 Mutation 个性
    Action 相似于 mutation,不同在于:Action 提交的是 mutation,而不是间接变更状态;Action 能够蕴含任意异步操作。

(3)不必 Vuex 会带来什么问题?

  • 可维护性会降落,想批改数据要保护三个中央;
  • 可读性会降落,因为一个组件里的数据,基本就看不出来是从哪来的;
  • 减少耦合,大量的上传派发,会让耦合性大大增加,原本 Vue 用 Component 就是为了缩小耦合,当初这么用,和组件化的初衷相背
18,vuex 是基于 redux

1)全局的 store
2)响应式
3)不能间接批改,commit(mutation)
vuex 应用繁多状态树 吧 store 的实例注入到所有的子组件,mutation 解决同步事务
1)action:提交 mutation,异步
2)module

19,vue 更新 data

1)异步更新
2)屡次更新 data,只在最初一次渲染

20,react 的 setState

1)两个参数。setState(updater,[callback]) , 第一个参数是更新的对象,第二个参数是更新实现的回调函数;
2)setStat 自身执行过程和代码是同步的
3)合成事件(onClick、onChanged 等) 和钩子函数中 setState 是异步的,将屡次合并成一次更新;
4)在原生事件和 setTimeout 中都是同步的。
5)浅合并 Objecr.assign()

21,react 的 setState 流程

1)将 state 放入数组(队列);
2)查看是否在更新阶段
3)是:组件放在 dirtyComponent
4)否:调用 update 更新,标记以后处于更新阶段
5)最初再遍历 dirtyComponent 执行更新

22,react 和 vue 的比拟

雷同
1)vitual dom
2)组件化
3)props,繁多数据流

不同点
1)react 是 jsx 和模板;(jsx 能够进行更多的 js 逻辑和操作)
2)状态治理(react)
3)对象属性(vue)
4)vue:view——medol 之间双向绑定
5)vue:组件之间的通信(props,callback,emit)

篇幅无限,所有前端面试题都已整顿成 PDF 文档,须要支付能够私信,收费分享!

分享一些前端大厂面试题

阿里

  • 应用过的 koa2 中间件
  • koa-body 原理
  • 介绍本人写过的中间件
  • 有没有波及到 Cluster
  • 介绍 pm2
  • master 挂了的话 pm2 怎么解决
  • 如何和 MySQL 进行通信
  • React 申明周期及本人的了解
  • 如何配置 React-Router
  • 路由的动静加载模块
  • 服务端渲染 SSR
  • 介绍路由的 history
  • 介绍 Redux 数据流的流程
  • Redux 如何实现多个组件之间的通信,多个组件应用雷同状态如何进行治理
  • 多个组件之间如何拆分各自的 state,每块小的组件有本人的状态,它们之间还有一些公共的状态须要保护,如何思考这块
  • 应用过的 Redux 中间件
  • 如何解决跨域的问题
  • 常见 Http 申请头
  • 挪动端适配 1px 的问题
  • 介绍 flex 布局
  • 其余 css 形式设置垂直居中
  • 居中为什么要应用 transform(为什么不应用 marginLeft/Top)
  • 应用过 webpack 外面哪些 plugin 和 loader
  • webpack 外面的插件是怎么实现的
  • dev-server 是怎么跑起来
  • 我的项目优化
  • 抽取公共文件是怎么配置的
  • 我的项目中如何解决平安问题
  • 怎么实现 this 对象的深拷贝

网易

  • 介绍 redux,次要解决什么问题
  • 文件上传如何做断点续传
  • 表单能够跨域吗
  • promise、async 有什么区别
  • 搜寻申请如何解决(防抖)
  • 搜寻申请中文如何申请
  • 介绍观察者模式
  • 介绍中介者模式
  • 观察者和订阅 - 公布的区别,各自用在哪里
  • 介绍 react 优化
  • 介绍 http2.0
  • 通过什么做到并发申请
  • http1.1 时如何复用 tcp 连贯
  • 介绍 service worker
  • 介绍 css3 中 position:sticky
  • redux 申请中间件如何解决并发
  • 介绍 Promise,异样捕捉
  • 介绍 position 属性包含 CSS3 新增
  • 浏览器事件流向
  • 介绍事件代理以及优缺点
  • React 组件中怎么做事件代理
  • React 组件事件代理的原理
  • 介绍 this 各种状况
  • 前端怎么管制治理路由
  • 应用路由时呈现问题如何解决
  • React 怎么做数据的检查和变动

滴滴

  • react-router 怎么实现路由切换
  • react-router 里的 <Link> 标签和 <a> 标签有什么区别
  • 标签默认事件禁掉之后做了什么才实现了跳转
  • React 层面的性能优化
  • 整个前端性能晋升大抵分几类
  • import {Button} from 'antd',打包的时候只打包button,分模块加载,是怎么做到的
  • 应用 import 时,webpacknode_modules 里的依赖会做什么
  • JS 异步解决方案的倒退历程以及优缺点
  • Http 报文的申请会有几个局部
  • cookie放哪里,cookie能做的事件和存在的价值
  • cookietoken 都寄存在 header 外面,为什么只劫持前者
  • cookiesession 有哪些方面的区别
  • ReactDom 构造发生变化后外部经验了哪些变动
  • React挂载的时候有 3 个组件,textComponent、composeComponent、domComponent,区别和关系,Dom 构造发生变化时怎么辨别 data 的变动,怎么更新,更新怎么调度,如果更新的时候还有其余工作存在怎么解决
  • key 次要是解决哪一类的问题,为什么不倡议用索引 index(重绘)
  • Redux 中异步的申请怎么解决
  • Redux 中间件是什么货色,承受几个参数(两端的柯里化函数)
  • 柯里化函数两端的参数具体是什么货色
  • 中间件是怎么拿到 store 和 action,而后怎么解决
  • state 是怎么注入到组件的,从 reducer 到组件经验了什么样的过程
  • koa 中 response.send、response.rounded、response.json 产生了什么事,浏览器为什么能辨认到它是一个 json 构造或是 html
  • koa-bodyparser 怎么来解析 request
  • webpack 整个生命周期,loader 和 plugin 有什么区别
  • 介绍 AST(Abstract Syntax Tree)形象语法树
  • 安卓 Activity 之间数据是怎么传递的
  • 安卓 4.0 到 6.0 过程中 WebView 对 js 兼容性的变动
  • WebView 和原生是如何通信
  • 跨域怎么解决,有没有应用过 Apache 等计划
正文完
 0