字节国际化电商前端开发一二三面凉经

一面50min

1.自我介绍

2.怎么学习前端

3.输入url到页面渲染完成

4.TCP/IP协议分层,TCP在哪一层

5.三次握手 四次挥手,为什么挥手多一次

6.浏览器缓存,强缓存、协商缓存,为什么cache-control优先级更高

7. no-cache,no-store分别代表什么

8. html、css、js文件会放在磁盘缓存还是内存缓存

9. DOM树和css om树是互斥的还是同时的

10. JS脚本阻塞DOM构建,js脚本会不会对css om树影响

11.重绘、重排概念

12.看题说输出

var name = 'window'
const obj = {
    name: 'obj',
    sayName:function() {
        console.log(this.name)
    },
}
obj.sayMyName = () => {
    console.log(this.name)
}
const fn1 = obj.sayName()
const fn2 = obj.sayMyName()
fn1() // window
obj.sayName() // obj
fn2() // window
obj.sayMyName() // window

13.箭头函数和普通函数的区别,箭头函数如何表示不定长的参数

14.有哪些类型的作用域

15.var let const区别

16.实现eventbus

class eventBus {
  constructor() {
    this.eventMap = {}
  }
  addEventListener(eventname, fn, isOnce) {
    const taskObj = {fn,isOnce}
    if (!this.eventMap[eventname]) {
      this.eventMap[eventname] = [taskObj]
    } else {
      this.eventMap[eventname].push(taskObj)
    }
  }
  on(eventname, fn) {
    this.addEventListener(eventname, fn, false)
  }
  once(eventname, fn) {
    this.addEventListener(eventname, fn, true)
  }
  off(eventname) {
    this.eventMap[eventname] = []
  }
  trigger(eventname) {
    const tasks = this.eventMap[eventname]
    const onceTasks = []
    tasks && tasks.forEach((item, index) => {
      const { fn,isOnce } = item
      fn && fn()
      if (isOnce) {
        onceTasks.push(index)
      }
    })
    onceTasks.forEach((index) => {
      this.eventMap[eventname].splice(index, 1)
    })
  }
}
const bus = new eventBus()
const fn1 = () => {
  console.log('fn1')
}
const fn2 = () => {
  console.log('fn2')
}
bus.on('fn', fn1)
bus.once('fn', fn2)
bus.on('fn', fn1)
bus.trigger('fn') // fn1 fn2 fn1
bus.trigger('fn') // fn1 fn1
bus.off('fn')
bus.trigger('fn') // null

17. 岛屿数量

18. 反问:表现,业务

总结

no-cache没了解到,cssom构建和js之间的关系之前没了解过
作用域没说好,变量提升、暂时性死区也没讲到
eventbus实现比较丑陋,但是面试官很友好,给了提示

二面50min

1.自我介绍

2.http2.0和http1.0的区别

3.多路复用怎么实现的

4.https和http之间的区别,https握手过程

5.中间人攻击如何实现?怎样防范?

6.position取值,reletive相对谁

7.flex属性,flex布局

8.第二个子元素的高度是多少

<div class="container">
    <div style="height: 100px"></div>
    <div style="min-height: 10px"></div>
</div>
<style>
    .container{
        display: flex;
    }
    .container > div {
        width: 100px;
    }
</style>

9.事件循环讲解

10.看代码说输出

async function async1(){
    console.log('async1')
    await async2()
    console.log('async1 end')
}
async function async2(){
    console.log('async2')
}
console.log('script start')
setTimeout(() =>{
    console.log('setTimeOut')
},0)
async1()
new Promise((resolve) => {
    console.log('promise')
    resolve()
}).then(() =>{
    console.log('promise2')
})
console.log('script end')

11. 继承有哪些方法

12. Vue常见的组件通信方法

13. 兄弟组件通信你会考虑用哪些方法

14. Vue MVVM实现思路

15. proxy对比defineproperty的优势

16. 实现lodash _get方法,后面给了优化思路

function _get(obj,path){
    let splitedPath = path
    if(typeof path === 'string'){
        splitedPath = path.replace(/\[(\d+)\]/g, '.$1').split('.')
    }
    const firstPath = splitedPath.shift()
    if(splitedPath.length === 0){
        return obj[firstPath]
    }else{
        return _get(obj[firstPath],splitedPath.join('.'))
    }
}

17. 实习过程中遇到的困难,最有成就感的事

18. 实习的时候做的浏览器插件简单讲一下

19. 反问

总结

flex那个高度没说对,继承说的乱七八糟
get写的有点丑陋,不过算是把case都跑通了,面试官挺友好的
感觉面试官是个开源社区的贡献者,比较在意这个

三面 70min

1.自我介绍

2.介绍一下实习的项目

3.遇到的困难和问题,怎么解决

4.线上出问题是怎么排查的

5.React和Vue的区别

6.如何理解闭包

7.如何理解面向对象

8.设计模式

9.输入url到渲染的过程(对服务器如何定位到具体文件追问了)

10.keep-alive,websocket

11.最大连续子数组,输出值和索引

总结

几乎没问前端向的东西,几乎都答得不好
最后的算法题写出来了,但是对复杂度不满意,优化了大概得有20分钟都没优化出来

#前端工程师##面经#
全部评论
【暑期实习】前端开发工程师-抖音/抖音火山版/直播/影像/智能创作 字节跳动校招内推码: EXWS7FT 投递链接: https://jobs.toutiao.com/s/NJREQK1 【校招正式】前端开发工程师-抖音/抖音火山版/直播/影像/智能创作 字节跳动校招内推码: EXWS7FT 投递链接: https://jobs.toutiao.com/s/NJRVvmt #字节跳动# #字节跳动内推# #深圳# 机会多多,欢迎大家😃
2 回复 分享
发布于 2022-02-27 16:14
学习了,题目大部分都比较基础,面了这么久却因为算法题没通过太遗憾了。 xdm刷前端面试题可以去这儿: https://fe.ecool.fun/
2 回复 分享
发布于 2022-04-10 13:40
html,css,js是保存在磁盘还是内存啊
1 回复 分享
发布于 2022-03-02 23:32
请问楼主面的base是上海吗
1 回复 分享
发布于 2022-04-10 19:35
请问是有很多没答出来嘛这都凉了
4 回复 分享
发布于 2022-02-22 15:41
楼主是暑期实习还是春招补录啊,感觉好难啊
点赞 回复 分享
发布于 2022-02-18 20:41
阿里钉钉校招内推,基础技术平台,核心业务,机会好,成长快!详见: https://www.nowcoder.com/discuss/840310
点赞 回复 分享
发布于 2022-02-19 18:43
京东前端实习机会有意向欢迎私聊我
点赞 回复 分享
发布于 2022-02-23 12:00
京东前端实习机会有意向欢迎私聊我
点赞 回复 分享
发布于 2022-02-23 12:02
那道算法题是easy级别的,确实是因为算法题挂了
点赞 回复 分享
发布于 2022-03-05 21:23
抖音小程序前端还有坑位,同学感兴趣不?感兴趣可以私聊我,部门直招
点赞 回复 分享
发布于 2022-06-26 15:34

相关推荐

一名愚蠢的人类:多少games小鬼留下了羡慕的泪水
投递荣耀等公司10个岗位
点赞 评论 收藏
分享
10-07 20:48
门头沟学院 Java
听说改名就会有offer:可能是实习上着班想到后面还要回学校给导师做牛马,看着身边都是21-25的年纪,突然emo了了
点赞 评论 收藏
分享
31 225 评论
分享
牛客网
牛客企业服务