讨论/求职面试/2021 届秋招哈啰出行前端面经(二面)/
2021 届秋招哈啰出行前端面经(二面)

概况

985 硕,哈啰出行秋招投了没有回应,补录阶段收到了面试邀请。

工作地点在杭州/上海。

问题

1. 说出以下代码的结果

function Foo() {
    getName = function() { alert(1); };
    return this;
}

Foo.getName = function() { alert(2); };
Foo.prototype.getName = function() { alert(3); };
var getName = function() { alert(4); };
function getName() { alert(5); }

Foo.getName(); // 2
getName(); // 4
Foo().getName(); // 1 
getName(); // 1
new Foo.getName(); // 2
new Foo().getName(); // 3
new new Foo().getName(); // 3

开局一刀 999,我人没了,想了半天还是一头雾水,尤其下面的两个 new 根本不知道啥意思……

这篇文章 对此进行了详细解答。

2. http 相关原理了解哪些?

回答了 http 缓存相关,http 和 https,http 1/2/3,http headers 等。

3. http 请求包的包头由哪些部分组成?

答:一个 http 请求由四个部分组成:

  • 请求行
  • 请求头标
  • 空行
  • 请求数据。

请求行

由请求方法、请求 URI 和 HTTP 版本组成,如 GET/index.html HTTP/1.1

请求头标

由「关键字 / 值」对组成,冒号分割。如:

  • User-Agent: *客户端厂家和版本*
  • Accept: *客户端可识别的内容类型列表*
  • Content-Length: *附加到请求的数据字节数*

空行

这个空行是必须要有的,来告诉服务器头标的结束位置。

请求数据

使用 post 传送数据,最长使用的是 Content-TypeContent-Length 头标。

4. HTTP 协议的请求方法有哪些?

答:常用的有以下几种:

  • GET
  • HEAD
  • POST
  • PUT
  • DELETE
  • OPTOINS
  • TRACE
  • CONNECT

5. 你的项目中用到了 GraphQL,之前对应的概念是什么呢?

太菜了,没答上来,面试官提示说是 Restful,接着面试管问:

6. Restful 了解吗?

不是特别了解,后来查资料是这样介绍 Restful 架构的:

  • 每一个URI代表一种资源;

  • 客户端和服务器之间,传递这种资源的某种表现层;

  • 客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。

7. graphQL 的优势有哪些?

  • 使用 graphQL 能够获得较少的数据
  • 可以合并多个请求
  • 订阅

8. 介绍以下 React 的数据流

介绍了 React 的 props,state,redux 单项数据流等。

9. 你对 TypeScript 了解多少?

TS 也是简历中写到的,TypeScript 具有类型系统,可以解决 js 中出现的大部分 undefined 问题。还讲了 TypeScript 的泛型、interface type 等。

10. 做一道算法题,主要说思路

三数之和

这道题比较基础,回答得也比较快,基本思路就是先排序,然后三指针 i, j, k,对于每一个指针 i,将 j 和 k 分别取 i 右侧数组的两端点向中间靠拢,期间注意剪枝去掉重复元素,最终时间复杂度为 O(n2)O(n ^ 2)

11. 讲一讲 event Loop?

事件循环可以理解为是宏任务和微任务之间的循环。主干代码可以理解为宏任务(这个问题具有一定争议,这个理解居多),所以先执行主干代码,期间遇到微任务就将其放到微任务队列中,当宏任务执行完毕之后,执行微任务队列里的微任务,这时如果遇到宏任务将其放到宏任务队列,直到微任务队列执行完……如此循环往复直到宏任务和微任务都执行完毕。

感受

一般较为资深的面试官问得问题都比较综合,能够从你的回答中看出你的真实水平在哪里,所以基本功需要不断提高和巩固吧。

简历真的很重要,上面写到的每一个点也许是当初随意想了一下就写上去了,而在面试官看来这就是你一定要懂的东西。

但是我们往往会有这样的纠结:如果只写自己会的东西,那真的没什么可写的了……

所以还是尽量做到平衡吧,共勉。

13
共 0 个回复
暂无回复