春招基本结束了,虽然没进入想去的大厂,但基本都去面试过了一些...现在分享下面经,希望能给后面的学弟学妹有所帮助吧
由于时间比较久有些面试题记不太清楚了,这里久分享一下记得住的题目
字节跳动-data(三面挂)
一面 (60min)
- 前端性能优化
- https
- Vue eventBus
- 动画 animation
- osi 七层模型
- xss && csrf
- 跨域解决方案
- coding 题:
将下列格式转换为另一种格式
{ HappyPack:1, UserName:1, CompleteData:{ => PhoneNumber:132 }, } { happy_pack:1, user_name:1, complete_data:{ phone_number:132 }, }
二面 (30min)
- 项目介绍
- coding 写一个 vue 计算器组件
- coding 一段动画的实现
- coding 题目忘了...
三面 (50min)
- 项目介绍
- 计算机网络
- 圣杯布局、双飞翼布局
- 手写 promise
- 情景题:双十一抢购设计倒计时
字节跳动-抖音短视频(三面挂)
一面 (60min)
- osi7 层模型
- http 报文内容
- https http2.0
- 非对称加密发生在什么时候
- DNS 劫持
- xss && csrf
- 跨域解决方案
- Promise 设计模式
- node
- coding 把驼峰转下划线
二面 (30min)
- 项目介绍
- coding 写一个 vue 父子组件双向绑定
- coding 获取页面所有节点,并且输入 1-n 返回相应数量排序的节点,比如 div 数量最多,则输入 1,返回 div,如果不存在返回 null
三面 (50min)
- 先做题:
实现方法,判定给定的任意5-7张牌中是否*含有*同花顺牌型。 什么是同花顺:5张牌,牌面数字连续,并且花色相同,即可构成同花顺 一副牌4种花色分别是♠, ♥, ♣, ♦,每个花色从A到K共13张牌,总共4*13=52张牌 要求:用0-51表示这52张牌,按照顺序,♠A-♠K为0-12,♥A-♥K为13-25,♣A-♣K为26-38,♦A-♦K为39-51 实现方法,对于给定的数组input,返回true或者false function judge(input) {} 例如: input [6,2,3,4,5] return true input [11,21,31,41,51] return false input [0,2,4,5,6,7,8] return true
- webp png 区别
- 懒加载
- 动态表单
- webpack
shopee新加坡(三面挂)
一面 hr 面 (30min)
一开始用英文自我介绍,后来又要结合项目,实在英语说不出来了,面试官来了一句:那我们说中文吧...
- 自我介绍
- 项目介绍
- coding 排序,并计算复杂度
- 为什么投递 shopee
- 为什么要来新加坡
- 对于薪资的要求
二面 (100min)
主要是三块考察 js css web development
js:
主要是两道题目,需求会不断变化
写一个字符串缩写函数
example: internationalization => i18n
alias => a3s
如果字符长度<4,则输出全部字符
num => num
并且可能输入一个句子,字符内容是只包含 a-z A-Z,其他均为分隔符
'-important-num-alias' => "-i6t-num-a3s"debounce 防抖函数
需求 1:常规防抖
需求 2:要求在第一次调用时候,立即执行,后面调用的时候如果还在 wait 时间内,则不会调用,并且就算重复调用,也不会延时执行 2:要求在第一次调用时候,立即执行,后面调用的时候如果还在 wait 时间内,则不会调用,并且就算重复调用,也不会延时执行
example: debounce(func,wait) wait=500ms
0ms debounce 立即执行
100ms debouce 不执行
200ms debounce 不执行
700ms nothing happened
800ms debounce 立即执行
css:
- position 有几个值以及作用
- display:block | display:inline 区别以及作用
- display:flex 相对于的值以及应用(主要是三栏布局然后问了下设置 flex-grow:1,flex-shrink:1,布局会发生什么变化)
web development:
- cookie session 区别以及使用方式和场景
- cors
- 除了 cookie session 还有什么验证方法(我说可以用 token jwt,然后问我流程是怎么样的,怎么验证 token)
- https 和 http 区别
- 在 tls 不对称加密中的客户端是怎么验证证书的
- https 怎么防止中间人攻击
- if you are given a job: optimize the performance of a huge single page web app, it load 2MB of JS, 500KB of CSS, what will you do? what aspect do you think might be able to optimize?
三面 (60min)
- xss && csrf
- jwt
- 设计验证方式
- coding zombie game
Zombie Game 0: block, 1: healthy people, 2: zombie Each zombie can infect adjacent healthy people in 4 adjacent cells (up, down, left, right) every day How long does it take to infect all people? Example 1: Day 0 Day 1 Day 2 Day 3 Day 4 ----------------------------------------------- 2 1 1 2 2 1 2 2 2 2 2 2 2 2 2 1 1 0 => 2 1 0 => 2 2 0 => 2 2 0 => 2 2 0 0 1 1 0 1 1 0 1 1 0 2 1 0 2 2 Return 4 Example 2: Day 0 ------ 2 2 2 0 2 2 1 0 2 Return -1, because the left corner ppl won't be infected Example 3: Day 0 ----- 0 2 Return 0, the starting state is all ppl got infected
腾讯wxg(二面挂)
一面 (90min)
1 小时内先做 5 道题目:
1.实现嵌套数组的扁平化,要求不能使用 JSON.stringify
输入:[1,[2,3,[4,5],[6]]
输出:[1,2,3,4,5,6]
实现一个实数的堆栈,使得其 push pop max 方法的时间复杂度为 O(1)
有一个整数二维数组,每行的元素个数不同,输出它的全排列,同一行的数互斥。要求不使用递归完成
4.实现一个函数,检查二叉树是否平衡。
平衡二叉树的定义如下:任意一个节点的左右子树高度差不超过 1。假设二叉树节点一共有 N 个节点,要求算法时间复杂度不超过 O(N)。
递归判断每个节点的左子树和右子树,遇到树深大于 1 的就算得到解。
- 实现一个 Http 请求池,需要能够限制并发数
接下来在开始面试:
- 项目介绍
- xss csrf
- eventLoop
- 其他忘记了
二面 (60min)
也是一样,先做题:
- 合并二叉树
- 奇偶链表
- 字串问题
开始面试:
- 对之前算法题询问,看是否有更优解
- ssr && csr
- ssr 原理 ,如何实现
- 做过的性能优化
还有其他的就不贴出来了,如果有感兴趣的可以到我的博客上看看,
https://2heal1.github.io/interview/
全部评论
(4) 回帖