商汤科技社招前端一面

商汤科技社招前端一面

1、题目1看题说结果:
  • 1 + '2'//12
  • 1 - '2'//-1
  • {} == {}//false
  • typeof null //"object"
  • NaN//属于number
  • Array.slice()//属于浅拷贝
2、八股文
  • 说说cookie localstorage sessionstorage
  • 说说同源策略,跨域的解决办法
  • 判断变量类型的方法有哪些
  • 说说数组有哪些方法,哪些能改变数组,push、splice方法的返回结果是什么?
3、手写代码
[2, 5, 0, -2, 6]
//求非零非负 最小值index,有没有更好的解决办法?
function getMinIndex(arr){
    let minIndex = -1;
    let min = Number.MAX_VALUE;
    for (let i = 0; i < arr.length; i++) {
        if(arr[i]>0&&arr[i]<min){
            min = arr[i];
            minIndex = i;
        }
    }
    return minIndex
}


4、手写代码
//题目3,组织树状结构,有没有更好的解决办法?
[
    { id: 4, nextId: 2 },
    { id: 3, nextId: 4 },
    { id: 2, nextId: 5 },
 ]
function getTree(arr){
    let map = new Map();
    let res = [];
    for (let i = 0; i < arr.length; i++) {
        map.set(arr[i]['nextId'],arr[i]);
    }
    for (let i = 0; i < arr.length; i++) {
        if(!map.has(arr[i]['id'])){
            res.push(arr[i]);
        }else{
            let _obj = map.get(arr[i]['id']);
            _obj['nextId'] = arr[i];
        }
    }
    return res;
}
getTree([
    { id: 4, nextId: 2 },
    { id: 3, nextId: 4 },
    { id: 2, nextId: 5 },
 ])
总结一下,上来没有自我介绍直接开始,还真是毫无准备,说是问基础问的也太细节了吧,第一部分直接给我问懵了,估计凉凉,面试体验也很差。push方法返回什么你们知道吗?splice方法又返回什么?


#商汤科技#
全部评论
厉害了,感谢大神分享
点赞 回复 分享
发布于 2022-08-24 10:16 江苏

相关推荐

2025-12-27 21:38
已编辑
蚌埠坦克学院 前端工程师
查看12道真题和解析
点赞 评论 收藏
分享
2025-12-27 21:39
已编辑
蚌埠坦克学院 前端工程师
一面&nbsp;1.自我介绍。2.实习内容介绍?3.实习内容拷打?4.讲下开发了babel插件是解决什么问题?怎么开发的?5.从浏览器的地址输入一个URL到页面显示的过程?6.浏览器从本地那些地方都是在那些缓存是存在哪里的,这些知道吗?浏览器自己的缓存和系统本地的缓存是在哪里?7.DNS的两种解析方式有哪两种?它们之间有什么区别?或者说他们的链路是什么样?8.在发请求之前,我们会经过哪些比较重要的步骤?如果它是HTTPS的,还有其他的吗?9.说下TCP的三次握手?10.你说的那个ACK那个值是多少呢?为什么是三次握手,而不是两次或者四次呢?11.说下浏览器的缓存?12.Cache&nbsp;Control,除了max-age,还有一些其他的值吗?13.上面no&nbsp;cache或者说no&nbsp;store这些有见过吗?last-modify还有一个什么?这两个有什么区别吗?14.TCP和UDP的区别?15.为什么TCP它是可靠的呢?16.有办法把UDP变成可靠的吗?17.有了解过负载均衡吗?这个负载均衡大概是干什么的?18.说下http的响应状态码?还有它的一些响应头?19.3xx的响应状态码还有哪些?20.一个http的响应包括哪些部分?21.浏览器拿到响应后就去做解析了,解析它是怎么解析的?22.我们用了一个叫transform的属性,然后把他们的transforma:translation的Z改变成了不为零的值。然后这个时候他们会有一个什么样变化吗?23.这个不在现在浏览器绘制,它在浏览器渲染的时候,他们会有什么区别吗?就是说我们一个浏览器上面,它应该只有一个页面,一个图层。然后用了这个transform之后,我们就可能有两个图层,是不是?然后他们就会有一个合成的,就是两个图层合成一个图层的那种操作?24.有哪些操作会导致重排呢?为什么去读取元素的宽高会导致重排?25.说下js中事件循环的过程?26.渲染是在那一步完成的?27.常见的微任务和宏任务有哪些?28.requsetAnimationFrame是宏任务还是微任务?29.说下Promise.all是什么?30.手写Promise.all。30.eventbus是什么?31.算法:找到比相邻两个数大的数的对应的下标。(推荐使用二分)32.说下什么是二分查找?反问
软件开发笔面经
点赞 评论 收藏
分享
评论
3
20
分享

创作者周榜

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