首页 > 分享一些前端大厂凉经
头像
2heal
编辑于 2020-05-21 18:08
+ 关注

分享一些前端大厂凉经

春招基本结束了,虽然没进入想去的大厂,但基本都去面试过了一些...现在分享下面经,希望能给后面的学弟学妹有所帮助吧

由于时间比较久有些面试题记不太清楚了,这里久分享一下记得住的题目

字节跳动-data(三面挂)

一面 (60min)

  1. 前端性能优化
  2. https
  3. Vue eventBus
  4. 动画 animation
  5. osi 七层模型
  6. xss && csrf
  7. 跨域解决方案
  8. coding 题:
    将下列格式转换为另一种格式
{
  HappyPack:1,
  UserName:1,
  CompleteData:{           =>
    PhoneNumber:132
  },
}
{
  happy_pack:1,
  user_name:1,
  complete_data:{
    phone_number:132
  },
}

二面 (30min)

  1. 项目介绍
  2. coding 写一个 vue 计算器组件
  3. coding 一段动画的实现
  4. coding 题目忘了...

三面 (50min)

  1. 项目介绍
  2. 计算机网络
  3. 圣杯布局、双飞翼布局
  4. 手写 promise
  5. 情景题:双十一抢购设计倒计时

字节跳动-抖音短视频(三面挂)

一面 (60min)

  1. osi7 层模型
  2. http 报文内容
  3. https http2.0
  4. 非对称加密发生在什么时候
  5. DNS 劫持
  6. xss && csrf
  7. 跨域解决方案
  8. Promise 设计模式
  9. node
  10. coding 把驼峰转下划线

二面 (30min)

  1. 项目介绍
  2. coding 写一个 vue 父子组件双向绑定
  3. coding 获取页面所有节点,并且输入 1-n 返回相应数量排序的节点,比如 div 数量最多,则输入 1,返回 div,如果不存在返回 null

三面 (50min)

  1. 先做题:
实现方法,判定给定的任意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
  1. webp png 区别
  2. 懒加载
  3. 动态表单
  4. webpack

shopee新加坡(三面挂)

一面 hr 面 (30min)

一开始用英文自我介绍,后来又要结合项目,实在英语说不出来了,面试官来了一句:那我们说中文吧...

  1. 自我介绍
  2. 项目介绍
  3. coding 排序,并计算复杂度
  4. 为什么投递 shopee
  5. 为什么要来新加坡
  6. 对于薪资的要求

二面 (100min)

主要是三块考察 js css web development

js:
主要是两道题目,需求会不断变化

  1. 写一个字符串缩写函数
    example: internationalization => i18n
    alias => a3s
    如果字符长度<4,则输出全部字符
    num => num
    并且可能输入一个句子,字符内容是只包含 a-z A-Z,其他均为分隔符
    '-important-num-alias' => "-i6t-num-a3s"

  2. debounce 防抖函数
    需求 1:常规防抖
    需求 2:要求在第一次调用时候,立即执行,后面调用的时候如果还在 wait 时间内,则不会调用,并且就算重复调用,也不会延时执行 2:要求在第一次调用时候,立即执行,后面调用的时候如果还在 wait 时间内,则不会调用,并且就算重复调用,也不会延时执行

example: debounce(func,wait) wait=500ms
0ms debounce 立即执行
100ms debouce 不执行
200ms debounce 不执行
700ms nothing happened
800ms debounce 立即执行

css:

  1. position 有几个值以及作用
  2. display:block | display:inline 区别以及作用
  3. display:flex 相对于的值以及应用(主要是三栏布局然后问了下设置 flex-grow:1,flex-shrink:1,布局会发生什么变化)

web development:

  1. cookie session 区别以及使用方式和场景
  2. cors
  3. 除了 cookie session 还有什么验证方法(我说可以用 token jwt,然后问我流程是怎么样的,怎么验证 token)
  4. https 和 http 区别
  5. 在 tls 不对称加密中的客户端是怎么验证证书的
  6. https 怎么防止中间人攻击
  7. 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)

  1. xss && csrf
  2. jwt
  3. 设计验证方式
  4. 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]

  1. 实现一个实数的堆栈,使得其 push pop max 方法的时间复杂度为 O(1)

  2. 有一个整数二维数组,每行的元素个数不同,输出它的全排列,同一行的数互斥。要求不使用递归完成

4.实现一个函数,检查二叉树是否平衡。
平衡二叉树的定义如下:任意一个节点的左右子树高度差不超过 1。假设二叉树节点一共有 N 个节点,要求算法时间复杂度不超过 O(N)。
递归判断每个节点的左子树和右子树,遇到树深大于 1 的就算得到解。

  1. 实现一个 Http 请求池,需要能够限制并发数

接下来在开始面试:

  1. 项目介绍
  2. xss csrf
  3. eventLoop
  4. 其他忘记了

二面 (60min)

也是一样,先做题:

  1. 合并二叉树
  2. 奇偶链表
  3. 字串问题

开始面试:

  1. 对之前算法题询问,看是否有更优解
  2. ssr && csr
  3. ssr 原理 ,如何实现
  4. 做过的性能优化

还有其他的就不贴出来了,如果有感兴趣的可以到我的博客上看看,
https://2heal1.github.io/interview/

更多模拟面试

全部评论

(4) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