2020Web前端开发经典面试题开课吧

北京医院治疗荨麻疹 http://pf.39.net/bdfyy/bdfhl/210719/9204186.html
Web前端面试题

问题:什么是中间人攻击?

解析:中间人(Man-in-the-middleattack,MITM)是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。

般的过程如下:

客户端发送请求到服务端,请求被中间人截获;

服务器向客户端发送公钥;

中间人截获公钥,保留在自己上。然后自己生成个公钥,发给客户端客户端收到伪造的公钥后,生成加密hash值发给服务器;

中间人获得加密hash值,用自己的私钥解密获得真密钥,同时生成假的加密hash值,发给服务器;

服务器用私钥解密获得假密钥,然后加密数据传输给客户端

问题:webpack与grunt、gulp的不同点有哪些?

解析:Grunt、Gulp是基于任务运的具:

它们会动执指定的任务,就像流线,把资源放上去然后通过不同插件进加,它们包含活跃的社区,丰富的插件,能便的打造各种作流。

Webpack是基于模块化打包的具:

动化处理模块,webpack把切当成模块,当webpack处理应程序时,它会递归地构建个依赖关系图(dependencygraph),其中包含应程序需要的每个模块,然后将所有这些模块打包成个或多个bundle。

因此这是完全不同的两类工具,而现在主流的方式是用npmscript代替Grunt、Gulp,npmscript同样可以打造任务流.

问题:webpack、rollup、parcel三者的优劣有哪些?

解析:webpack适用于大型复杂的前端站点构建:webpack有强大的loader和插件生态,打包后的文件实际上就是个立即执行函数,这个即执行函数接收个参数,这个参数是模块对象,键为各个模块的路径,值为模块内容。立即执行函数内部则处理模块之间的引用,执行模块等,这种情况更适合文件依赖复杂的应用开发.

rollup适用于基础库的打包,如vue、d3等:Rollup就是将各个模块打包进个文件中,并且通过Tree-shaking来删除无用的代码,可以最大程度上降低代码体积,但是rollup没有webpack如此多的如代码分割、按需加载等高级功能,其更聚焦于库的打包,因此更适合库的开发。

parcel适用于简单的实验性项目:他可以满足低门槛的快速看到效果,但是生态差、报错信息不够全面都是他的硬伤,除了些玩具项目或者实验项目不建议使用。

以上就是小科今天整理提供的Web前端开发面试题,希望为Web前端同学提供了有用的面试素材,以后小科每日均会提供Python、Web及MySQL数据库相关的习题。学习没有捷径,希望大家都能少走一些弯路,顺利找到工作!




转载请注明:http://www.aierlanlan.com/rzgz/3429.html