字节前端三面

可转正实习岗,凉了。
全程50min。

计网

问题1:HTTP有哪些请求方法?(二面问过的)追问put和post有什么区别?
答:(1)一些HTTP请求方法:
  1. GET,最常用的方法,用于请求服务器发送某个资源
  2. HEAD,与GET类似,但服务器在响应中只返回首部,不会返回实体的主体部分
  3. PUT,向服务器写入文档(与GET相反),PUT方法的语义就是让服务器用请求的主题部分来创建一个由所请求的URL命名的新文档,如果URL已存在就用这个主体来代替它
  4. POST,向服务器输入数据,通常用它来支持HTML表单提交
  5. TRACE,请求穿过***、代理、网关或一些其他应用时可能会被修改,TRACE方法允许客户端在最终将请求发送给服务器时看看他变成了什么样子
  6. OPTIONS,请求服务器告知其支持的各种功能
  7. DELETE,请服务器删除请求URL所指定的资源
(2)POST用于向服务器发送数据,PUT用于向服务器上的资源(例如文件)中存储数据。


问题2:HTTPS讲一下?HTTPS请求头会被加密吗?
答:HTTPS里的SSL/TLS是完全模拟了一个通信通道,在其上应用协议的全部数据都会加密。可以理解为平时TCP传输的数据都被加密了,这里并不区分具体的HTTP头。

JS

问题1:箭头函数和普通函数有什么区别?
答:

编程题

刚开始想让我写发布订阅,我说还没学过。

问题1:把字符串转换成驼峰格式
const test='abc-abc-abc';//测试用例
const words=test.split('-');
const len=words.length;
for(let i=1;i<len;i++){
    words[i]=words[i][0].toUpperCase()+words[i].slice(1);
}
console.log(words.join(''));
追问:①修改会改变原来的字符串吗?(不会,JS中的字符串都是不可变的)②如果字符串中有多种分隔符怎么办(比如又有_又有-)?(模仿split的效果写一个可以去掉多种分隔符的for循环)

问题2:括号匹配
用栈就可以。
function isMatched(str){
    if(!str){
        return true;
    }
    const len=str.length;
    if(len%2!==0){
        return false;
    }
    const stack=[];
    for(let i=0;i<len;i++){
        if(str[i]==='{'||str[i]==='('||str[i]==='['){
            stack.push(str[i]);
        }
        else{
            let val=stack.pop();
            if(val==='{'&&str[i]==='}'){
                continue;
            }else if(val==='['&&str[i]===']'){
                continue;
            }else if(val==='('&&str[i]===')'){
                continue;
            }else{
                return false;
            }
        }
    }
    if(!stack.length){
        return true;
    }else{
        return false;
    }
}
console.log(isMatched('{{{((([[]])))}}}'));

问题3:对象深拷贝,注意循环引用的问题,不要陷入死循环(没做出来)
根据这篇帖子写了个简化版,只考虑循环引用的情况
//函数功能:判断参数是否对象类型
function isObject(target) {
    return typeof target === 'object' && target;
}
//函数功能:深拷贝
function deepClone(target) {
    const map = new WeakMap();
    return deepCloneCore(target, map);
}
//核心函数
function deepCloneCore(data, map) {
    //如果是简单类型直接返回
    if (!isObject(data)) {
        return data;
    }
    const exist = map.get(data);
    if (exist) {
        return exist;
    }
    //静态方法 Reflect.ownKeys() 返回一个由目标对象自身的属性键组成的数组。
    const keys = Reflect.ownKeys(data);
    //Object.getOwnPropertyDescriptors() 方法用来获取一个对象的所有自身属性的描述符。
    const allDesc = Object.getOwnPropertyDescriptors(data);
    //Object.create()方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__。
    const result = Object.create(Object.getPrototypeOf(data), allDesc);
    map.set(data, result);
    keys.forEach(key => {
        const val = data[key];
        if (isObject(val)) {
            result[key] = deepCloneCore(val, map);
        } else {
            result[key] = val;
        }
    });
    return result;
}
//测试
const a = {};
const b = {};
a.b = b;
b.a = a;
console.log(deepClone(a));

非技术问题

为什么没有实习,怎么学的前端,后面有什么学习计划,性格的优缺点

#字节跳动2021秋招开始了##秋招##前端##校招##面试题目##字节跳动##前端工程师#
全部评论
楼主什么部门
点赞 回复 分享
发布于 2021-09-27 13:25

相关推荐

