阿里淘天-暑期实习-前端面经
3.19 一面 60min
自我介绍
项目:
每个项目都问了:介绍一下做了什么,有什么难点和值得分享的点
主打项目大致问了一下具体技术实现
八股:
js:
原型是什么?原型链是什么?说说自己的理解
为什么会出现原型、原型链?(不会)(面试官告诉我是类,用于继承和封装【不确定现在记得还对不对】)
闭包了解吗?(js学的不好别问js了)
Vue:
数据绑定的原理?
v-model的原理?
考虑过优化吗?有哪些可以优化?(图片懒加载,还提到了我的项目的一个优化)
(因为在我的本地,就共享屏幕给面试官看了)
(面试官还说看看源码)
平常怎么debug的?有用一些工具吗?(没有)他建议我去了解一下
CSS:
说一下盒子模型?
怎么做水平、垂直居中?
BFC 了解吗?是解决什么问题的?(不会,面试官告诉我是解决外边距折叠的)
有哪些动画?(说了缩放旋转、移动、关键帧,面试官问还有吗)
sass,less 了解吗?css 工程化?(不会)
(问我是怎么写类名的,看看项目源码)
安全性相关(我说只知道HTTP和HTTPS)
HTTP:
GET 和 POST 的区别?
笔试题一道:(另发一个做题链接)
输入一个list,要求输出tree
// 完成 convert(list) 函数,实现将 list 转为 tree /** * @param list {object[]}, * @param parentKey {string} * @param currentKey {string} * @param rootValue {any} * @return object */ function convert(list, parentKey, currentKey, rootValue) { } const list = [ { "id": 19, "parentId": 0, }, { "id": 18, "parentId": 16, }, { "id": 17, "parentId": 16, }, { "id": 20, "parentId": 17, }, { "id": 16, "parentId": 0, } ]; const result = convert(list, 'parentId', 'id', 0); const tree = { "id": 0, "children": [ { "id": 19, "parentId": 0 }, { "id": 16, "parentId": 0, "children": [ { "id": 18, "parentId": 16 }, { "id": 17, "parentId": 16, "children": [ { "id": 20, "parentId": 17 } ] } ] } ] } console.log(JSON.stringify(result, null, 2), 'result')
面试体验:
虽然我很菜但是体验很好。因为面试官很好。一直夸我的项目做的不错,极大地修复了昨天被鹅厂二面锤烂的信心,给孩子哄成胚胎了
笔试我js写不出来,说了思路,他觉得没问题,问我要不要下了面试自己写,一个小时后他来看
如果进了,我将成为阿里死忠粉