一、es5之下,原生js无法支持类似于CMD AMD等规范的模块化语法,但require sea webpack之类工具支持了这些规范,它们是借助了es5以下js的哪种特性实现的呢?
闭包,作用域、内存控制等相关回答。
二、React 优化中的 shouldComponentUpdate
1、React 官方指出:shouldComponentUpdate 是一个性能优化的紧急出口,即:万不得已不要用。
2、走shouldComponentUpdate方法是很费时的,且控制不好会出意外(该重新渲染时不渲染)。
2、render方法:React 是通过判断虚拟DOM是否有变更来决定是否重新渲染的,所以如果render方法的返回值没有变更,实际上就不会重新渲染。
三、vue 双向绑定的原理
1、访问器属性
通过
Object.defineProperty()
来定义
get 和 set 方法内部的 this 都指向 obj,这意味着 get 和 set 函数可以操作对象内部的值。
另外,访问器属性的会"覆盖"同名的普通属性,因为访问器属性会被优先访问,与其同名的普通属性则会被忽略。
2、DocumentFragment
首先:通过DocumentFragment
劫持,将Dom树拆成节点组成的数组;
然后:通过判断节点类型及属性v-model
的值,将Text节点中的/\{\{.*\}\}/
进行值v-model
的值替换
最后:重新渲染Dom树,以实现数据渲染。
四、前端技术选型问题,具体体现及实例
五、前端错误监控系统
六、react-router有哪几种history 及 区别
BroswerHistory和HashHistroy区别