04-07 17:47
已编辑
广东海洋大学 前端工程师
许愿hr面让我赢一次吧更新:还是输了,已发感谢信一面&nbsp;(3.28)面试时长(1h)1.&nbsp;&nbsp;介绍一下简历中的组件库项目2.&nbsp;&nbsp;vite&nbsp;和&nbsp;webpack&nbsp;有什么区别?3.&nbsp;&nbsp;vite&nbsp;打包可能会有什么问题呢?需要怎么处理?4.&nbsp;&nbsp;vue2&nbsp;和&nbsp;vue3&nbsp;有哪些不同?5.&nbsp;&nbsp;vue2&nbsp;和&nbsp;vue3&nbsp;diff算法的区别是什么?(面试官对我的回答不太满意)6.&nbsp;&nbsp;说说你对工程化的理解7.&nbsp;&nbsp;工程化中对CSS会怎么处理?8.&nbsp;&nbsp;说说你对打包优化的理解9.&nbsp;&nbsp;在你看来性能优化要做的事情是什么?10.&nbsp;&nbsp;有做过代码执行上的性能优化吗?11.&nbsp;&nbsp;在vue开发中需要关注哪些要点来避免性能劣化的情况?12.&nbsp;&nbsp;说说http不同版本的一些区别13.&nbsp;&nbsp;http2.0有哪些缺点?14.&nbsp;&nbsp;http1对同时并发请求的数量是有限制的,你了解吗?15.&nbsp;&nbsp;说说http和https的区别16.&nbsp;&nbsp;具体说一下加密的方法和流程(不太了解)17.&nbsp;&nbsp;Promise和async&nbsp;await的区别18.&nbsp;&nbsp;async&nbsp;await具体是怎么实现的?19.&nbsp;&nbsp;算法题:最大并发数控制二面(4.1)面试时长(1h)没有自我介绍直接开始,全程拷打项目,问题也基本是项目延申出来的1.&nbsp;&nbsp;简单介绍一下你上一段实习中觉得做的比较好的项目2.&nbsp;&nbsp;想知道你们的项目大概是什么样的结构,你在开发的时候会从什么地方下手?3.&nbsp;&nbsp;IntersectionObserver的事件回调是宏任务还是微任务?如何判断呢?4.&nbsp;&nbsp;虚拟列表中滚动条的位置该如何确定呢?尤其是元素不定高的情况5.&nbsp;&nbsp;你这个自己实现的虚拟列表有和其他第三方插件进行对比吗?6.&nbsp;&nbsp;如果是在直播这种不断推送新消息的场景下,你会怎么设计呢?7.&nbsp;&nbsp;对于埋点,如果用户打开页面后很快将页面关闭的话,关闭之前的操作和数据该如何获取?8.&nbsp;&nbsp;看你组件库项目使用了Monorepo,介绍一下9.&nbsp;&nbsp;对比其他方式,Monorepo最大的好处是什么?10.&nbsp;&nbsp;你上一家实习公司的主要业务有了解过吗?11.&nbsp;&nbsp;算法题:&nbsp;&nbsp;&nbsp;&nbsp;(1)lc&nbsp;LCR&nbsp;091.&nbsp;粉刷房子&nbsp;&nbsp;&nbsp;&nbsp;(2)数组扁平化(后面要求尾递归实现)三面(4.7)面试时长:(1h10min)全程无八股,大部分是偏向业务和场景的开放性题目1.&nbsp;&nbsp;介绍一下实习项目的业务背景(这块说了蛮久)2.&nbsp;&nbsp;假如你是一个项目的负责人,面对一个新需求你会如何判断以及决策?3.&nbsp;&nbsp;功能上线后如何判断这个功能上线前后的影响和优化有多少呢?4.&nbsp;&nbsp;有去了解过用户反馈最多的问题或者诉求最强的问题是什么吗?5.&nbsp;&nbsp;移动端兼容性处理是如何实现的呢?6.&nbsp;&nbsp;哪些浏览器会在图片兼容性上有问题呢?7.&nbsp;&nbsp;如果在项目上线之前,对用户浏览器使用情况进行预调研以及前期判断,你会怎么做?8.&nbsp;&nbsp;有去了解过当前浏览器的内核分布,以及有多少种内核吗?9.&nbsp;&nbsp;移动端的浏览器他的内核和版本会和什么相关呢?(以上两个题真知识盲区了)10.&nbsp;&nbsp;介绍项目中的瀑布流组件是如何实现的?11.&nbsp;&nbsp;还有什么别的方式能实现瀑布流呢?12.&nbsp;&nbsp;h5是如何和移动端做通信的呢?13.&nbsp;&nbsp;项目中用到了i18n,说说i18n的原理?14.&nbsp;&nbsp;使用i18n的过程中遇到了什么问题呢?你是如何解决的?15.&nbsp;&nbsp;算法题:&nbsp;&nbsp;&nbsp;&nbsp;(1)求数组深度(递归和迭代都要写)&nbsp;&nbsp;&nbsp;&nbsp;(2)实现Promise.half方法(后面要求能失败重试)
牛客965593684号:这肯定稳了,我面字节面试官对我回答不满意直接把我挂了,这都让你过了说明很想要你啊
点赞 评论 收藏
分享
截止目前,已经收到5份大厂offer了,在这里总结一下吧,还记得的就写点面经战绩“5/7”字节oc3.14一面1.项目中的亮点,难点:nextjs水合问题,portal挂载组件到body2.项目中的搜索框实现:后端实现+useTransitionhook让出主进程给搜索框,提高fid3.一道Promise的题:答错,trycatch里面处理错误的部分是同步的,捕捉不到Promise里面异步的错误4.扫码登录的实现流程5.useSingleClickOrDoubleClick&nbsp;hook实现:用闭包3.20二面:(秒过)1.项目中react-query的使用:设置key和状态,动态地缓存2.除了react-query还有什么离开浏览器后任存在的缓存方法:localstorage,cookie3.使用过localstorage吗:用过,还封装了useLocalstorageState&nbsp;hook可以用react的状态来管理响应式管理localstorage,用于动态换肤4.http的缓存机制,304的原因:浏览器缓存(强缓存和协商缓存)5.画一个向下的45度的扇形:同border的特性+border-radius=50%画出来了,追问:如果是其他度数呢:用三角函数算一下boder-top和border-left,border-right的大小再追问:其他方法呢:用canvas或去找一个svg库(表明是我会选择的方法)6.写一个class用于模拟浏览器路由跳转:写出来了但是class语法用错了3.21三面leader面:(当场过)1.拷打项目2.未来规划3.缓存机制4.一道算法题:最大不重复字串5.树的算法题其他记不太清了。。。3.25hr面常见问题,老实人都没问题腾讯oc(8轮鏖战)3.12ai面3.18广告一面:做两道算法题:1.hash表2.拓扑排序&nbsp;&nbsp;做完秒过3.21广告2面:还是做两道算法题:1.leetcode射气球那题2.忘了,做出来了但是时间复杂度不达标&nbsp;&nbsp;&nbsp;做完秒挂秒投到下一个组3.24忘记哪个部门了一面:拷打项目为主,少量八股,共享屏幕跑项目感觉发挥很不错,实际kpi,秒挂秒投下一组3.28ieg一面:忘记问了什么,大多是项目,少数八股,写了三道题,都秒了,一道简单算法,一道js,一道html加css实现一个布局4.1ieg二面leader面:项目中tti怎么优化的性能优化的逻辑ssr相关paypal支付集成,为什么不用wechet支付一些业务场景在我的项目中的体现(忘记具体的了)前端学习方面未来打算方面一些八股,计网为主4.3ieg三面(20min):问了一些难八股,有些没了解过,还以为🐔了tswebpackvite微前端ssr4.8ieg&nbsp;hr面:缺点影响最大的人偶像读不读研三个词形容自己等等美团oc美团的面试体验极好,就是实习工资有点低,不过听说转正率很高,非常推荐大家都去投一投3.24一面:一些八股一些项目一些业务逻辑,难度中等,做三道题,一道是正则印象深刻(因为不会正则)其他忘了,但是都挺常规,面试官很和善,问到一些八股后还会开玩笑说这些问题也就面试用得到3.28二面leader面:完全忘记问什么了好像也是偏宏观一点,八股项目居多,做了两题,面试体验也不错,还详细介绍了部们负责的任务,并且说实习生可以挑选自己感兴趣的去做3.31&nbsp;hr面:只记得让我说点评的建议,我想说我又不是面产品港怎么知道怎么给大众点评提建议美团真的不错,让我拒起来都有点不忍心京东oc3.19一面:记不得问了什么,只记得每一个问题打完面试官都毫无波澜,并且没有什么反馈,只会说了解,还以为寄了3.26二面leader面:也是八股加项目,也不记得了,只记得面我的时候我正在回答,它一直动不动用手扶着额头,很痛苦的样子,当时我还在想我答得有这么差吗,听得你都痛苦起来了,后来想想应该跟面试没关系,后来也跟我介绍了部门情况,挺和善的,当时可能就是手头有任务太难搞了吧3.30&nbsp;hr面:很常规,没问啥携程oc:3.13笔试&nbsp;3/43.21一面&nbsp;a轮:有问了解过什么前沿的东西,跟着我的简历问下来的,没有太多八股,而且真的会点进我的github看,问我看rust是为什么3.28二面&nbsp;b轮:没印象了3.8&nbsp;hr面:说面试都过了,会发offer,介绍了一下部门和转正情况和应届工资tme腾讯音乐一面挂:3.17一面:大概率kpi了,电话面,面试官表达能力有问题,每次都搞不懂他想问我什么,说话还磕磕巴巴的,像是他才是来面试的一样,最后问建议还说我没有实际业务开发经验,我就是来找实习不就是为了大厂业务开发经验的吗,面完秒挂,但是整体来说体验不差,就是气不过他挂我的理由最离谱的来了!!!我本次暑期唯一黑:虾皮,二面挂3.17笔试:很简单,40分钟oc程度3.21一面:一些简单八股加项目,反问时多问了一下,有没有transfer到海外的机会?说没有,是否有gamefi的业务(因为他提到游戏代币):他完全不知道gamefi是什么,答非所问,然后我问题还没问完,非常突兀的说了句面试时间差不多了,面试到此结束,然后我都还没来得及反应就给我挂了面试间(by&nbsp;the&nbsp;way他还迟到了78分钟)3.24二面:演都不演了!!!直接上kpi!问了一堆莫名其妙的问题,有些可能根本就没法回答,我的项目是full&nbsp;stack的,他就问我怎么部署后端服务器,我说我是serverless的,他还问我所以你的后端服务期怎么部署???我跟他好好解释了一下vercel+neon的serverless框架,他好像完全不了解,非常之离谱,它是真不知道什么是serverless吗。后来最离谱,让我做道题,用时间和空间都是O(n)(题目条件),很简单,秒了,然后他说空间优化到O(1)我想了下不会,他说你在想想,再想个5分钟,而且它不给提示,就让我再接着想,我都说了我不会,它就不管,结果您猜怎么招,他自己在那里写代码,其实它全程都在写,所以老子的回答你才能是一个都听不明白然后问出一堆愚蠢的问题要不是那会我还没offer,我真想骂你几句然后给你直接挂了结果就是面试出来秒挂后来现在还有pdd和饿了么,pdd来到了二面,饿了么刚约面,已经不考虑了,再随便面一面查漏补缺一下就好
查看23道真题和解析 我的OC时间线
点赞 评论 收藏
分享
05-07 13:29
已编辑
中山大学 前端工程师
&nbsp;#&nbsp;#一面&nbsp;4.18&nbsp;50min1.&nbsp;自我介绍怎么学前端的(B站、MDN、官网、书、博客、掘金、github&nbsp;issue)一个人学的吗(身边没转码的,不过做项目和青训营同学一起做的,也学到了很多)2.&nbsp;八股缓存常见状态码GET和POST重排重绘、怎么减少重排一定会重绘吗(反过来呢)CSS动画跨域闭包其他的忘了...3.&nbsp;项目选一个介绍,问了很多分包怎么做的jwt、双token文件怎么缓存的(只做了服务端)埋点整体流程有没有难点上报验证过程无痕和代码埋点怎么做的、具体上报策略、怎么验证的面试官说项目流程和功能做的挺全的4.&nbsp;手撕(说10-20min做完,3min就写完了)实现Array.prototype.reduce最长不重复子串5.&nbsp;反问业务:电商toB、toC什么时候出结果:几天内建议:忘了面试官小哥好年轻啊-------------------------------------------------------------------------------------二面&nbsp;4.24&nbsp;1h1.&nbsp;介绍2.&nbsp;八股Vue23区别CSS隐藏元素,区别渐进显示定位document的api获取所有标签名缓存(上一面问了,跳过)3.&nbsp;项目选一个介绍负责哪些部分页面性能指标,定义,怎么测4.&nbsp;题目判断this指向promise输出闭包保存变量,plus、minus、result方法加、减、得到结果,解构后要正常运行矩阵斜着遍历5.&nbsp;反问上班时间:早上9-10,开发来的晚一点,晚上21:30地点:北上杭业务(说的挺详细的)-------------------------------------------------------------------------------------三面&nbsp;4.27&nbsp;50min1.&nbsp;介绍问照片=&gt;三维模型的过程2.&nbsp;项目选一个介绍分包,效果一定好吗web&nbsp;worker,限制,除了postMessage外,有没有其他办法和主线程同步数据HTTP断点续传结构化克隆MinIO分布式分片合并策略3.&nbsp;八股Vue数组的处理输入url到页面显示哪些会分层,z-index?对话框?先光栅化还是合成type和interface区别协变逆变4.&nbsp;其他最近在学什么还有什么想讲的:V8垃圾回收,问:Vue项目里面哪些可能会被分配到老生代区优缺点什么时候能实习,实习多久5.&nbsp;写题选算法还是应用?把一个promise链式调用改成async&nbsp;await,判断后续会不会执行6.&nbsp;反问业务:商家部分技术栈:主要用React实习生要求建议:背的熟,多想想为什么-------------------------------------------------------------------------------------HR面&nbsp;4.28&nbsp;25min优缺点时间能接受吗学校在哪家在哪父母做什么的说一个项目有没有遇到难点,怎么做的-------------------------------------------------------------------------------------5.7&nbsp;offer
点赞 评论 收藏
分享
评论
7
58
分享

创作者周榜

更多
牛客网
牛客企业服务