1.ES5/ES6 的继承除了写法以外还有什么区别?
ES5和ES6继承最大的区别就是在于:
1.ES5先创建子类,在实例化父类并添加到子类this中
2.ES6先创建父类实例对象this,在实例化子集中通过调用父类的super方法访问父级后,在通过子类的构造函数修改this实现继承
注意:super关键字指代父类的实例,即父类的this对象。在子类构造函数中,调用super后,才可使用this关键字,否则报错
2.http状态码有哪些?分别是什么意思?
HTTP状态码共分为5种类型:
1开头:(被接受,需要继续处理。)
2开头 (请求成功)
3开头 (请求被重定向)
4开头:(请求错误)
5开头:(服务器错误)
状态码:
200 (正常;请求已完成。 )
301 (已移动 — 请求的数据具有新的位置且更改是永久的。 )
307 (重新请求的URL,客户端自动重新请求新的地址)
400 (错误请求 — 请求中有语法问题,或不能满足请求。 )
403 (禁止 — 即使有授权也不需要访问。 )
404 (找不到 — 服务器找不到给定的资源;文档不存在。 )
405 (资源被禁止 )
414 (请求 - URI 太长 )
500 (内部错误 — 因为意外情况,服务器不能完成请求。 )
503 (无法获得服务 — 由于临时过载或维护,服务器无法处理请求。 )
101 (服务器将遵从客户的请求转换到另外一种协议)
100 (初始的请求已经接受,客户应当继续发送请求的其余部分。
常见状态码
200 服务器成功处理了请求
304 服务端的资源与客户端上一次请求的一致,不需要重新传输,客 户端使用本地缓存的即可
400 用于告诉客户端它发送了一个错误的请求
404 (页面丢失)未找到资源
500 服务器内部出现了错误
501 服务器遇到一个错误,使其无法对请求提供服务
3.浏览器是如何渲染页面的?
页面渲染流程
1、解析文档构建DOM树
解析内容可以分为三部分:
1.HTML/XHTML/SVG:解析这三种文件后,会生成DOM树
2.CSS:解析样式表,生成CSS规则树
3.JavaScript:解析脚本,通过DOM API和CSSOM API操作DOM Tree和CSS Rule Tree,与用户进行交互。
2、构建渲染树
解析文档完成后,浏览器引擎会将 CSS Rule Tree 附着到DOM Tree 上,并根据DOM Tree 和 CSS Rule Tree构造 Rendering Tree(渲染树)
注意:
将CSS规则树匹配到DOM树需要解析CSS选择器,为提高性能,DOM树应尽量小,所以应该尽量使用id和class,避免过度层叠。
3、布局与绘制渲染树
解析position, overflow, z-index等等属性,计算每一个渲染树节点的位置和大小,此过程被称为reflow。最后调用操作系统的Native GUI API完成绘制(repain)
4.typeof和instanceof相同点与不同点
相同点:
JavaScript 中 typeof 和 instanceof 用来判断一个变量是否为空, 或者是什么类型的。
不同点:
typeof:
1.返回值是一个字符串, 用来说明变量的数据类型。
2.typeof 一般只能返回如下几个结果: number, boolean, string, function, object, undefined。
instanceof:
1.返回值为布尔值; 2. instanceof 用于判断一个变量是否属于某个对象的实例。