字节前端六面了,不知道会不会给,祈祷hr面,秋招也太难了!
提前批投的抖音电商,三面有点压力面的味道,面的很不好挂了。
一面:
1.自我介绍
2.接触前端多久
3.css盒模型介绍一下
4.BFC,什么是BFC,有什么作用,应用场景
5.重绘和重排
6.显示一个0.5像素的元素 怎么写
7.输出内容,时序,块级作用域是什么,改成每一秒输出一个数字,为什么这么写
for (var i = 0; i 10; i++) { setInterval(() => { console.log(i) }, 1000) }
8.输出什么
window.name = 'ByteDance'; function A() { this.name = 123; } A.prototype.getA = function() { console.log(this.name) return this.name + 1 } let a = new A(); let funcA = a.getA funcA()
9.看输出,微任务宏任务
setTimeout(() => { console.log(1) }, 0); new Promise((res)=>{console.log(2);res()}).then(()=>{console.log(4)}) console.log(3)
10.跨域(是什么,怎么解决)
11.http和https,为什么http会被劫持,怎么劫持
12.对称加密和非对称加密有什么区别,应用场景
13.非对称加密在哪些方面更安全,原理说一下
14.括号合理算法题(leetcode20)
二面:
1.自我介绍
2.介绍一下Vue (MVVM,单页面开发,数据双向绑定,组件化,组件通信)
3.组件通信如何实现
4.vue虚拟DOM树
5.CSS的position有哪些(stick没答出名字),分别定位是怎么定位
6.哪些定位方式是脱离文档流
7.脱离文档流是一种什么现象
8.stick在ie是没有的,如何通过js实现
9.监听滚动的性能优化(防抖/节流)选择哪一个,如何尽可能好的效果
10.写一下防抖/节流(let的变量提升)
11.http各种请求有什么不同,OPTIONS了解吗
12.如果传输的是二进制文件,是怎么传输的
13.http各版本区别
14.Xss,CSRF原理
15.都窃取到cookie吗,能拿到用户信息吗
16.分别怎么防范(token)
17.token如何使用
18.token如何存储(sessionStorage,localStorage)
19.sessionStorage,localStorage有什么区别
20.
const a = () => { new Promise((resolve) => { resolve(1) console.log('a') }).then(() => { console.log('b') }) } a() console.log('c')
21.
//versions是一个项目的版本号列表, 因多人维护, 不规则 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.3', '6']
三面:
js有什么特点
1.数组去重,写
2.js变成数组的方法
3.promise
new Promise((resolve, reject) => { reject(1) }).catch(() => { console.log(2); }).then(() => { console.log(3) }, (v) => { console.log(v) }) console.log(4)
4.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)
5.dispaly有什么属性
6.inline-block和block有什么区别
7.Flex怎么设置居中
8.get和post的区别
9.TCP四次回收
10.http和tcp的关系
11.在web场景中,udp用在哪里
12.线程和进程 底层
13.1234->1243
第二轮是抖音火山版捞的我,base杭州,昨天面完三面,感觉秋招面试难度又增加了。
一面:
1.js基本数据类型
2.判断数据类型的方法? 如果判断数据还有呢?
3.Vue2.0响应式原理
4.Vue3.0怎么修改
5.MVVM是什么
6.['1', '2', '3'].map(parseInt)打印结果 map里面有三个参数(item,index,array) parseInt有两个参数(num,进制)
7.防抖和节流区别,应用场景
8.写一下防抖,添加立即执行功能
9.CSS实现三角形 transparent透明 inherit继承父元素颜色
10.读代码:
async function async1() { console.log('async1 start'); await async2(); console.log('async1 end'); } async function async2() { console.log('async2'); } console.log('script start'); setTimeout(function() { console.log('setTimeout'); }, 0) async1(); new Promise(function(resolve) { console.log('promise1'); resolve(); }).then(function() { console.log('promise2'); }); console.log('script end');
11.http1.0,1.1,2.0
12.http1.1 缓存有哪些header更新
13.cookie 和 session的区别
14.如何鉴别身份 JWT
15.204 301 302 304 302会有什么问题
16.重绘和重排
17.剑指offer34 判断有无符合路径和 -> 打印所有路径
二面:
1.http和https的区别
2.中间人攻击
3.如何防范中间人攻击
4.常见的浏览器缓存方式
5.什么是CDN
6.DNS是什么
7.CDN的缓存穿透和回源
8.原型链是什么
9.对象上查找一个属性是一个什么过程
10.原型链实现继承,写一下
function obj1() { this.value = 1; } function obj2(name) { this.name = name; } obj2.prototype = new obj1(); let obj = new obj2('mike'); console.log(obj.value);
11.obj2的原型的构造函数指向哪个
12.引用数据和非引用数据区别
13.访问的对象地址在哪里
14.深浅拷贝 手写
15.如果有环如何实现
const obj = { a: 1, b: 2, c: { ca: 1, cb: 2 } }; obj['c']['cc'] = obj;
16.盒模型介绍一下
17.Vue修改data到DOM更新是同步还是异步,这么设计的缘故是什么
18.在哪个任务去执行更新,宏任务还是微任务,具体是哪个任务
19.宏任务和微任务
20.微任务嵌套宏任务是什么时候执行
21.宏任务嵌套宏任务是什么时候执行
22.事件循环机制
23.DOM事件 捕获和冒泡分别适用于什么场景
24.event.target和event.currentarget
25.Vue列表渲染使用key
26.虚拟dom树是怎么做的,是怎么做优化的
27.算法,版本排序
28.怎么学前端
三面:
1.为什么选前端
2.进程线程
3.cookie和sessionStorage和localStorage
4.科研项目
5.检测回文字符串
6.10+6+5-3*5/5 输入String输出Number答案
7.linux path ../../a/b/c (../ ./ /../ => ../) (/./ => /)
getPath("/a/b/../c") => /a/c
8.TimeFormat(timestamp, patterm)
pattern => "YYY-MM-DD hh:mm:ss" => 2021-09-08 15:45:00
格式有可能是 YYYY/MM/DD MM/DD
9.100000 => 100,000
三面面试官很好,我678没思路就给我换题目了,终究还是自己太菜了,没有实习经历也是硬伤。祈祷hr面吧!
#面经##字节跳动##校招#