前端常见面试题(十一)
目录:
1,ES5/ES6 的继承除了写法以外还有什么区别?
2,http状态码有哪些?分别是深恶意思?
3,浏览器是如何渲染页面的?
4,typeof和instanceof相同点与不同点
5,如何解决回调地狱?请手写代码
一:ES5/ES6 的继承除了写法以外还有什么区别?
1,ES5寄生组合式继承
2,ES6继承
ES6中子类继承父类的属性使用了super关键字,ES6语法实现是ES5的语法糖,表面上,ES6的类关键字和子类继承关键字 实现的结构和ES5继承一样,但是根本还是有差别的,ES5继承prototype属性是先实例化父类,直接继承;而 ES6是在实例化子类对象时继承父类的prototype,即实例化父类。
二:http状态码有哪些?分别是什么意思?
1**(信息类):表示接收到请求并且继续处理
100 Continue 继续,一般在发送post请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息
2**(响应成功):表示动作被成功接收、理解和接受
200 OK 正常返回信息
201 Created 请求成功并且服务器创建了新的资源
202 Accepted 服务器已接受请求,但尚未处理
3**(重定向类):为了完成指定的动作,必须接受进一步处理
301 Moved Permanently 请求的网页已永久移动到新位置。
302 Found 临时性重定向。
303 See Other 临时性重定向,且总是使用 GET 请求新的 URI。
304 Not Modified 自从上次请求后,请求的网页未修改过。
4**(客户端错误类):请求包含错误语法或不能正确执行
400 Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。
401 Unauthorized 请求未授权。
403 Forbidden 禁止访问。
404 Not Found 找不到如何与 URI 相匹配的资源。
5**(服务端错误类):服务器不能正确执行一个正确的请求
500 Internal Server Error 最常见的服务器端错误。
503 Service Unavailable 服务器端暂时无法处理请求(可能是过载或维护)。
三:浏览器是如何渲染页面的?
1,简述浏览器渲染过程
1,解析HTML以构建DOM树:渲染引擎开始解析HTML文档,转换树中的html标签或js生成的标签到DOM节点,它被称为 — 内容树。
2,构建渲染树:解析CSS(包括外部CSS文件和样式元素以及js生成的样式),根据CSS选择器计算出节点的样式,创建另一个树 — 渲染树。,
3,布局渲染树: 从根节点递归调用,计算每一个元素的大小、位置等,给每个节点所应该出现在屏幕上的精确坐标。
4,绘制渲染树: 遍历渲染树,每个节点将使用,
2.CSS阻塞渲染
CSS 是阻塞渲染的资源。需要将它尽早、尽快地下载到客户端,以便缩短首次渲染的时间。
这就是为什么我们将外部样式的引入放在head标签中的原因,在body渲染前先把相对完整CSSOM Tree构建好。
3.JavaScript阻塞渲染
JavaScript 会阻止 DOM 构建和延缓网页渲染。 为了实现最佳性能,可以让您的JavaScript 异步执行,并去除关键渲染路径中任何不必要的 JavaScript。