字节跳动校招,抖音电商前端,一二面面经

3月3日 一面(50min)

原本定于2.25一面的,但是面试官临时有事。。。拖到了3.3

自我介绍

在学校参加了一些项目和比赛,然后有一段实习经历,去年九月系统学习前端
学习渠道:入门是同学带,系统学习是红宝书,b站,然后踩坑就找掘金思否CSDN

1.基本数据类型

多说了symbol和bigint,面试官稍微问了下用过没,是干啥的,symobol用过,bigint只在教程里看见过

2.一个原型链的输出题

    function Ctor(x){
      this.x=x
    }
    Ctor.prototype.x='12345'
    const a=new Ctor(4)
    a.x=undefined
    console.log(a.x)//这里我答的12345,以为赋值undefined会去原型链上找hhhh,实际上赋值啥就是啥(undefined)
    const b=new Ctor(5)
    delete b.x
    console.log(b.x)//这里是12345

3.事件循环,输出题

//1 3 4 5 2
new Promise(resolve=>{
  console.log(1)
  setTimeout(()=>{
    resolve()
  },0)
})
.then(()=>{
  console.log(4)
})
.then(()=>{
  console.log(5)
})
setTimeout(() => {
  console.log(2)
}, 0);
console.log(3)

4.web安全

xss,csrf,http劫持,dns劫持,ddos
仔细问了一下csrf的攻击原理

5.跨域的解决方法

简单说了下跨域的产生,和同源策略的限制
父子域名location.domain再设置端口号,代理服务器,websocket,cors,jsonp,cors问了怎么携带cookie,没答上来(withcredential)

6.ssl加密的过程

追问非对称加密加密的是什么(会话秘钥)

7.动画效果方案

transition(嘴瓢说了transiform),animation,requestAnimationFrame

8.手写一个深拷贝

自己没考虑数组,而且没用hasOwnProperty,复制了原型上的属性

9.为Array实现一个getReader

题目上是TS写法,然后我不会,就实现了一个函数返回一个Reader

10.反问

问了问哪里答得不好需要加强
学习建议

3月15日 二面(1h)

原本是3.11的,结果面试官也有事,然后跟hr小姐姐又换了好几个面试官都没空,最后又定到3.15

自我介绍

跟一面差不多的自我介绍
问了问实习项目中怎么解决eCharts没法用相对单位的问题

1.js的类型检测

回答了typeof instanceof constructor Object.prototype.toString().call()
追问了一下为啥要用Objcet原型上的toString,慌神了直接胡言乱语说不用原型找不到hhhh(实际上是别的toSrring经常被重写)

2.如何理解js动态类型,有什么优缺点

声明时类型不固定,可以修改,不用调用各种类型转换的函数,编码灵活但容易出错
又追问了一下js数组的内存分配,我这里猜测和c++数组动态内存一样动态分配,不够就翻倍之类的

3.判断this

//一开始被绕进去了,面试官提醒了一下,我重头开始分析,后来对了
var length=10;
function fn(){
  return this.length+1
};
var obj={
  length:5,
  test1(){
    return fn()
  }
}
console.log(obj.test1())//11
obj.test2=fn
console.log(obj.test1()===obj.test2())//11===6,false

4.new的原理,过程

这里我直接给面试官手写了一个

5.js代码在V8中怎么执行的

这里直接问蒙了,啥也不会啊hhhh,如实和面试官说了不会,但说了一下自己的看法,分为编译过程和运行过程
追问这两个过程干了些什么,回答了编译期有语法检查之类的

6.从url到页面呈现经历了那些过程

找缓存-dns解析-tcp链接-http请求-页面渲染
追问了dns解析的过程(递归和迭代)和页面渲染的过程(css,html同步解析,遇到js就请求执行)
再追问js阻塞怎么办(script写在body后面,async,defer)

7.事件传播

先捕获再冒泡,addEventLisener的第三个参数是干什么的(决定事件在哪个阶段执行,true是捕获,false冒泡),这个属性有没有改变事件传播的顺序(只是决定事件在哪执行,没有改变事件传播的顺序)

8.浏览器存储和调用它们的api

localStorage,SessionStorage,Cookie

9.vue解决了什么问题

不用操作dom,组件化
追问vue的响应式(Object.defineProperty)
然后又问了vue怎么做的依赖收集(不清楚)

