阿里一面
前端开发/真实面经
1.先问基本信息,硕土期间GPA是多少,有参加过一些竞赛之类的吗、或者说毕业要求要发文章吗?现在发论文了吗?
2.UDP和TCP的区别(说到了传输层),那再往上一层说一下,比如HTTP有了解吗? HTTP 是一种 超文本传输协议 (Hypertext Transfer Protocol),HTTP 是在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范 HTTP 主要内容分为三部分,超文本(Hypertext)、传输(Transfer)、协议(Protocol)。 超文本就是不单单只是本文,它还可以传输图片、音频、视频,甚至点击文字或图片能够进行超链接的跳转。 上面这些概念可以统称为数据 传输就是数据需要经过一系列的物理介质从一个端系统传送到另外一个端系统的过程。 通常我们把传输数据包的一方称为请求方,把接到二进制数据包的一方称为应答方。 而协议指的就是是网络中 (包括互联网)传递、管理信息的一些规范。
- http和https的区别(这题内容很多)
4.跨代的HTTP版本之间的区别有了解吗? (1.1和2.0和3.0) HTTP 1.0 无状态,无连接 短连接:每次发送请求都要重新建立tcp请求,即三次握手,非常浪费性能 无host头域,也就是http请求头里的host, 不允许断点续传,而且不能只传输对象的一部分,要求传输整个对象
HTTP 1.1 长连接,流水线,使用connection:keep-alive使用长连接 请求管道化 增加缓存处理(新的字段如cache-control) 增加Host字段,支持断点传输等 由于长连接会给服务器造成压力
HTTP 2.0 二进制分帧 头部压缩,双方各自维护一个header的索引表,使得不需要直接发送值,通过发送key缩减头部大小 多路复用(或连接共享),使用多个stream,每个stream又分帧传输,使得一个tcp连接能够处理多个http请求 服务器推送(Sever push)
HTTP 3.0 0-RTT — QUIC协议相比HTTP2.0的最大优势 缓存当前会话的上下文,下次恢复会话的时候,只需要将之前的缓存传递给服务器,验证通过,就可以进行传输了。 基于google的QUIC协议,而quic协议是使用udp实现的 减少了tcp三次握手时间,以及tls握手时间 解决了http 2.0中前一个stream丢包导致后一个stream被阻塞的问题 优化了重传策略,重传包和原包的编号不同,降低后续重传计算的消耗 连接迁移,不再用tcp四元组确定一个连接,而是用一个64位随机数来确定这个连接 更合适的流量控制
5.下面问些前端和js相关的吧 js的基本类型和引用类型(这个问题以后想一下还有什么可以引导),基本类型和引用类型在内存中的表达形式的区别 一、基本类型 1、基本类型有:undefined / null / number / string / boolean / bigint / symbol 2、基本类型数据放在栈内存中 3、基本类型数据是不可变的 二、引用类型 1、引用类型有:Object / Array / Function 等,本质上都是属于 Object 2、引用类型以:地址: 数据 的映射关系来进行存储,其中地址放在栈内存,数据放在堆内存,若两个或 N 个变量指向同一个地址,则共用一份数据。 3、引用类型数据是可变的
6.面聊一聊纯前端的,你有写过项目吗? ●Vue数据绑定原理 Vue 双向绑定就是:数据变化更新视图,视图变化更新数据Vue 数据双向绑定是通过数据劫持和观察者模式来实现的,数据劫持,object.defineproperty 它的目的是:当给属性赋值的时候,程序可以感知到,就可以控制改变属性值观察者模式 当属性发生改变的时候,使用该数据的地方也发生改变 双向数据绑定就是多了 View 变化会通知到 Model 层。即 MVVM 的具体实现。无论 Model 还是 View 中的值发生变化,都会通过 ViewModel 通知到对方,实现同步。实际应用就是 v-model 双向数据绑定。 vue单向数据流 单向数据流在 Vue 中实际表现就是:当 Model 中的 data 发生变化的时候会单向修改 View 中的值,而 View 中的值发生变化的时候,Model 不会感知。实际应用就是 v-bind 单向数据。
7.vh和rem的区别 (CSS) rem rem数值是相对于html标签的字号(一般设置为当前设备视口宽度的十分之一)大小来决定的 在不同的移动设备上需要不断地修改html标签的字号大小,以适应设备 需要媒体查询media 需要引用flexible.js 目前在市场上比较常见,如手淘之类都在用 vw/vh vw/vh在同一个网页中只能使用一个,不可混用,否则盒子可能会出错 vw/vh的数值是相对于设备视口宽/高的1%来决定的 适应不同的设备,省去了多余的判断和修改 是未来的趋势,如小米和b站之类的在用
8.分享一个用所学的技术解决问题的案例吗
9.为什么想做前端?
10.你有什么想了解的吗?
|