触宝 前端实习 面经

上海触宝 前端


总共两轮面试,5.9投递,5.19一面技术面,5.21二面leader面。
有没有老哥在触宝实习过,告知一下大体情况,牛客上关于触宝的消息不多。
这里也给自己打个广告,总结了一下前端的一些面试问题,放在我的GitHub中,附上链接:https://github.com/lf2021/Front-End-Interview

一面 2020/5/19 50min


1. 自我介绍
2. 项目
3. 轮播图实现的原理
4. js基本数据类型
5. null和undefined的区别
6. null == undefined 的值是什么,为什么
7. new 操作符的过程
8. call apply 的区别
9. 讲一下闭包
10. 闭包打印 1-9
11. splice、filter、join、split 用法
12. 数组转成字符串
13. 1000个button需要注册点击事件,怎么实现
14. 事件代理(委托)优缺点
15. 水平居中怎么实现
16. H5 C3 新特性
17. css不兼容的情况有了解吗,怎么解决
18. ES6 的东西知道哪些
19. let const var的区别
20. 箭头函数与普通函数的区别
21. 手写一个数组去重
22. 排序算法,sort的用法解释一下
23. 平时怎么学习前端,学了多久了,有实习经历吗
24. 学习的过程中有自己做demo吗

二面 2020/5/21 45min


1. 自我介绍
2. 项目介绍
3. 轮播图的实现原理
4. 知道哪些数组的方法
5. splice 和 slice 的区别
6. 手撕代码
  • 问题一: 实现数组 arr 根据 id 来排序
var arr = [
    { id: 2, name: 'test', score: 50 },
    { id: 3, name: 'test', score: 60 },
    { id: 5, name: 'test1', score: 70 }
]

function solution(arr){
    return arr.sort((a,b) => a['id']-b['id'])
}
  • 问题二:将 name 值相等的 score 加起来,例如问题一的arr,返回 {test: 110, test1: 70}
var arr = [
    { id: 2, name: 'test', age: 15, score: 60 },
    { id: 2, name: 'test', age: 25, score: 60 },
    { id: 3, name: 'test1', age: 25, score: 60 },
    { id: 5, name: 'test2', age: 35, score: 60 }
]

function solution(arr, attr) {
    var obj = {}
    for (let i = 0; i < arr.length; i++) {
        var key = arr[i][attr]
        if (!obj[key]) {
            obj[key] = arr[i]['score']
        } else {
            obj[key] += arr[i]['score']
        }
    }
    return obj
}

console.log(solution(arr, 'name')); // {test: 120, test1: 60, test2: 60}
  • 问题三:函数的第二个参数是个数组,比如
attr = ['id']  就是将id的相同的score相加
attr = ['id', 'name']  就是将id和name相同的score相加
attr = ['id', 'name', 'age']  就是将id、name和age都相同的score相加
// 此问关键在于确定一个唯一的key
var arr = [
    { id: 2, name: 'test', age: 15, score: 60 },
    { id: 2, name: 'test', age: 25, score: 60 },
    { id: 3, name: 'test1', age: 25, score: 60 },
    { id: 5, name: 'test2', age: 35, score: 60 }
]

function solution(arr, attr) {
    var obj = {}
    var str = attr.join('_') // 2_test

    for (let i = 0; i < arr.length; i++) {
        var curr = arr[i];
        var a = []
        attr.forEach(ele => {
            a.push(curr[ele])
        })
        var key = a.join('_')
        if(obj[key]){
            obj[key] += curr['score']
        }else{
            obj[key] = curr['score']
        }
    }
    return obj
}

console.log(solution(arr, ['id', 'name'])); // {2_test: 120, 3_test1: 60, 5_test2: 60}
7. 浏览器缓存机制
8. 这样禁止缓存
9. 项目中有用到缓存吗
10. 你对加班怎么看
11. 实习时间
#触宝暑期实习##触宝##实习##前端工程师##面经#
全部评论
鸽了学而思的二面,面了触宝,学而思申请面试时间调整就没有后续了
点赞 回复 分享
发布于 2020-05-22 16:37
待遇咋样触宝
点赞 回复 分享
发布于 2020-05-23 01:32
我也投了很久了,但是一直没有面试的相关通知?它是什么时候通知你的呢
点赞 回复 分享
发布于 2020-05-23 18:40
老哥,HR啥时候联系你的?我5月22日晚VP三面,到现在都没收到通知,心慌慌
点赞 回复 分享
发布于 2020-05-27 17:57
请问你是线上面还是线下面啊
点赞 回复 分享
发布于 2020-05-31 14:20
我面了触宝,面试官从CS问起S,然后JS,http协议,然后Vue。最后反手一个挂,我真不知道她想干嘛?而且我觉得她就是对着网上面经问的,一边看电脑一边问,为啥我面的可以问这么多这么难?面试体验非常差
点赞 回复 分享
发布于 2020-06-02 21:11
心态崩了,面了一个半小时
点赞 回复 分享
发布于 2020-06-11 15:34
楼主能加个好友不,交流一下,我也是暑期实习生。
点赞 回复 分享
发布于 2020-06-16 18:07
楼主,我看到你是5月212号触宝二面的,还记得二面之后多久出结果的吗
点赞 回复 分享
发布于 2020-06-27 20:02
请问一下有内推么
点赞 回复 分享
发布于 2020-07-05 23:22

相关推荐

不愿透露姓名的神秘牛友
10-15 14:22
点赞 评论 收藏
分享
评论
9
26
分享
牛客网
牛客企业服务