10.webpack解决了什么问题

回答了less sass转css,babel转es5,热更新,混淆压缩
问了less-loader,css-loader和style-loader分别的作用,这里如实说了不清楚,但自己认为less-loader是把less转css,css-loader是为了解决css的模块化,样式隔离,style-loader真不知道

11.js的模块化了解多少

用过commonjs的require和es6的import

12.flex:1效果是什么

先回大了flex:1是三个属性的简写,然后回答了效果

13.box-sizing干什么的(盒模型)

14.并发和并行的区别(不知道,说了句废话,面试官说我说了等于没说,哈哈哈哈)

15.线程和进程的联系和区别,这里回答的比较详细

追问了线程间通信的方式(消息队列,共享内存,信号量)
然后又追问了一个进程的内存空间里会存些什么(运行时的状态,信号量)

16.tcp为什么三次握手

说话已经开始结巴了,一开始说了一点没说清楚,;捋了捋说清楚了,四次会造成资源浪费,两次无法确定

17.对称和非对称加密的优缺点

回答了安全和速度
追问浏览器和服务器加密算法谁更快(不知道)

18.V8垃圾回收

(自己对V8了解确实不够呀)
问了垃圾回收的时机,回答内存不够就运行
追问了新旧GC的区别,回答不清楚区别,但知道旧GC的原理和缺点,猜测新GC应该一定程度上有所解决
追问谁执行的更频繁(我回答老的不如新的,得多清理几次,没想到错了hhhhh)

19.算法题-括号生成,我用动态规划写的,力扣上有

20.反问

问了问哪里答得不好
哪里需要加强(并行并发,还说V8不感兴趣没关系,面试官人真的挺好的,还跟我讲了一些业务上的问题)
学习建议
直接问过没过,面试官笑嘻嘻跟我说,不能讲,我觉得还不错,你自己体会
后来等了会hr就跟我说过了

hr小姐姐人也特别好,特意写了这个面经,希望能帮到大家,也希望能攒攒人品,3.21三面,加油!

#字节跳动##面经##校招#
全部评论
楼主是实习吗?还是就业?
点赞 回复 分享
发布于 2022-04-25 19:02
楼主前端学了多久
点赞 回复 分享
发布于 2022-04-19 12:49
兄弟 同燕大的 研究生还是本科啊?
点赞 回复 分享
发布于 2022-04-14 16:24
学长好
点赞 回复 分享
发布于 2022-03-24 22:47
m
点赞 回复 分享
发布于 2022-03-24 18:31
大佬,三面怎么样儿,今天能更新一下三面的面经吗
点赞 回复 分享
发布于 2022-03-24 17:44
蹲一个三面面评
点赞 回复 分享
发布于 2022-03-22 08:21
楼主,一面多久后通知二面的呀?😁我等了挺久还没消息?
点赞 回复 分享
发布于 2022-03-21 17:10
这个难度也太大了吧,,,我直接被劝退,明天面试,想取消了😣
点赞 回复 分享
发布于 2022-03-20 22:51
加油,成功了你就不光心会跳,字都会跳了
点赞 回复 分享
发布于 2022-03-18 16:18
楼主加油
点赞 回复 分享
发布于 2022-03-17 08:54
楼主是春招还是暑假实习呐😁
点赞 回复 分享
发布于 2022-03-16 19:45
我下周面这个部门,沾沾楼主喜气😁
点赞 回复 分享
发布于 2022-03-16 19:43
祝成功
点赞 回复 分享
发布于 2022-03-16 18:53

相关推荐

