在2019年末的时候,突然想搞点大事,思来想去,感觉只有跳槽是最刺激的。

由于我比较懒,不想换城市,所以这次只面试了头条、微信和 shopee。十分幸运,都拿到了 offer。接下来就简单的说下大家关心的面试题吧。问题的答案的话,之后有空我再补一下吧。

由于我之前的公司是有专门的重构工程师写 css  样式的,所以当面试官开始问 css 的时候,我都会跟面试官说我对 css 可能不是很熟,讲明原因。

头条

一面

  1. position 有哪些属性

  2. position: sticky 用过没,有啥效果

  3. typeof 的原理,与 instanceOf 、 Object.prototype.toString.call() 的区别


  1. react 有哪些生命周期函数,分别讲下每个生命周期函数会在哪个时候被执行。

  2. react 哪些生命周期可以 setState

    提供一个 VDOM 对象,写一个 render 函数来让他变成一颗 DOM 树。(比如大概长这样)

    {  type: 'h1',  props: {    className: "",    style: "",  },  children: [] // 嵌套节点}
  3. 来都来了,简单写一个快排吧。

二面

  1. 0.1 + 0.2 === 0.3 吗?为什么?(计算机的底层都是由二进制来表示的,对于 0.1和 0.2 这种数字在用二进制储存的时候会有精度误差)

  2. 实现一个算法,来完成字符串相加,比如 "111" + ”2222“ = ”2333“。(高精度算法)

  3. 问我最近对什么技术感兴趣,说来听听。(这里聊了好久,至少有半个小时)

    跟面试官聊了挺多。主要有

  • react 为什么是平台无关的框架,如何实现的。(依赖注入)

  • PWA

  • WASM

  • v8引擎 如何执行 js 代码(这一块我不熟,我就简单聊了编译原理,代码的编译过程)

  • AST 以及 AST 有啥应用 (babel/ Tree-shaking 以及之前有人用 AST 来实现 微信小程序动态执行代码)

img 标签间距问题的原理以及如何解决

深度拷贝

头条三面和四面都是后台大佬面试我,所以基本没问前端的知识

三面

  1. DNS 查询的过程,分为哪两种,是怎么一个过程(分为 DNS 递归查询和迭代查询,具体有什么区别可以查查)

  2. 如果你发现有个网站你突然打不开了,有哪些可能。(发挥想象,断网啊,DNS 解析出现问题,代理服务器出现问题,流量被劫持了等等)

  3. 有一个"123456789101112131415....n+1"类似这样的序列,求出第m位的数字

    m=11的话,那么答案是0

    m=12的话,答案是1

  4. 有一个有序递增序列,求有多少个不同的数字。比如 [1, 5, 7, 7, 8, 9, 9]。里面总共有5个不同的数字:1, 5, 7, 8, 9

  5. 聊聊人生聊聊未来

四面

  1. 红黑树和哈希表的对比

  2. 哈希表如何解决冲突

  3. 线程和进程的区别

  4. 场景:有一个应用会经常创建、删除节点对象,如何优化。(节点池)

shopee

一面

  1. react 中写类组件的时候,如何解决方法 this 丢失问题

  • 在 constructor 里使用 bind

  • 箭头函数

使用 bind 和箭头函数的区别

react 生命周期中,在新版本有些将被废弃,也新增了一些生命周期,讲一下?

setState 是异步还是同步

VDOM 渲染原理

实现一个方法,将传入对象的下划线命名方式全部换为驼峰式(考虑递归的场景)。比如

// beforeconst obj = {  first_name: 'chen'}// afterconst obj = {  firstName: 'chen'}

二面

  1. es6的模块管理 与 commonjs 的对比

  2. es6 Decorator

  3. es6+ 新特性

  4. 聊项目

  5. Base64 的原理?编码后比编码前是大了还是小了。

  6. 非递归实现树的后序遍历。(这个比较有意思,大家可以试下)

微信

微信其实大部分都是在聊项目,以及问项目相关的东西。一面前会先给个笔试题,做完后才开始面试。

一面

  1. leetcode-cn.com/problems/in…

  2. leetcode-cn.com/problems/va…

  3. 这道题最难。。我使用了回溯法来做,不过不是正确答案,虽然刚好把测试用例都过了。leetcode-cn.com/problems/sp…

  4. setTimeout 的原理

  5. 聊项目

二面

二面的时候是晚上10点多。。我都没想到会这个时间点打电话来面试,我当时正在开开心心的打游戏呢!

  1. 前面基本都是在聊项目

  2. react 和 vue 的区别

  3. SPA渲染的优缺点

  4. 对前端框架的看法(只是解决问题的工具,并不拘泥于具体的框架)

应该还有一些问题,不过太久,当时也太紧张了,不记得了。

三面

  1. 了解微信小程序的底层实现吗(这里其实可以参考下微信的官网,之前做了个汇总,可以看下)


  1. 聊项目

  2. 最近比较关心的技术

总结

每一个面试环节,都必不可少的有以下环节

  • 自我介绍

  • 聊项目

  • 面试题

面试题的话,算法题是少不了的。大家可以多去 leetcode 刷下题目(虽然我也没刷多少)。这里我介绍下我当时刷的两套题

  • leetcode-cn.com/explore/int…

  • leetcode-cn.com/explore/int…

建议在面试前先准备好一段自我介绍的台词,并且对简历的项目要比较了解,可以对面试官可能提出的问题先做好答案。那么祝各位大佬们开开心心!!

本文地址在->本人博客地址, 欢迎给个 start 或 follow

源自:https://juejin.im/post/5e70f5d351882549453882f6

声明:文章著作权归作者所有,如有侵权,请联系小编删除。

感谢 · 转发欢迎大家留言

react 前端解析二进制流_一年半前端跳槽面试经验(头条、微信、shopee)相关推荐

  1. 一年半前端跳槽面试经验(头条、微信、shopee)

    一年半前端跳槽面试经验(头条.微信.shopee) 在2019年末的时候,突然想搞点大事,思来想去,感觉只有跳槽是最刺激的. 由于我比较懒,不想换城市,所以这次只面试了头条.微信和 shopee.十分 ...

  2. js图片转二进制流_为了安全问题后台返回前端得文件为二进制得流,我们该如何处理这些流文件...

    1遇到问题得场景:本来后台返给前端得图片,音频,视频等文件前端直接就能访问到!可是为了安全前端要在次请求这个路径而且还要加进去一个请求头.请求成功后后台返回你二进制得流!然后前端在解析这个二进制得流才 ...

  3. 前端将二进制数据流转为文件_前端通过二进制流下载文件

    JS下载文件两种方式总结: 下载文件主要分为两种形式,具体使用哪种方式取决于后台: 1.如果后台服务器的静态目录有可供下载的静态资源,后台接口返回文件路径,直接window.location.href ...

  4. springmvc使用谷歌captcha生成图片验证码,并将验证码图片以二进制流的方式返回给前端(app和pc端都能调用)

    近期对登录注册与获取短信验证码的接口做了安全限制,其中一部分就用到了谷歌的captcha验证码,比如当用户连续三次登陆失败,那么之后的登录请求就需要用户输入谷歌的图形验证码.由于web端和app端调用 ...

  5. 前端 导出二进制流文件

    前端 导出excel文件 日常项目 会经常碰到 导出pdf excel world 文件,正常来说后端都会返回一个下载链接.前端只需要放到点击事件打开即可,但是有的时候 也会返回一个二进制流文件.看起 ...

  6. python 变量转二进制流_将图像转换为二进制流

    我的应用程序有两个方面,一方面,我使用C++来从PrORA的EBOSK SDK读取相机的帧.当第一次接收到该流时,在将缓冲器转换为图像之前,我能够一次读取流16位,以便对每个像素执行一些计算,即,对于 ...

  7. web前端网页设计作业_如何学习网页前端设计培训?

    学习网页的前端设计分为几个步骤或者说几个网页设计教程大类. 一个是熟练掌握各种网页设计需要的操作软件,然后就是WEB界面设计与项目设计,最后还有WEB整站设计实训. 如何学习网页的前端设计呢? 许多零 ...

  8. h5如何上传文件二进制流_前端H5中JS用FileReader对象读取blob对象二进制数据,文件传输...

    HTML5中的Blob对象只是二进制数据的容器,本身并不能操作二进制,故本篇将对其操作对象FileReader进行介绍. FileReader FileReader主要用于将文件内容读入内存,通过一系 ...

  9. 前端下载二进制流文件

    更多文章 平时在前端下载文件有两种方式,一种是后台提供一个 URL,然后用 window.open(URL) 下载,另一种就是后台直接返回文件的二进制内容,然后前端转化一下再下载. 由于第一种方式比较 ...

最新文章

  1. 打包的时候不把配置文件加进去_webpack区分developement和production打包
  2. Vue使用全局样式,页面没有发生变化:逗号是中文的,引起错误,样式不变化 也没有报错就是不起作用
  3. 迭代列表不要For循环,这是Python列表推导式最基本的概念
  4. 35岁程序员惨遭裁员,找了6份兼职,晒出收入网友:“打工皇帝”
  5. C#的变量、数据类型转换、转义符
  6. 怎样学好python编程-怎样学习python编程?
  7. Android上SQLite的性能优化问题
  8. Springboot 默认加载文件(可直接访问、不可直接访问)是出现的问题
  9. 用python实现猜数字游戏
  10. 移动端2倍图和3倍图的处理方法
  11. 介绍一下完整接收一帧数据的方法
  12. 大学计算机课要怎么学,大学计算机课学结
  13. 基于Syntiant TinyML Board与Edge Impulse的LED语音控制(Arduino/C++)
  14. 在Ubuntu安装Deepin软件
  15. 执行celery -A tasks worker --loglevel=info报错
  16. Python | 人脸识别系统 — 活体检测
  17. 月薪30K的90后程序员,下班后都在干什么?
  18. 安卓sip话机/一款基于linphone开发的,安卓sip话机客户端
  19. 使用docker安装nextcloud
  20. 【信息技术】【2005】基于互信息的数字化重建射线照片与电子束图像配准

热门文章

  1. Flask爱家租房--订单(下订单)
  2. linux怎么删干净mysql,linux怎么干净卸载mysql
  3. 【Nginx】通过反向代理配置本地图床功能
  4. 计算机系统遵循,自考《计算机系统结构》第10章精讲
  5. 爬虫cookie过期_python instagram 爬虫
  6. 精读linux源码,Linux基础入门的操作精读.doc
  7. Android Ac 控件,Android控件--MultiAutoCompleteTextView
  8. C语言那年踩过的坑--局部变量,静态变量,全局变量在内存中存放的位置
  9. 当年年仅18岁韩寒舌战群儒,受尽冷嘲热讽!
  10. JDBC连接数据库(Java DataBase Connectivity,java)