前端面试必备

1.什么是原型链:
实例对象的__proto__属性指向它的原型对象,构造函数有一个原型属性prototype与实例的proto属性指向同一个对象。对象查找属性的时候,如果自身和原型都没有,直到Object.prototype.proto_为null

2.实现继承方案:
(1)原型继承(通过B.prototype = new A这一句话达成继承)
(2)call继承(把父类当做普通函数执行,让其执行的时候,方法中的this变为子类的实例即可)
(3)寄生组合继承(call继承+变异版的原型继承共同完成的)
(4)extends继承(和寄生组合继承基本类似,而且必须加上super()函数)

3.闭包理解:
闭包就是访问另一个函数作用域中的变量的函数,坑点:this指向windows、容易导致内存泄漏、内存消耗很大

4.浏览器渲染机制:
(1)解析HTML生成DOM树,再解析CSS生成CSSOM树
(2)DOM树和CSSOM树结合,生成渲染树
(3)回流
(4)重绘
(5)展示页面

性能优化:减少HTTP的请求次数和大小、资源的合并和压缩、图片懒加载、浏览器缓存、使用虚拟DOM、减少js修改样式,多使用CSS3

5.浏览器缓存有两种方式:
(1)、mate标签 但mate兼容性不靠谱
(2)、header头 两种缓存机制: 强缓存 协商缓存

6.https原理:
HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。

7.xss攻击:
主要是脚本的执行,用户操作时插入代码窃取用户信息

8.dom事件流:
冒泡型事件、捕获型事件、事件监听、javascript三大事件、js事件绑定的方法

你可能感兴趣的:(javascript,前端)