秋招经历附超全前端(及移动跨端)面经
  刚拿到字节南京客户端(做的移动跨端方向)意向,给大家分享一下我的秋招历程以及前端面经。内容较多,包括: 
 - 秋招经历
 - 拿到的offer/意向
 - 我的前端学习顺序
 - 前端面经
 - 给下一届的建议
 
1.秋招经历
  先介绍一下自己,双非硕士,本科大二的时候开始接触前端,做过挺多前端相关的项目(此时的技术栈是html,css,js,jquery,php,mysql),也拿过不出名比赛的国一。 
    去年国庆结束后面试了我的第一家企业,南京地平线。那时候觉得自己手上有很多相关的项目经历,应该很稳的,结果被问的晕头转向,啥也不会。这时候的我,意识到了事情的严重性,赶紧回来学了  重新补了html,css,js基础,又学了nodejs,vuejs,刷牛客的剑指offer。 
   然后就到了今年年后了,开始投暑期实习,被阿里吊打,被字节吊打,总之就是被各种吊打,一边被吊打,一边记录面试中发现的知识盲区,并且把它研究透,一边再看别人的面经。面了好几家,发现他们用的react比较多,于是就又去学了react,刚上手感觉react比vue难得多,涉及js相关东西比较深,就又回头补了很多js关于对象,继承,this指向的东西再回头看react,感觉容易多了。react学完,看说字节客户端很缺人,前端不好进去那我就再试试客户端嘛,而且用前端去做跨端也很容易,于是接着学了react native。 
   这时候1~2面的面试经验已经挺丰富的了,面了华为消费者bg的暑期实习,啥都会很流畅,信心暴涨,这个结点开始,后面的面试就都好起来了(但华为笔试420分,面试全过,测评没问题,最后不喊我 去实习,我就很想吐槽)。然后就是提前批和正式批了,每天循环着刷leetcode,做笔试,搞面试,总结问题,很累,但多和朋友分享分享经历,过的也很快。 
   字节面了5次共11面,终于拿到意向,精诚所至,金石为开,这一刻我决定为字节卖命🤣。其他公司也面(挂)了挺多,总之面试经历还算挺丰富的(毕竟大规模面试持续了大半年) 
 2.拿到的offer/意向
  主投南京的有前端岗的公司,其他地方的顺带投投了。 
 shein,招银,苏宁,帆软,中兴,虾皮,滴滴,字节,华为(待定),小米(待定),焦点(待定)
3.我的前端学习顺序
我在b站看的视频比较多(b站大学毕业的我,骄傲了嘛?),也有看一些其他的东东,顺序如下
  pink老师的前端基础和进阶→coderwhy老师的flex布局→w3c+mdn+千锋教育的js(我更推荐你们看js红宝书)→穿插着刷算法题,看面经 →一个记不得啥老师的nodejs→coderwhy的vuejs→react官方文档→老陈的react native→《 白帽子讲web安全》(这本书真好,很多面试常问的web安全问题这里都有详细介绍,比网上的博客里讲的详细的多) 
 4.超全前端面经(不是为了写很多而写的,是真的被问过)
(1)html,http,web基础篇
- h5新特性
 - canvas相关
 - http和https的区别
 - http1.0,1.1,2.0,3.0特性,尤其keep-alive和2.0长连接,QUIC
 - http状态码,尤其301和302区别,304
 - http请求几种方法及区别,尤其get/post的幂等性
 - cookie,session,localStorage区别,cookie的长度限制
 - 前端性能优化方法
 - 浏览器输入url后发生了什么
 - websocket
 - 强缓存,协商缓存
 -     常见的块元素,行内元素,行内块元素
 - 懒加载
 - xss攻击
 - csrf攻击
 - 同源策略
 - cdn(和西天取经一个道理,唐僧取经之前,国内想看经书只能跑老远去西天看经书,唐僧取经回来,再去国内各地传播,之后各地的人想听佛法就去最近的寺庙听就好了)
 - dns
 - osi七层模型
 - 常用端口号
 
(2)css篇
- link和@import的区别
 - 盒模型
 - display:none,visibility:hidden和opcatity:0的区别
 - BFC相关
 - margin塌陷
 - 清除浮动
 - 选择器优先级
 - absolute定位是基于什么的
 - 水平垂直居中
 - css做圆形,三角形
 - 媒介查询相关的自适应布局
 - px,em,rem
 - 回流和重绘
 - 动画相关
 - flex布局
 - 精灵图
 - 伪类和伪元素
 
(3)js篇
- 闭包,内存泄漏
 - 作用域链,变量提升
 - let,var,const
 - 常用数组,字符串方法
 - map和foreach区别
 - js事件循环机制,宏任务微任务,async/await,读代码运行顺序
 - 原型链
 - 对象继承方法
 - new做了什么操作
 - bind,call,apply的区别,手撕源码
 - ajax原理,手撕源码(xmlhttprequest)
 - this指向
 - 设计模式,应用场景,手撕源码
 - promise,promise.all,promise.race源码手撕(让你写一个请求,5秒内执行完就返回执行结果,否则返回超时)
 - 垃圾回收
 - 基本数据类型
 - ==和===的区别
 - 隐式转换(坑1)var a=?;console.log(a==1&&a==2&&a==3);//返回true 坑2)为什么[]==![])
 - 如何判断数组
 - js动画和css动画区别
 - dom0级事件dom2级事件
 - 模块化
 - 防抖节流
 - 深浅拷贝
 - 事件流
 - 浏览器渲染过程
 - generator
 - 数组去重
 - 数组展平
 - typeof 和instance of
 - 为什么0.1+0.2!=0.3
 - 用symbol.iterator实现对象遍历(清晰的记得是b站的问题,难搞哦)
 
