2021 Shopee前端提前批校招 面经

去年年底在牛客网找了Shopee新加坡的前端内推,目前已完成终面,来分享一下经验。
面试流程一共四轮:
HR电话面(简单了解情况,无技术内容):
是哪里人,为什么会选择新加坡岗位,找工作优先考虑哪些因素,为什么选择前端

第一轮技术面:
一上来先简单问了下做过项目的难点,然后顺带问了一下浏览器的强缓存和协商缓存机制。
接着是几道手撕代码题(有几题记不清了
1. 实现数组reduce方法
2. 实现如下功能:
function subscribe(func){} //接受一个函数名作为参数,订阅此函数
function unsubscribe(func){} //接受函数名作为参数,退订此函数
function elicit(){} //执行所有订阅的函数
subscribe(func1);
subscribe(func2);
unsubscribe(func1);
elicit(); //执行func2

这题只讲了大概思路,我说需要用map或数组存储订阅的函数名,退订的时候修改map或数组,最后对所有订阅函数执行一次。

3. CSS实现一个圣杯布局

第二轮技术面:
这轮考察数据结构和算法,全程就一道题手撕代码。
输入如下:
const sourceData = [
["bag", "purse"],
["purse", "hand purse"],
["bag", "backpack"],
["purse", "purse wallet"],
["purse wallet", "coin wallet"],
["purse wallet", "man purse"],
["shoe", "nike shoe"],
];

根据输入建立一个如下图的sankey diagram(类似电商的商品搜索路径图)
“bag”  ➡  “purse”     ➡  “hand purse”
↘             ↘
↘             “purse wallet”  ➡  “coin wallet”
↘                           ↘
↘                           “man purse”

“backpack”
“shoe”  ➡ “nike shoe”

要求实现一个函数返回该图的width(最长路径)和height(路径总数)。如上图的width = 4, height = 5。
我的思路是用类似树状结构存储数据,每个树节点有一个array用来存放子节点。然后用DFS遍历整棵树求出叶子节点个数即为height,用backtracking思想可求出最长路径width。
(我自定义树节点构造函数的时候有挺多语法错误,有点尴尬;面试官说我思路正确,然后点了几个可以优化的地方让我修改了下)。

第三轮team leader技术面:
终面也是技术面。上来先做自我介绍,问了一些项目经历(我项目经历真的少),问我为什么使用Django,为什么会学习React,怎样学习CSS的,学习编程语言的方法;
然后问了从在浏览器地址栏输入url,到用户看到页面发生了什么。
我说的有点笼统,然后又详细问了DOM树和CSSOM树的元素是不是一一对应的(我真不会);
浏览器先加载<script>还是先渲染页面,为什么会这样;
如果<script>有defer属性将如何执行,问我了不了解<script>的defer和async(我真不了解async);
接着问了cookie的具体存储形式,是由浏览器还是服务器端设置的,为何能保存用户登录信息(问的太细了,我真没咋准备好)。
顺带问了cookie, session storage, local storage的异同,我提到了同源,又问了一下同源是什么;

然后给了一个场景,给定一个DOM元素和一个字符串,问如何根据DOM元素的最大宽度返回能容纳的最长的子字符串(说思路即可)。
我实在不会DOM的API,面试官就给了一个Helper函数,能返回字符串在页面中的实际宽度。
然后我的想法是从后往前截短字符串,直到子字符串实际长度小于等于最大宽度。
面试官于是问了时间复杂度(O(n)?),问我如何优化;我说二分法应该可以优化到O(logn)。
又问有没有O(const)的解决方案,我当时没想出来(现在想想应该是用个map记录所有合法字符的所占宽度,然后从头扫描字符串当总宽度大于DOM元素宽度时停止,这样空间换时间应该能达到常量时间复杂度)。

接着问了我平时怎么学习新技术(我说上MDN看文档,看GitHub项目源码,大神博客),问我会不会去看CSS标准(说实话没咋看过)
问我在这个团队希望能学到什么东西,为什么;
然后就是反问环节,我水了两个问题就结束了。



总结:面试体验很好,面试官都很年轻很随和。
二面就一道题考数据结构和算法,考的挺全面的,基础一定还是要打好,各种链表二叉树BFSDFS等等都得熟练。
终面真的就是一路追问到你答不上来为止(也可能我太菜了,感觉我终面说得最多的一句话就是“这部分我没有深入了解”),千万不要给自己挖坑随便提一些不了解的知识点。


许愿能上岸吧。
祝各位也好运。















#面经##前端工程师##校招#
全部评论
同学你好,麻烦问下三面的编程问题是不是口述就可以了,不需要手撕代码了吧。。 🤣
点赞 回复
分享
发布于 2021-01-21 12:32
老铁,你每次面完多久给结果的
点赞 回复
分享
发布于 2021-01-21 12:46
博乐游戏
校招火热招聘中
官网直投
对英语有要求吗,兄弟
点赞 回复
分享
发布于 2021-01-21 14:18
老哥,你简历上写了几个项目呀,是校招吗?
点赞 回复
分享
发布于 2021-01-21 15:12
老哥期望薪资报的多少啊
点赞 回复
分享
发布于 2021-01-21 16:45
请问算法题都是用JS写的吗?
点赞 回复
分享
发布于 2021-01-23 14:06
同学请问你做笔试了吗?难度和考试内容大概是怎么样的呢?
点赞 回复
分享
发布于 2021-02-05 19:00
请问楼主,那道算法题实现要写一个构建树的函数,再写一个返回width和height的函数吗?
点赞 回复
分享
发布于 2021-02-19 21:03
前端技术面到底是2轮还是3轮呢
点赞 回复
分享
发布于 2021-02-27 01:11
面试题基本一致,我在二面时候挂掉了,二面那个面试官感觉面我的时候一直在做其他事情,时不时冷笑(并不是看我写代码的冷笑)
点赞 回复
分享
发布于 2021-03-29 23:09
楼主过了吗
点赞 回复
分享
发布于 2021-04-07 05:29
能问下是哪个team么
点赞 回复
分享
发布于 2021-04-08 15:09
楼主上岸了吗
点赞 回复
分享
发布于 2021-06-23 11:21
Shopee2020提前批开启啦!🧨🧨🧨🧨🧨🧨 薪资比肩顶级大厂,关于校招薪资待遇大家 offershow可查 。 15 天超长年假,带薪病假 14 天,六险一金,公积金工资全额 10%缴纳,高额商业保险,门诊住院医疗保险100%报销。  15 薪,试用期 3 个月(工资不减),过年前提前发放一月份工资和全年年终奖。  而且有普调哦,绩效为B的每年薪资涨幅12%,其中B的所占比例高达80%,拿A,A+涨薪比例+期权期待值更高。  来自腾讯、字节、阿里大厂同事高达65%. 岗位超多多 总有一款属于你 每层 office 水果零食饮料养乐多可爱多等每日无限量供应。 1、微信搜索”Shopee虾皮招聘“即可投递: 内推码:ADVpY 2、或者官网投递https://app.mokahr.com/campus_apply/shopee/2962#/jobs?zhineng=&page=1&_k=abhqth
点赞 回复
分享
发布于 2021-07-01 08:35

相关推荐

2 66 评论
分享
牛客网
牛客企业服务