page contents

面经||【Shopee】前端岗-2021校招提前批

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

attachments-2022-05-zQ1RWh3H6293259ecd106.jpg
去年年底找了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实现-个圣杯布局



I第二轮技术面:
这轮考察数据结构和算法,全程就一道题手撕代码。输入如下:
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"
\x
\ "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树的元素是不是一-对应的 (我真不会) ;
浏览器先加载还是先渲染页面,为什么会这样;
如果有defer属性将如何执行,问我了不解的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等等都得熟练。
终面真的就是一路追问到你答不 上来为止(也可能我太菜了,感觉我终面说得最多的一句话就是"这部分我没有深入了解”) ,千万不要给自己挖坑随便提一些不 了解的知识点。
许愿能上岸吧。祝各位也好运。

以上就是本次分享内容,更多大厂Shopee工程师面试经验持续关注六星社区

想要高效学习,指路微信公众号——【python编程学习圈】每日分享学习干货,关注即可免费领取整套Python零基础到入门资料及学习教程,走过路过,千万不要错过!!快行动起来!!

attachments-2022-05-ZwUUz0Co628f2e3079c7b.jpeg

0 条评论

请先 登录 后评论
小柒
小柒

1320 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1320 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章