前端高频面试题

1、对webpack的理解

webpack是一个模块打包工具,你可以使用webpack管理你的模块依赖,并编译出模块所需要的静态文件。它能够很好的管理、打包web开发中所用到的HEML、JavaScript、css以及各种静态文件(图片、字体等),让开发过程更加高效。对于不同类型的资源,webpack有对应的模块加载器。webpack模块打包器会分析模块间的依赖关系,最后生成优化且合并后的静态资源

webpack的两大特色:

①、code splitting(可以自动完成)

②、loader 可以处理各种类型的静态文件,并且支持串联操作

webpack是以commonJs的形式来书写脚本的,但对AMD/CMD的支持也很全面,方便旧项目进行代码迁移

webpack具有requireJs和browserify的功能,但仍有很多自己的新特性

①、对commonJs、AMD、ES6的语法做了兼容

②、对js、css、图片等资源文件都支持打包

③、串联式模块加载器以及插件机制,让其具有更好的。灵活性和扩展性,例如提供对coffeeScript、ES6的支持

④、有独立的配置文件webpack.config.js

⑤、可以将代码切割成不同的chunk,实现按需加载,降低了初始化的时间

⑥、支持SourceUrls和SourceMaps,易于调试

⑦、具有强大的plugin接口,大多是内部插件,使用起来比较灵活

⑧、webpack使用异步IO并具有多级缓存,这使得webpack很快且在增量编译上更加快

2、说说TCP传输的三次握手四次挥手策略

为了准确无误地把数据送达目标处,TCP协议采用了三次握手策略。用TCP协议把数据包送出去后,TCP不会对传送 后的情况置之不理,它一定会向对方确认是否成功送达。握手过程中使用了TCP的标志:SYN和ACK。
发送端首先发送一个带SYN标志的数据包给对方。

接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。

最后,发送端再回传一个带ACK标志的数据包,代表“握手”结束。

若在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包。

断开一个TCP连接则需要“四次握手”:
1) 第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不 会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可 以接受数据。

2)第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。

3) 第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。

4)第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值