(4)webpack篇
- 怎么打包
 - 分包合包
 - 热更原理
 - loader和plugin
 
(5)vuejs篇
- 双向绑定原理,手撕简单源码
 - vue3新特性,proxy和defineProperty的区别
 - mvvm和mvc差异(和项目开发一个道理,小公司接小项目,boss从客户那接了单给程序员做,程序员做了给客户看,客户看了不满意找领导,领导找程序员,这么个循环就是mvc;公司大了,项目大了领导不管了,那就是客户需求和产品经理说,产品经理和程序员对接,程序员做完给产品经理看,产品再去把东西给客户,这就是mvvm)
 - 父子通信
 - 非父子通信
 - 生命周期
 - key的作用
 - v-if和
 - vue-router原理,路由如何跳转
 - vuex数据流向,mutation和action
 
(6)react及react native篇
- react和vue的区别
 - diff算法
 - 虚拟dom
 - setstate同步还是异步,具体过程
 - 事件代理
 - redux原理
 - hook
 - 生命周期
 - 容器组件和展示组件
 - 父子通信
 - 非父子通信
 - 高阶组件(高阶组件不是组件)
 - shouldComponentUpdate
 - react native性能调优
 
(7)其他
- 怎么理解大前端方向
 - LRU原理
 - 常用数据结构和算法
 - 线程和进程
 - 图片资源压缩显示
 - 前端性能检测
 - 伪随机算法
 
(8)主管/hr面问题
- 最有成就感的事
 - 最失败的经历
 - 最近读过什么书
 - 写过多少代码
 - 怎么和人合作编程,遇到矛盾怎么处理
 - 平时怎么学习的
 - 为什么选择学习这方面知识
 - 职业规划
 - 你有什么优点(与众不同的东西)
 - 你有什么缺点(别傻傻的光说缺点,说说你是怎么克服,或者绕开它们的呀)
 - 兴趣爱好
 - 平时作息时间
 - 更想从事什么样的行业?游戏,动漫,生活(外卖,买房等)(贝壳的问题,我选择动漫,用爱发电,他选择挂我🤣)
 - 有没有对象(灵魂拷问!!!😠)
 
(9)反问环节的参考提问
- 技术栈(前几家面试的时候问问,看看自己掌握的和市场需求是不是一样)
 - 岗位,业务(问就是核心业务!)
 - 团队规模(新团队的话,再考虑考虑咯)
 - 团队偏合作还是偏个人(个人觉得这个是个好问题,他说偏合作,你就说自己挺喜欢和人合作的,还能向前辈们学很多东西,他说偏个人,你就说喜欢这种锻炼个人能力的环境🤣)
 - 是否出差
 - 对方在这个公司干了多久(了解一下公司能不能留的下人)
 - 工作时长,加班情况
 - 福利待遇(往下的推荐在hr面再问)
 - 薪资构成
 - 新人培训机制
 - 一些其他的,比如工位大小(有的公司工位真的贼小),健身房,下午茶,食堂等等
 
5.给下一届的建议
  早了解市场行情,早决定以后的方向,早开始学习。 
   简历好好准备 ,很关键的。挑个清爽的模板,关键词放大,加粗,单令一行都行,稍微醒目即可,项目强调自己为了啥,用了啥,做了啥,遇到啥问题,怎么解决的,一开始被怼项目,自己做的  也会被问倒,不要怕,面试结束能查到问题就查,学不会就简历删掉这句话。b站,github,博客,或者自己构想的项目都可以实践一下,没有项目经历支撑的个人评价,直接说自己会什么语言什么框架统统是废话,简历尽量别说废话。  
   多投多面试,面多了就不紧张了,别人会问什么都在你的意料之中。emmm,啊这种卡顿时随口说的词,尽量少说,连续的说,听得难受。 
   刷算法题要明白原理,面对一道题能独立思考解决办法,独立写代码,独立debug,一直看别人的代码再写,很难成长。 
   可以看看牛客的算法课,左神讲的,从基础到深入,挺不错的,从牛客那里弄到了优惠码,我这里的链接点进去就会直接用上优惠码,上面两个班减200,下面的减300。 
       这个还挺好的,给大家推荐一下,牛客题霸 
    多看面经真的很重要,毕竟面试造火箭,上班拧螺丝。 
   有问题多问问上一届,同一届的,了解公司也好,交流进度也好,核对面试时间也好,闭门造车容易爆炸(面试爆炸,心态爆炸,各种爆炸) 
 以上内容有任何问题都可以直接指出,这篇帖子本意也是为后人服务的,可不能教错东西🤣。(看完给个赞嘛)
  
 
查看14道真题和解析