shopee发意向书啦~开心到飞起!!!继续努力。
---------------------------------------------------------------------------------------------------------
不得不说,shopee效率真的高,面完都是第二天早上10点发下一轮通知。
shopee总体难度不大,面试官都很nice,主要把自己的项目准备好就行了。(看牛客好多挂HR的,害怕,太难了啊)
一面(1.1h):
都是面经基础题~
😀手撕:
1.一道css/html布局题,就是弹性布局,高度始终是宽度的50%
2.防抖和节流
3.经典闭包
😀基础:
html/css
1.给标签分个类。说到ul、ol有什么区别?dl、dd是什么?
2.flex题,flex: 1(flex:1 1 0)flex:auto(flex:1 1 auto)
3.BFC特性?触发?应用?
4.px/rem/em
JS
1.Promise输出
2.http状态码
- 3xx:http/1.0的301、302 和 http/1.1的307、308、303(see other)还有304
- 4xx:客户端,主要介绍了 400、401和403的区别、405、416
- 5xx:服务端,主要介绍 502、503、501
...还有些忘了
😀Q&A
二面(56min):
1.项目怼了快30min(hhh,主要有个表述不清楚,面试官听得云里雾里)
2.线性结构(链表、数组、栈、队列)区别和应用场景?
3.引用类型和基础类型?栈变量和堆变量有什么特点(内存大小方面叭应该是)?字符串属于栈变量?
😀手撕:
1.二叉树后序遍历(非递归,需要输入和输出)
var postorderTraversal = function(root) { // 调用栈 const call = [] const res = [] if (root !== null) call.push(root) while (call.length) { const t = call.pop() if (t !== null) { call.push(t) call.push(null) if (t.right) call.push(t.right) if (t.left) call.push(t.left) } else { res.push(call.pop().val) } } return res };2.三个三个交换链表结点(稍微修改一下两两反转链表的递归单元就行啦,需要输入输出)
var swapPairs = function(head) { if ( head === null || head.next === null || head.next.next === null ) { return head } const next1 = head.next const next2 = next1.next const temp = next2.next next2.next = next1 next1.next = head head.next = swapPairs(temp) return next2 };
😀Q&A
顺便发一个拼多多(拼越批的前端一面)
果然,就是纯手撕...然后更cd边写代码边问基础。
不过面试官人超好...有不完善的给了我修改意见(关键是颜值很高)
1.JS实现链表数据结构,完成:
- 链表插入
- 链表反转
2.一道输入输出
3.Promise.all、Promise.prototype.finally、Promise.prototype.catch实现
4.urls数组并发请求,要求按原数组顺序输出,并且尽快打印
😀Q&A
全部评论
(6) 回帖