shopee意向书GET
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
#面经##校招##Shopee##前端工程师#
