字节提前批抖音电商前端一二三面(已OC)

base地:上海五角场尚浦中心
三轮技术面每轮一个小时

一面(一个小时)
1. 自我介绍
2. 简述两段实习和学校项目
3. Vue全局挂载组件(Vue.use和install,为什么组件要暴露一个install函数
4. Vue组件通信(prop/emit,Vuex,事件总线,父链子链)
5. px2rem做屏幕自适应原理,px与rem的转换原理与过程
6. websocket与http2.0的长连接
7. iframe标签引入其他页面的通信过程
8. flex:1是实现什么功能,flex由哪三个属性组合而成
9. 类型判断题目:
1 == [] // false
true == []  // false
{} == {} // false
1 + '2' // '12'
Boolean([]) // false
10. 变量提升题
console.log(a)  // [Function: a]
var a = 1
function a() {
  console.log(1)
}
console.log(a);  // 1
11. 实现一个对象,该对象有五个方法可以判断不同类型,要鉴别出function、null、NaN、数组、对象
const is = {
    Array: (arr) => {
       return Array.isArray(arr)
   },
   Function: (func) => {
      return func instanceof Function
   },
   Object: (obj) => {
      return Object.prototype.toString.call(obj) === ['object Object']
   },
   Null: (a) => {
      return a === null
   },
   NaN: (a) => {
      return Number.isNaN(a)
   }
}
function func () {}
const isFunc = is.Function(func) 
console.log(isFunc) // true
12. 算法题:对称二叉树判断(Leetcode101,输入需要自己构造

二面(一个小时)
1. position定位(默认值/相对/固定/绝对/sticky粘性定位)
2. 细述sticy的优缺点与原理,应用场景:元素吸顶
3. 清除浮动的方法与BFC
4. CSS绘制三角形与扇形,并简述原理
5. 事件循环阐述,判断事件循环的打印顺序题目
6. 说出几种继承的方式,ES6的class与ES5的继承的区别
7. 常见前端性能优化手段
8. 手写函数柯里化
9. 实现format函数来摊平字符串:  输入:3(x)2(yz)1(x)   输出:xxxyzyzx
function format(str) {
  let result = ''
  let strList = str.match(/\(([^)]*)\)/g);
  strList = strList.map(item => {
    return item.slice(1, item.length-1)
  })
  let nums = str.match(/\d+(\d+)?/g)
  strList.forEach((item, index) => {
    result += item.repeat(parseInt(nums[index]))
  })
  console.log(result);
}
10. 上题加深难度:括号内嵌套括号     输入:3(x)2(yz2(az))1(x)    输出:xxxyzazazyzazazx     需要递归判断每个括号内是否还有括号,最后没成功。。。
11. 算法题:接雨水(Leetcode42 困难题,lz之前刷面经刷到过,双指针解决)  

三面(一个小时,leader面,扯了点非技术)
1. 没有自我介绍,直接简述京东实习,说出实习的亮点与技术难度,有没有自己提出一些意见
2. 有无其他公司offer,觉得字节怎么样,对字节的了解。。。
3. 为什么想从事前端,前端学习路线,未来职业规划,研三的打算,能否提前来实习
4. 自身的优缺点,有没有看一些技术方面的书,红宝书看的怎么样
5. this指向判断
function O (age) {
    this.age = age;
}
var o = new O(1);
var age = 3;
O.prototype.age = 2;
setTimeout(function () {
    age = 4;
    O(5);
    console.log(o.age, age)  // 判断结果
}, 1000)
6. 跨域问题如何解决
7. Vue路由两种模式,history模式会出什么问题吗,可以用nginx来解决出现的问题,知道配置了什么吗
8. CSS元素水平垂直居中的方法
9. 防抖与节流的应用场景,项目里用过
10. 图片懒加载实现的两种手段:监听图片是否出现在可视区与Vue-lazyload插件
11. 常见网络攻击手段介绍:xss/csrf/SQL注入/DDos流量攻击 ,相关的防范措施
12. http状态码:304/401/403,由304引出http缓存的介绍
13. webpack的构建/打包过程,常用的loader与plugin介绍,有没有自己动手从0开始配置过
14. 手写代码:实现控制Promise的最大并发请求数
15. 改写Promise.all:1. 给其中的每个请求都加上超时时间       2. 给所有请求的总时间加上超时
16. 手写发布订阅模式   








#互联网求职##面经##字节跳动##校招#
全部评论
大佬八股文有资料吗,你是怎么复习的呢
1 回复 分享
发布于 2022-02-16 00:46
这就是大佬吧
点赞 回复 分享
发布于 2021-08-07 14:40
大佬太强了 
点赞 回复 分享
发布于 2021-08-07 20:08
点赞 回复 分享
发布于 2021-08-07 21:33
感谢大佬面经,不过捉个虫,Boolean([]) 为true 哦
点赞 回复 分享
发布于 2021-08-09 15:00
大佬,你这是北京还是杭州呀
点赞 回复 分享
发布于 2021-08-09 16:33
请问一下楼主 问到什么时候能提前去实习 是怎么回答的呢
点赞 回复 分享
发布于 2021-08-09 21:06
大佬,对称二叉树自己解决输入,是怎么解决的,反序列化吗?
点赞 回复 分享
发布于 2021-08-09 21:40
请问三面到offer多久,我显示的面试已完成。
点赞 回复 分享
发布于 2021-08-11 08:27
牛啊牛啊
点赞 回复 分享
发布于 2021-08-13 19:15
师兄,牛掰😋
点赞 回复 分享
发布于 2022-02-22 21:41
手写发布订阅模式怎么做啊,兄弟
点赞 回复 分享
发布于 2022-05-11 15:42

相关推荐

ESLint是一个用于【静态代码分析】的工具,用于检测JavaScript代码中的潜在问题和常见错误。它可以帮助开发团队规范代码风格、提高代码质量和一致性。使用ESLint有以下几个主要原因:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=9d41438f19104dca802ef21b5942c139代码质量控制:ESLint可以检查代码中的错误、潜在问题和不良实践。它可以帮助开发者避免常见错误,如声明但从未使用的变量、使用未定义的变量或函数、重复的代码等。这有助于提高代码质量和可维护性。统一的代码风格:ESLint可以通过配置不同的规则集来强制代码风格的一致性。这有助于团队在开发过程中遵循相同的代码风格指南,减少团队成员之间的风格差异,并提高代码的可读性。提示更好的开发经验:ESLint可以提供即时反馈,并显示出代码中的问题和警告。这样可以帮助开发者更快地发现问题,减少调试时间,提高开发效率。可扩展性:ESLint可以通过插件和配置进行灵活的定制。你可以根据项目需求和团队偏好来选择适合的规则集,并添加自定义规则。这使得ESLint成为适应不同项目和团队需求的强大工具。总之,使用ESLint可以提供一个强大的静态代码分析工具,帮助开发团队提高代码质量、规范代码风格,并提供更好的开发体验。它是一个在项目中推荐使用的工具,尤其是对于大型团队和长期维护的项目来说。
点赞 评论 收藏
分享
评论
12
97
分享
牛客网
牛客企业服务