1.闭包以及实际的应用?
闭包作用:减少全局变量和避免命名冲突。
实际应用:防抖节流,循环绑定事件,事件中使用循环的计数器,
for (var i = 0; i < oLis.length; i++) {
(function (i) {
oLis[i].onmouseover = function () {
changeTab(i);
};
})(i);//每一次循环把当前i的值(0,1,2,3,4)赋值给形参i
}不要滥用闭包;
2.原型和原型链?
原型是function/函数对象(包括构造函数)的一个属性,它定义了函数构造出的对象的公共祖先。通过该函数构造出的对象,可以继承该原型的属性和方法。原型也是对象。
①所有
引用类型
都有一个__proto__(隐式原型)
属性,属性值是一个普通的对象
②所有函数
都有一个prototype(原型)
属性,属性值是一个普通的对象
③所有引用类型的__proto__
属性指向
它构造函数的prototype
3.继承的方式和具体实现?
4.new一个对象做了什么?
5.BFC?
6.重绘和回流?哪些导致回流,怎么优化?
7.页面刷新到显示经历了什么?(刷新比输入应该多了缓存的流程?)
8.http缓存?和浏览器缓存?
第一次请求:
非第一次请求:
9.执行上下文?作用域和作用域链?
10.垃圾回收?
11.原生ajax,具体的点,比如传参,请求头设置?
12, 节流防抖,浏览器缓存,跨域?
13.项目中会做哪些性能优化?
14.事件代理和事件委托,示例和具体方案?
15.target和currenttarget区别?
event.target
指向引起触发事件的元素,而event.currentTarget
则是事件绑定的元素,只有被点击的那个目标元素的event.target
才会等于event.currentTarge。
16.setTimeout 3秒后一定会执行吗?事件循环和js执行机制?
17.onlodh和DOMContentLoaded区别?
18.tcp和udp
19.页面白屏时间计算?
20.csrf攻击实践 ?
21.浏览器错误捕获,设计一个捕获异常的sdk?
22.