博主是23届的毕业生,目前在秋招阶段,总结一下近两个月来面试遇到的高频面经吧,以下回答网上的标准答案太多了,这里就写博主自己的理解吧
下面只介绍了高频题目,适合基础比较好的同学冲刺一下,*************************
前端面试题整理
一些重要的术语加粗标记了,注意注意!!
1.0
1.1
2.0
趁着这个机会简单的讲一下,网上有些写的篇幅太长了,我这里做个简述
1、客户端请求服务器,携带随机数R1并告知服务器自己支持哪些会话密钥生成算法(对称加密算法)
2、服务器向CA机构请求一个证书 和 证书私钥C1
3、服务器生成服务器 公钥1、服务器私钥1
4、服务器将 公钥1 和相关的 源数据 放入证书,并使用一种 加密算法(如MD5) 对源数据进行加密,得到 签名(数据摘要),随后使用 证书私钥C1 对证书进行加密,将 签名、证书、加密算法、会话密钥生成算法 和 随机数R2 一同发送给客户端
5、客户端用 内置的证书公钥 对证书进行解密,得到 证书,并使用 同一种加密算法 对证书中的源数据进行加密,得到 新的签名(数据摘要),若两个签名一致,说明原数据没有被篡改。
6、客户端生成 随机数R3,使用服务器 公钥1 加密R3,并发回给服务器
7、客户端使用 会话密钥生成算法 将R1、R2、R3生成 对称加密密钥
8、服务器收到R3后,将R1、R2、R3使用会话密钥生成算法生成对称加密密钥
9、双方通信时使用该对称加密密钥对数据进行加密(整个https流程都是为了这个对称加密密钥)
在我的面试经历中问的不多,但也是重点,网上很多相关知识,****************************
浏览器输入url到页面展示出来的全过程(含TCP三次握手四次挥手)
跨域:浏览器的同源策略对资源请求和响应做出的限制,所谓同源是指"协议+域名+端口"三者相同,如果缺少了同源策略,浏览器很容易受到XSS、CSRF等攻击。
同源策略限制内容有:
跨域解决方案
首先,JS是单线程的,在JS代码的执行过程中,会将同步代码放入执行栈中,将异步代码放入异步队列。执行栈中的同步代码依次执行,当执行栈为空时,轮询异步队列,异步队列中的由于类型不同,又分成宏任务队列和微任务队列,且微任务队列优先级高于宏任务队列,所以微任务队列里的任务的同步代码会先被放入执行栈中执行,再处理宏任务队列中的任务,每执行完一个宏任务,都会去执行微任务队列里的任务。如此轮询执行,直到所有队列为空。
下面放一个图帮助大家理解。
首先,从构造函数new出来的一个 实例对象,都有一个属性 __proto__指向 构造函数的prototype属性,该构造函数的ptototype属性称为 原型对象,原型对象中具有 constructor 属性指向构造函数,同时具有一个__proto__属性指向 Object构造函数的prototype 属性(因为该原型对象也是通过Object构造函数new出来的),Object的原型对象上的__proto__属性指向 null。从开头的构造函数new出来的实例对象,到最终的null,中间存在原型指向的链式结构,称为原型链。
下面放一个图帮助大家理解。
1、生成一个空对象
2、将该空对象的原型设置为构造函数的prototype对象(也就是空对象的__proto__指向构造函数的prototype属性)
3、让函数的 this 指向这个对象,执行构造函数的代码(为这个新对象添加属性)
4、判断函数的返回值类型,如果是基本数据类型,返回创建的对象。如果是引用数据类型,就返回这个引用类型的对象。
闭包是一个定义在函数内部的函数,它能够访问上层函数作用域中的变量,使其不被回收,这就是闭包。
闭包常见的应用场景有:节流、防抖、函数柯理化
节流和防抖函数可以写写,函数柯理化比较偏,有兴趣可以学学
function cloneDeep(obj){
let newObj
// 是对象,进行深拷贝
if(typeof obj == 'object' || obj != null){
// 判断一下obj是对象还是数组
newObj = obj instanceof Object ? {} : []
// 对源数据中的属性遍历,递归深拷贝
for(let i in obj){
newObj[i] = cloneDeep(obj[i])
}
}
//不是对象,则直接赋值
else{
newObj = obj
}
return newObj
}
直接放图,大家看吧,最好背的滚瓜烂熟,一般问vue开头就是生命周期,把这个给面试官讲的仔仔细细,面试官大概不会为难你后面的vue的知识了,因为他会觉得你vue学的不错
简单点说就是高效更新虚拟dom。具体是怎么做的呢,会的已经想起来了,不会的看视频吧。
尚硅谷vue课程 P30讲的就是key
#校招##面经##秋招##前端面经#