2021-03-29
大家好俺回来更新了!!
书接上回,在北漂四个月多后,元旦前夕,本弱鸡终于成功转正,给的offer(28k那档)也特别满意 所以最后还是留下来 快乐的 给字节卖命
总的来说实习经历还是比较nice的,400/天,包三餐下午茶,1500/月的房补,好多健身房都是合作的可以白嫖。mentor虽然很忙但是也给了很多建议和指导(以及其他同事也都会热情的帮忙出方案hhh),同事们都很年轻好说话。不过,忙起来的时候也是非常忙了
最后,欢迎大家投递简历~
字节跳动校招内推码: 5XGMKFD
投递链接: https://jobs.toutiao.com/s/eYNdYYp
内推进展可以加我qq:809555918 帮忙查询 绝对舔狗式服务
投前端方向的同学欢迎一起交流~
2020-08
ps:经过朋友科普才知道提前批和实习的差别,hr说我的面试表现属于可过可不过的那种,所以给了实习的offer(淦,当初应该多练练算法的)。我这个不算校招,是实习。已经改了标题~
基本情况
楼主是 21 届、男生,来自韩庄乡不知名 211 的软件工程专业。
之前三月份面过一次字节试试水,结果一面就挂了。四月份五月份的时候又投过简历不过没有通过筛选。后来在六月二十七号左右收到 hr 小姐姐的电话,把我捞起来进行面试了。因为后面几天有两门课要结课答辩,所以面试时间往后拖了些日子安排在了七月七号。
七月七号下午五点开始面试,当天晚上八点半第三面结束,第二天 hr 面。
七月十二号下午收到 hr 电话、拿到 offer
确定七月二十号入职,base北京中航广场
一面
面试官是个小帅哥,贼像楼主一同学的加帅版,所以感觉很亲切 hhhhh。
一面面试体验良好,小帅哥全程微笑
下面是问的问题:
自我介绍
[JavaScript] 关于基本数据类型
先回答了在目前最新的 ES 中有八种,然后打字列出来(这里楼主就列出来了七种,把布尔给忘了,不过面试官没有硬揪,被楼主混过去了 hhh)
面试官让详细说一下 symbol 类型,于是说了一下作用、可能的 es5 实现方式。
[css] css 实现一个自适应搜索框,输入框部分宽度自适应,搜索按钮宽度固定
楼主用 float 写了个版本,后面面试官提到用 flex,于是用 flex 布局再写一个版本。
感觉这个问题回答的比较差,楼主写的有些问题。
[JavaScript] 老生常谈的 this 指向以及 call、apply、bind
看代码讲输出结果,比较简单
var a = { name: "bytedance", func: function () { console.log(this.name); }, }; a.func(); var fun1 = a.fun; fun1(); a.func.call({ name: "toutiao" });
然后讲一下 call、apply、bind 的作用以及不同。
这里楼主还往 js 执行上下文的方向深入扯了扯,应该是不错的加分项。
[mvvm]好处、解释下这个模式、大致说下实现
楼主简历里写了实现过简单的 mvvm 框架,于是问了这一块的东西
[看楼主之前的项目问了些问题]
一个企业门户网站的项目,让楼主讲一下后台管理系统的登录、鉴权模块实现:类似 jwt 的方式,然后在 axios 拦截器进行鉴权。
[cookie、localStorage、sessionStorage] 作用、区别
问到这个问题是因为上面一问中 jwt 的 token 楼主是存在 localStorage 而不是 cookie,面试官问了下为什么不存在 cookie 中。答:其实楼主也忘了,不过楼主往防范 csrf 攻击的方向详细扯了扯。
[cookie] 有哪些字段、什么用
楼主还详细扯了扯 cookie 的来源、作用、不足等等。
[跨域]
为什么要跨域
跨域有哪些方式
jsonp 详细讲了一下
跨域资源共享详细讲一下
讲了一下浏览器、服务器的处理流程
[https]
这个问题楼主详细扯了扯 ,包括
整个 http 的流程
https 是怎么保证传输数据包的安全
证书里都有什么
建立 HTTP 链接时的非对称加密,建立链接后传输数据的对称加密
数字签名
好像还问了些 https 相关的东西,不大记得了
[算法题]版本号排序
var versions = ["1.45.0", "1.5", "6", "3.3.3.3.3.3.3"];
要排序成
var sorted = ["1.5", "1.45.0", "3.3.3.3.3.3", "6"];
挺简单的,大致思路说出来就开始写代码。写代码的时候楼主拉垮,面试官小帅哥多次指导。 最后还是没有跑成功 hhhhh
还有什么想问的
答:您看我还有机会吗?
开了个玩笑,小哥被我震住了 瑟瑟发抖 hhhh
二面
五六分钟后开始二面
二面面试官一开始有些严肃,不过后面有个地方他迷糊了从此绷不住严肃人设开始笑眯眯 hhh
二面面试体验良好
下面是问的问题:
[引用类型、值类型]
楼主从内存的角度来分析他们的差别,面试官表示满意
[深拷贝]
从上一题延伸出来的,实现深拷贝函数。楼主有些条件没有考虑到,面试官进行了提示,很棒
[闭包] 闭包是什么、写一下、继续扯
先说了下闭包是什么、用在哪、缺点
然后写一个闭包的例子
//楼主当时写的 function func() { var aaa = "abc"; return function () { console.log(aaa); }; }
面试官问为什么里面的 function 能取到变量 aaa
楼主扯:垃圾回收、作用域链
v8 的垃圾回收机制
由上个问题延伸,继续探讨执行上下文相关的东西
(这里我提到了一个面试官犯迷糊的地方,从此严肃人设绷不住了 hhh)
楼主进行扯淡:之前看过一篇外国人的文章,里面贴了 c++实现 js 的执行上下文的结构体,结构体里面有变量存指向上一层作用域的指针、有变量存当前作用域等等巴拉巴拉,基本上是那篇文章的内容,关于执行上下文的。
a=123
跟var a=123
,这两种创建变量的方式有什么不同除了
a=123
会创建全局的变量外,还多了个沿着作用域链查找的过程。let var const区别
这里面试官还问了个暂时性锁区,楼主表示不知道,面试官举了个例子:
function func() { console.log(a); let a = 2; } func();
看楼主之前的项目
不过没有问具体技术问题,问了一些关于一个跟同学一起弄的二手交易小程序的运营情况
[跨域]
为什么要跨域
跨域有哪些方式
jsonp 详细讲了一下
跨域资源共享详细讲了一下
讲了一下浏览器、服务器的处理流程
webpack 的 devserver 是怎么跨域的
apply call bind
同一面
登录鉴权
同一面
cookie/localStorage
同一面(连问几个一样的问题,楼主窃喜)
算法题
给定一个数组,元素包含:一堆负数 + 一堆 0 + 一堆正数,求最后一个出现的负数和第一个出现的正数的位置,从 1 开始计数。要求时间复杂度为 O(logN)。例子:数组 [-1,-2,0,0,0,0,4,5] 最后一个负数出现的位置为 2,第一个正数出现的位置为 7。
用二分 ,复杂度 O(logn)
大致说了思路就开始写了,楼主算法题继续拉胯,感谢面试官进行引导提示(最后还是没跑成功)
有什么想问的
问了些技术栈、产品和做的东西、可不可以做一些后台的内容等等
三面
休息了几分钟开始三面
三面面试官是个利落的小姐姐,不过当时已经七点半了,所以小姐姐有些急
下面是问的问题:
[JavaScript]
typeof
操作符用过吗
什么作用
typeof 一个数组
什么结果那怎么判断是否是数组
[JavaScript]
instanceof
操作符用过吗
什么作用
这里还讲了讲原型对象和原型链
给了两个例子,说结果(例子忘记了、挺简单的)
实现一下 instanceof
这里略拉垮,
__proto__
给写成_proto_
了,死活报错,还好面试官提示了下。[css]position
有哪些字段,什么作用。这里楼主忘记了默认值是啥,后面面试官提示了。
怎么判断空对象
说了三种:
for of 循环,加个标记变量
经评论区提醒:应该是用for in循环object.keys 判断返回的数组长度
转成 json 格式的字符串、判断是否等于
"{}"
算法题
Merge 两个有序的链表
输入:node1, node2
输出:node
挺简单,但是楼主算法题继续拉胯,在面试官小姐姐提示下写出大致思路,然后小姐姐宣布就结束了面试
基本情况
什么时候能实习、实习到什么时候等等
hr 面
就问了下可以来实习的时间、能实习到什么时候、未来有什么打算,说面试官们讨论一下,然后走下流程,五个工作日内给结果。
总结
总的来说问题比较简单,JavaScript 的问题会比较多,每一轮会有 1-2 个需要写代码的题目。然后要多注意下算法,就算是前端方向也会问到算法相关内容。
一点小经验
简历上别罗列太多技能点
回答问题的时候要往自己熟悉的地方上扯 面试官经常会深入问你提到的东西
不会的问题别支支吾吾不懂装懂,直接说不大熟悉,请面试官提示一下,再不行就提出下一题。
就算远程视频面试也坐端正些,千万别抖脚
有什么问题欢迎大家留言交流,顺便求租房群,房租真的好贵o.o
以上
全部评论
(20) 回帖