触宝 前端实习 面经

上海触宝 前端


总共两轮面试,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-07-05 23:22
楼主,我看到你是5月212号触宝二面的,还记得二面之后多久出结果的吗
点赞 回复 分享
发布于 2020-06-27 20:02
楼主能加个好友不,交流一下,我也是暑期实习生。
点赞 回复 分享
发布于 2020-06-16 18:07
心态崩了,面了一个半小时
点赞 回复 分享
发布于 2020-06-11 15:34
我面了触宝,面试官从CS问起S,然后JS,http协议,然后Vue。最后反手一个挂,我真不知道她想干嘛?而且我觉得她就是对着网上面经问的,一边看电脑一边问,为啥我面的可以问这么多这么难?面试体验非常差
点赞 回复 分享
发布于 2020-06-02 21:11
请问你是线上面还是线下面啊
点赞 回复 分享
发布于 2020-05-31 14:20
老哥,HR啥时候联系你的?我5月22日晚VP三面,到现在都没收到通知,心慌慌
点赞 回复 分享
发布于 2020-05-27 17:57
我也投了很久了,但是一直没有面试的相关通知?它是什么时候通知你的呢
点赞 回复 分享
发布于 2020-05-23 18:40
待遇咋样触宝
点赞 回复 分享
发布于 2020-05-23 01:32
鸽了学而思的二面,面了触宝,学而思申请面试时间调整就没有后续了
点赞 回复 分享
发布于 2020-05-22 16:37

相关推荐

程序员牛肉:1.大头肯定是院校问题,这个没啥说的。 2.虽然有实习,但是实习的内容太水了,在公司待了七个月的时间,看起来就只做了jwt和接入redis。爬取新闻,数据导入。这几个需求值得你做七个月吗?这不就是三四个月的工作量吗?我要是面试官的话真心会认为你能力不太行。所以既然有实习了,一定要好好写,像是Swagger这种东西是真没必要写上去,就拉一个包的事情。 3.我个人觉得话,在校生不要把自己当社招看,除非你的项目是特别牛逼,特别有名的含金量,否则不要写这种密密麻麻的一串子工作职责。你的项目只有一个作用,就是供面试官从中来抽取八股对你进行拷打。 但是你现在这个看不来什么技术点,可以改一下,详细表述一下你用什么技术实现了什么功能,在实现这个功能的过程中,你解决了什么难题。
点赞 评论 收藏
分享
评论
9
26
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务