10-13 11:03
门头沟学院 Java
一面: 1. 做个简单的自我介绍。2. 详细介绍一下实习中你觉得做得比较好的一个项目,包括整体的业务背景、整体的系统设计以及你在里面做了哪些事。3. 这里提到的事务,比如简单的DB和缓存场景,用事务来做其实也有问题吧?比如先写数据库,假设超时然后事务回滚了,但缓存数据还在,超时事务回滚了也没办法很好地保证这种强一致性,对吗?4. 你提到的写完数据库后删除缓存,在这种场景下还会有什么问题吗?比如极限情况下的更新和查询冲突。5. 针对这个项目,你们平时是怎么排查处理消息队列(卡夫卡)的消息堆积问题的?6. HashMap中解决哈希冲突的链表和红黑树,它们本质的区别在哪儿?为什么要把链表转为红黑树呢?为什么要选择红黑树呢?logN的搜索效率的数据结构不只有红黑树,为什么选择红黑树呢?7. HashMap是线程不安全的,ConcurrentHashMap是如何保证线程安全的?用到了CAS和加锁的话,是怎么样的过程,为什么要那么做呢?8. Redis里面的sds相比于C的字符串有哪些区别?有扩容操作那么还会有缩容操作吗?9. Redis为什么单线程快?怎么处理多个服务?什么是IO多路复用?内部是怎么实现的?10. 实际场景中,怎么用Java实现主线程等待所有子线程处理完后,再汇总结果继续执行的场景?11. 给一个场景,如果是下完订单后半小时内没有付款就取消订单,那么用什么做法来做?12. 手撕中等二面:1. 问实习2. MySQL中索引是怎么实现的?(比如你说的主键索引底层实现)3. 假设单独对A列建了一个二级索引,现在有两个查询语句,哪一句的执行效率比较高?(语句1:select A,B from xx where A=1;语句2:select A from xx where A=1, 对A建立了索引)4. 用数据库进行写操作时,会给数据库加事务,发生错误时事务回滚是怎么做到的呢?5. 你刚才说数据库里有三个重要的log,除了跟回滚相关的log,另外两个是什么呀?6. Redo log是存在什么场景呢?7. 现在有一个场景,抖音个人主页会展示用户发的视频列表,要求列表按视频被点赞数量倒序排列(点赞最多的排在第一个),且抖音用户量大、页面访问量高。如果让你设计这个个人主页,从表结构(以MySQL为例)角度会怎么设计?8. 视频表中会存储视频被点赞的数量,而你之前提到用Redis有序集合缓存用户视频列表并按点赞数排序,这两个数据源(MySQL和Redis)之间是怎么进行更新,以保证数据一致性的呢?9. 你判断抖音个人主页的点赞数量场景,是否可以容忍数据有延迟?10. 如果一个用户发了很多很多视频,按用户维度将所有视频放到Redis有序集合中会导致key过大,每次展示时阻塞时间久,有什么思路解决这个问题吗?11. 手撕中等三面:1、基本都在问项目,而且面试体验很差2、两个各含 50 亿个 URL 的文件(每条URL64个字节),内存仅 4GB,找出共同 URL3、手撕中等秒挂
梦雨雨:同学,瞅瞅我司,医疗独角兽~ 我的主页最新动态,绿灯直达,免笔试~
点赞 评论 收藏
分享
1    说一下实习项目开发到部署上线全部流程2    怎么使用git进行管理的3    git rebase用过吗,说一说4    Git pull和git fetch的区别5    暂存区 工作区 和 远端仓库有什么区别6    哈希的使用场景,为什么用哈希7    哈希值是怎么计算的8    map和set的使用9    Websockt是怎么建立链接的10    你说到101状态码,还有什么常用状态码11    304状态码是什么情况下会出现12    (围绕协商缓存和强制缓存的一些问题)13    socket.io是怎么使用的14    vue2和vue3的区别15    proxy的原理了解过吗,是怎么用他实现数据响应式的16    组件a为父组件,b1 b2为子组件,b1b2有哪些通信的方法17    你刚刚说的状态管理具体怎么用的18    生命周期钩子,created和mounted的区别19    可以在created里面发请求吗,为什么20    created钩子中为什么不可以进行dom操作21    dom操作会有什么影响22    v-if和v-show,和直接销毁dom有什么区别23    你说v-if性能开销大,为什么24    diff算法说一下25    computed和watch的区别是什么26    computed是怎么实现缓存的,底层实现原理是什么27    Vue router28    哈希路由和history路由29    路由切换时是怎么传参的30    了解过哪些布局,flex布局说一下31    宽高不定的div如何定位在屏幕中间,宽高为0能用flex实现吗32    讲一讲js原型链33    原型链的顶端是什么34    有一个构造函数F,new 实例f,f的原型链是什么样的35    手撕:11位手机号脱敏,中间四位替换为*
点赞 评论 收藏
分享
评论
40
167
分享

创作者周榜

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