前面面试题记录

1.数组扁平化:答案

理解:数组扁平化可以利用apply(默认将数组展开)和扩展运算符(...)

如:[].concat.apply([],arr)和[].concat(...arr)

2.自己实现bind及bind与call、apply区别:答案

3.Array.prototype.slice.call():slice原生方法调用,返回数组,作用与类数组元素(有length属性,key为数字)

4.各种自定义实现

5.instanceof与typeof区别:答案

·instanceof是查找构造函数的原型链上是否有该属性,MDN定义: object instanceof Construct,查找构造函数

·typeof只是个一元运算符

6.深拷贝:

function deepCopy(obj) {

var result = Array.isArray(obj) ? [] : {};

for (var key in obj) { if (obj.hasOwnProperty(key)) { if (typeof obj[key] === 'object' && obj[key]!==null) { result[key] = deepCopy(obj[key]); //递归复制 } else { result[key] = obj[key]; } } } return result; }

7.http请求方法介绍:GET,POST,PUT,DELETE,OPTIONS等,关于OPTIONS:https://blog.csdn.net/zhuwinmin/article/details/78373732

8.HTTP2.0:大幅提高了web性能,通过压缩、多路复用、优先级等方式,缩短网页加载时间和提高安全性。https://segmentfault.com/a/1190000016656529?utm_source=tag-newest 

· 二进制传输:提升性能的基础,将传输信息分为更小的消息和帧,采用二进制格式编码

· 多路复用:原http会存在阻塞,2.0通过帧和流实现多个请求并行,帧是最小的数据单位,流由多个帧组成,帧会标识出属于哪个流,一个流就是一个请求,帧乱序传输,在对端再重新组合,避免了最耗时间的阻塞

· 服务端推送

9.HTTPS:https://blog.csdn.net/xiaoming100001/article/details/81109617 建立流程及防范中间人攻击的原理

· 通过公钥和私钥建立连接,建立连接之后通过对称秘钥传输数据

· 中间人攻击:证书信息摘要比对,这个无法伪造

10.

你可能感兴趣的:(前面面试题记录)