Day 89/100 近期面试题汇总

写在前面的话

最近面试,有不少题目还不错~

分享给大家

面试题如下

1、前端实现文件的断点续传

https://www.cnblogs.com/imwtr/p/5957391.html

https://juejin.cn/post/6844904046436843527


2、如何获取强缓存和协商缓存

https://segmentfault.com/a/1190000021661656

浏览器会获取该缓存资源的 header 中的信息,根据 response header 中的 expires 和 cache-control 来判断是否命中强缓存,如果命中则直接从缓存中获取资源。

如果没有命中强缓存,浏览器就会发送请求到服务器,这次请求会带上 IF-Modified-Since 或者 IF-None-Match, 它们的值分别是第一次请求返回 Last-Modified或者 Etag,由服务器来对比这一对字段来判断是否命中。如果命中,则服务器返回 304 状态码,并且不会返回资源内容,浏览器会直接从缓存获取;否则服务器最终会返回资源的实际内容,并更新 header 中的相关缓存字段。

No-cache 和 no-store的区别

no-cache 可以在本地缓存,可以在代理服务器缓存,但是这个缓存要服务器验证才可以使用

no-store 彻底得禁用缓冲,本地和代理服务器都不缓冲,每次都从服务器获取


3、为什么会有OPTIONS请求【预请求】

https://cloud.tencent.com/developer/article/1046663

1)获取服务器支持的HTTP请求方法;

2)用来检查服务器的性能。


4、函数柯里化

通过偏函数实现,把多参函数转换为一个嵌套一元函数的过程


5、顶级域名和子级域名之间的cookie共享

https://blog.csdn.net/u010955166/article/details/78469927

domain


6、为什么TCP连接要三次握手,四次挥手

https://juejin.cn/post/6844903913611591688

第四次挥手: 客户端接收到服务端的连接释放FIN报文后,必须发出确认报文,ACK=1,ack=z+1,而自己的序列号是seq=x+1,此时,客户端就进入了TIME-WAIT(时间等待)状态。此时服务端收到客户端发送过来的确认报文,就立即撤销自己的传输控制块TCB,进入CLOSED状态,注意此时的TCP连接还没有释放,必须经过2MSL(最长报文段寿命)的时间后,客户端没有收到服务端发来的任何数据,证明服务端已正常关闭,此时客户端会撤销相应传输控制块TCB后,进入CLOSED状态。至此,TCP的连接才真正的断开了。(服务端结束TCP连接的时间要比客户端稍微早一些)


7、https://huaban.com/

布局如何实现


8、vue 父子组件的方法调用

cnblogs.com/yangshifu/archive/2018/08/22/9518528.html

父组件调用子组件的方法 $refs

子组件调用父组件的方法 $emit


9、Vue父子组件生命周期执行顺序及钩子函数的个人理解

https://www.cnblogs.com/yuliangbin/p/9348156.html


10、加载渲染过程

  父beforeCreate->父created->父beforeMount->子beforeCreate->子created->子beforeMount->子mounted->父mounted


11、react hook

https://www.ruanyifeng.com/blog/2019/09/react-hooks.html

https://zh-hans.reactjs.org/docs/hooks-intro.html


12、SPA(single page application

1)SPA这个模型中,是通过动态地重写页面的部分与用户交互,而避免了过多的数据交换,响应速度自然相对更高。

比如,AngularJS,Vue

2)优点

页面之间的切换非常快

一定程度上减少了后端服务器的压力(不用管页面逻辑和渲染)

3)SEO【白帽技术】

在每页使用一个短、独特和相关的标题。

编辑网页,用与该页的主题。有关的具体术语替换隐晦的字眼。这有助于该站诉求的观众群,在搜索引擎上搜索而被正确导引至该站。

在该站点增加相当数量的原创内容。

使用合理大小、准确描述的汇标,而不过度使用关键字、惊叹号、或不相关标题术语。

注意网址字眼,有助于搜索引擎优化。

确认所有页可透过正常的链接来访问,而非只能透过Java 、JavaScript或Adobe Flash应用程序访问。这可透过使用一个专属列出该站所有内容的网页达成(网站地图)

透过自然方式开发链接:Google不花功夫在这有点混淆不清的指南上。写封电子邮件给网站员,告诉他:您刚刚贴了一篇挺好的文章,并且请求链接,这种做法很可能为搜索引擎所认可。

参与其他网站的网络集团(译按:web ring 指的是有相同主题的结盟站群)──只要其它网站是独立的、分享同样题目和可比较的品质。

4)SSR  

SSRServer-Side Rendering(服务器端渲染)的缩写

https://juejin.cn/post/6844903688075509774

SSR常用框架

React 的Next

Vue.js 的Nuxt


13、双向绑定

https://www.jianshu.com/p/cdd7dde12786

https://juejin.cn/post/6844903901003513863


14、Vue响应式原理的核心就是Observer、Dep、Watcher。

Observer中进行响应式的绑定,在数据被读的时候,触发get方法,执行Dep来收集依赖,也就是收集Watcher。

在数据被改的时候,触发set方法,通过对应的所有依赖(Watcher),去执行更新。比如watch和computed就执行开发者自定义的回调方法。


15、闭包

源自于函数式编程

由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"。 所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。 闭包可以用在许多地方。 它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。

js有哪些内存泄漏的方式?

https://juejin.cn/post/6844903917986267143


16、Primise.all()

https://www.jianshu.com/p/7e60fc1be1b2

在前端开发请求数据的过程中,偶尔会遇到发送多个请求并根据请求顺序获取和使用数据的场景,使用Promise.all毫无疑问可以解决这个问题。


17、字符串方法

https://www.runoob.com/js/js-strings.html

es6新增

https://es6.ruanyifeng.com/#docs/string

https://es6.ruanyifeng.com/#docs/string-methods

1For of

2)ES6 引入了模板字符串


18、数组方法

https://www.runoob.com/jsref/jsref-obj-array.html

数组扩展

https://es6.ruanyifeng.com/#docs/array

https://es6.ruanyifeng.com/#docs/array#Array-from


以上

你可能感兴趣的:(Day 89/100 近期面试题汇总)