首页 > 网站开发 > JavaScript >
-
2023面试复盘,持续更新
7月27号下午2点
New 操作符做了什么:
1. 创建一个新的空对象。
2. 将这个新对象的原型指向构造函数的原型。
3. 将构造函数的this指向这个新对象。
4. 根据构造函数返回类型作判断,如果是值类型,返回newObj。如果是引用类型,就返回这个引用类型的对象
Vue2 数组push、shift的双向绑定是怎么实现的:
作者在vue原型上重写了push()方法,使数组进行操作时可以实现双向绑定Vue3 的watchEffect 是什么:
数据监听,相比watch方法watchEffect会立即执行一次
http和https的区别:
http:
http明文未加密
http默认是端口号80
优点:便宜,不需要解密,更快
缺点:不安全
https:
https = https + ssl
Ssl加密协议 应用层和传输层加了一个安全层
需要ca证书
https默认端口号443
优点:安全,
缺点:贵、加密解密需要时间,慢
Tcp三次握手和四次挥手:
三次握手:
第一次:客户端向服务端发送一个syn包
第二次:服务端收到syn包,向客户端返回syn+ack包
第三次:客户端收到后回复一个ack包
确立连接
四次挥手:
假如客户端向服务端发起关闭请求,
第一次挥手:他需要向服务端发送一包fin表示自己要关闭连接,然后进入等待状态1,
第二次挥手:服务端收到fin包,会发一个ack包表示进入等待状态,
第三次:此时服务器还能向客户端发送数据,发送完数据再发送一个fin包
第四次挥手:客户端收到ack包,进入超时等待状态,经过超时等待后,关闭连接,服务端收到ack包。立即关闭连接
Web1.x ,web2.0,web3.0:
1.0 可读,如各新浪等门户网站,需要有专门的编辑人员发文章上去,只有很少的留言功能
2.0 互动性,可以自己发信息,例如微博,脸书,抖音,小红书,用户不仅是平台的使用者也是内容的贡献者
3.0 去中心化,2.0时代的自己发送的信息都依托于平台,信息泄露什么的,3.0自己的就是自己的,一个账号走天下
Webpack的loader 有哪些:
1、file-loader:把⽂件输出到⼀个⽂件夹中,在代码中通过相对 URL 去引⽤输出的⽂件。
2、url-loader:和 file-loader 类似,但是能在⽂件很⼩的情况下以 base64 的⽅式把⽂件内容注⼊到代码中去。
3、source-map-loader:加载额外的 Source Map ⽂件,以⽅便断点调试。
4、image-loader:载并且压缩图⽚⽂件。
5、babel-loader:将ES6转化为ES5。
6、css-loader:加载 CSS,⽀持模块化、压缩、⽂件导⼊等特性。
7、style-loader:把 CSS 代码注⼊到 JavaScript 中,通过 DOM 操作去加载 CSS。
8、eslint-loader:通过 ESLint 检查 JavaScript 代码。
原文链接:https://blog.csdn.net/weixin_47450807/article/details/124051856
网站优化:
优化点一:网站速度优化
网站速度优化整体资源优化
减少http请求,资源压缩,cdn加速,路由、图片懒加载,预加载等等
首屏优化:懒加载,图片懒加载,预加载
利用第三方检测工具,检测页面性能,针对具体比较耗时的资源优化
优化点二:seo优化
Ssr服务端渲染,Vue官方介绍的ssr操作起来比较复杂,可以试用Nuxt.js,基于vue的ssr框架,可以方便的创建服务端渲染项目
页面内容尽量丰富,标签尽可能语义化,每个页面最好有<h1></h1><h2></2>这样的标签,
7月29日
什么是闭包:
因为作用域的原因函数外的不能访问函数内的变量,闭包的作用就是让函数外也能访问函数内的变量,闭包通过返回一个引用内部变量的函数来实现
闭包像一个隔离区,可以防止变量污染,封装公用方法,缺点是会造成内存泄露
如何解决闭包内存泄露问题:
闭包使用后,将引用闭包的变量赋值为null
常见的内存泄露有哪些:
全局变量、闭包、setTimeout等没有清除的定时器,变量引用的DOM使用后没有及时清除,没用清除的时间监听,console.log的变量
websocket断网怎么办:
-
- 客户端向服务器定时发送一条心跳消息。
- 服务器在接收到客户端发送的心跳消息后,立即回复一条响应消息。
- 客户端在一定时间内未收到服务器的响应消息,则认为连接已断开,需要重新连接。
缓存:
强制缓存:强制缓存在规定时间内缓存存在,就不重新下载
协商缓存:文件没有被修改过,就不重新下载
盒模型:
w3c盒模型:包括margin、padding、border、content,宽高 = padding + border + content
IE盒模型:包括margin、padding、border、content,宽高 = content
出处:https://www.cnblogs.com/zpfqi/p/17619700.html