字节提前批抖音电商前端一二三面(已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
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) // true12. 算法题:对称二叉树判断(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之前刷面经刷到过,双指针解决)
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的最大并发请求数
14. 手写代码:实现控制Promise的最大并发请求数
15. 改写Promise.all:1. 给其中的每个请求都加上超时时间 2. 给所有请求的总时间加上超时
16. 手写发布订阅模式