还愿-字节跳动-20届前端春招
一面(50min)
-
算法中时间复杂度和空间复杂度,分别对应计算机什么硬件资源的使用?
-
计算机如何存储小数?0.1+0.2 ?= 0.3
-
HTTP vs HTTPS 的区别?HTTPS 加密连接建立的过程?
-
Flexbox 弹性盒模型是什么?
-
CSS 画个扇形?画个三角形?
- 深拷贝是什么?实现 deepCopy 接收任意类型的值。
-
console.log('script start'); async function async1() { console.log('async1'); await async2(); console.log('end'); } async function async2() { console.log('async2'); } setTimeout(function() { console.log('setTimeout'); }, 0); async1(); new Promise(function(resolve) { console.log('promise1'); resolve(); }).then(function() { console.log('promise2'); }); console.log('script end');
- 实现一个Promise
-
function TreeNode(val) { this.val = val; this.left = null; this.right = null; } 1 / \ 4 6 / \ 2 5 function lvl(root) { // 请你实现 } [ [1], [4, 6], [2, 5], ]
二面(45min)
-
一面的问题怎么样
-
进程线程之间的区别,进程之间怎么通信,线程之间怎么通信
-
聊项目
-
两个标签页怎么通信
-
localStorage sessionStorage的区别
-
实现 requestAnimationFrame 的polyfill
-
requestAnimationFrame 和 requestIdleCallback的区别
-
怎么保存登陆态
-
如何预防XSS,CSRF攻击
-
一个promise list,一次最多只能执行n个,当全部执行完成之后,调用callback
send(list, n, callback)
-
页面性能如何进行优化
-
css 两边定宽,中间自适应
-
splice会不会改变原数组
-
React Context 和 redux mobx的区别
三面(30min)
-
面向对象的特征
-
基于对象和面向对象的区别,以及JS是面向对象还是基于对象
-
JS实现继承,多种方式
-
HTTP 和 WebSocket的区别
-
TCP 和 UCP 的区别
-
TCP的三次握手四次挥手
-
React实现显示当前时间的公用组件,时间随着当前时间实时变化,并有哪些优化方式
-
useEffect的使用及优化
-
canvas如何实现按比例占满全屏
-
JS实现数据结构双向循环列表,并实现添加节点方法
-
内存溢出和内存泄漏的区别
-
狄杰斯特拉和弗洛伊德的区别,描述及实现 (因为毕设用到了这两个算法)
-
贪吃蛇这个项目的数据构造和整个游戏的建模过程(有一个实时对战的贪吃蛇项目)
-
webpack工程化可以有哪些优化的方法