美团前端面试难吗?

美团目前也在招很多人~ ~当时我参加了美团打车部的面试(有一年多工作经验)。部门技术栈vue,后台有node,过了,等了两个小时面试,然后叫我回去等消息。一般就是挂了,毫无疑问。美团一下子全完了。所以面试最好计划四个小时。

先说说吧~哈哈

一方

1.简单的自我介绍和对我的大致了解。。。

一方面,面试官很好。先问了下几个项目和使用的技术,然后大致了解了一下我所知道的,比如webpack的单页多页切换,webpack的按需加载,webpack的一些配置是什么。我问有没有看过vue的源码,我说了一个vue的手表,问我框架大体如何。发现我对框架不是很熟练,安慰我没关系。

2.2 .承诺的原则

这个面试官最让人佩服的一点就是,他不会问你不知道的事情。他一问我promise,发现我用的不多,自然没说什么,换个方式问你~ ~ ~怎么样~

然后让我用原生js写一个回调函数,其实就是问承诺的原理,js写一个。

3 .这指向

这是一个异常漫长而曲折的由面试官写的尖锐问题。可以通过百度js这个来指向面试问题,没有问题。你需要注意的是,它也经过了测试,论证和应用(null)。以后想好了再写。

4 .函数的绑定和科里奥利化

也就是说写一个bind,这是红宝书的一个高级功能(第22章)。

你可以看看。但是你得先了解bind的用法,返回一个可以传递的函数和参数。这里的参数涉及函数的科里蒂化。都是手写代码,最好写的工整一点,因为我接触过一些,面试官让我写完整,明确说要看我的编码水平。

5.==,isNaN,typeof

在问这个问题之前,我问我有多少种数据类型(七种,下图中有加号)。在这里,看你知不知道es6的新型号,symbol。你说符号,自然会问这种类型是干什么用的。

然后我写了几个typeof isNaN = =的问题和输出,这是基本问题。

6.你知道什么http请求头?

关于这一点我可以说很多。我说了几句,就主动聊到了跨域请求头,之前项目用的cors,就和他聊了一会。面试其实就是主动表达自己,把自己知道的说出来,不然几个要求就详细了,最好把人引到自己知道的地方。

7.我问css

求css框并画出来,清除浮动和bfc,两列布局。

8.我说了很多只是为了测试我的防抖

面试结束后,问我想问的问题,我就直接问,有两面性吗?答案是肯定的,还介绍了一段时间的出租车,说后台是node。好像要求是前端也要有背景知识。

双平面的

另一边的人是我学长,但是我被问的很惨。。。。显然问题比某一面深刻多了,都是问java。

1.介绍自己,询问项目情况

我问了很多关于这个项目的问题。当时有一个支付行为项目,问了很多安全问题,很模糊,完全不知道。第一个是失败的。然后问了其他项目,问了websocket。

2.node的EventEmitter是用js实现的。

我写了,但是看得出代码不规范,资深面试官说看起来乱七八糟。但是没关系。我指出了几个问题,让我改正。(后来完善)

3.虚拟dom

其实vue里面有jsx,react的特点之一就是jsx。虚拟dom与代码优化有关。

先说dom的正常操作,在浏览器中分为渲染引擎和js引擎。现在浏览器内核一般都是渲染引擎(生成渲染树),因为js引擎越来越独立(所谓v8引擎?)

但是在js中获取dom元素的时候要经过渲染引擎,所以两个线程之间的数据交换自然会比较慢。因此,减少dom操作应该始终是前端优化的考虑因素。包括获取dom元素变量并存储它们。

Jsx将dom元素转换成存储在内存中的数据结构。Js很快,dom也很快。不过也有不足之处,目前的理解就这么多。

4.路由的原则。

饿不饿,我不知道。。(稍后见!)

5 .节点文件流,java的映射机制(记不太清楚了)?

饿了。。

6.数组方法图和reducer有什么区别?

饥饿的

7.进程和线程的区别

终于有一个我会了。这个明显是想问你js的运行机制。先介绍下一个进程和线程。

浏览器是一个进程。js虽然是单线程,但是浏览器是多线程的,v8引擎也是多线程的,比如渲染线程和请求处理线程。然后说说任务队列,eventloop。没理解深,不敢说下去。

事件循环可以看看这个,链接

8.树遍历

一阶,中阶,末阶。我就知道这么多。显然我想写一个,但是我不会。也很明显面试官心里早就过了我,没多问。

9.求算法

KMP,反正我也不知道。