千锋教育-做有情怀、有良心、有品质的IT职业教育机构

400-811-9990
当前位置:首页  >  技术文章  >  正文

千锋Web前端培训讲师对前端岗位的分析

时间:2019-02-27 14:40     来源:千锋教育 作者:千锋老师

  本文由千锋web前端培训机构讲师根据多年丰富的面试经历和岗位分析,对前端面试的技术栈,各大公司面试特点,进行简要的分析 ,随着我的秀发越来越少可以说我们积累的经验越来越多,在此给大家进行一个简要的分享。

  先说前端的技能, html , css , JavaScript , jQuery(源码部分) , nodejs , vue , react ,设计模式, 这些技术栈还是要具备的,当然框架的话2选1即可。

QQ图片20190227143822

  现在大公司的要求绝大多数以原生JavaScript为根本,例如腾讯,阿里等互联网头部企业,在面试前端时对原生的要求非常之高,而且以腾讯为代表的一系列公司非常喜欢让你在面试过程之中手写代码,所以如果准备面试腾讯的小兄弟们,一定要提前做好准备。

  列举我们熟悉的腾讯,我们先看一下qq音乐前端工程师招聘的要求:

  · 至少三年以上从事JavaScript开发的经历;

  · 扎实的 javascript 基础知识;

  · 能够熟练运用 HTML、CSS、JavaScript 开发高性能的web应用程序;

  · 熟悉Web性能优化, 有性能优化实践经验;

  · 具有良好的代码风格、接口设计与程序架构意识;

  · 具有良好的沟通能力和团队合作精神;

  · 思路清晰,的分析问题和解决问题的能力;

  · 加分项:计算机专业或软件工程等相关专业;

  · 掌握服务器端编程语言并有实践经验;

  · 持续坚持写技术博客1年以上;

  · 对开源项目有贡献;

  · github个人原创项目有50个星以上;

  · 在业界技术大会有过分享

  · 良好的借力意识(站在巨人的肩膀上);

  · 良好的软件工程意识;

  · 对技术有持续的热忱和激情;

  · 热爱音乐。

  我们可以根据需求分析出哪些东西那 ?

  首先聊一下腾讯的背景, 腾讯前端是以原生JavaScript为主,所以对JavaScript的要求一定会很高, 那么这个高要求和高标准大概有多高那 ,面试官通常会以丰富的经验给你各种各样的组合拳, 这一套又一套的组合拳着实打的新手摸不着头脑 ? 我们先来分析一套原生组合拳 :

  原生 javaScript组合拳

  问 : 基本类型和引用类型的区别。

  答 : 基本类型是存储在栈之中的值,引用类型是存储在堆中数据的地址。

  问 : 可以举例说明一下JavaScript之中的引用类型有哪些么?

  答 : Object , function , Array , Set , Map

  当然了,面试JavaScript 肯定离不开原型链和作用域链,那么什么是作用域链?这个其实是说来话长的一个话题,因为在这里给大家阐述下我个人的一些理解 :

  函数在执行的过程之中会产生一个临时存储数据的对象,这个对象我们称之为activeObject,简称AO,每个函数在执行时都会在栈里面存上这么一个东西,以便于储存期中的局部变量。但是js有全局变量的概念,也就是在局部中可以访问全局的数据,怎么访问那? 当然是由内自外的冒泡访问,但是如何由内自外,这个以包含关系决定访问顺序就是传说中的作用域链。

  接着来说原型链, 这个是实例对象访问方法和共用数据的一个顺序,也是由内自外的。

  接着会顺着继续向下问一些关于闭包,内存泄漏的问题。

  闭包问题, 其实就是两个函数嵌套,产生了两个嵌套的活动对象,子活动对象存储了父级活动对象的属性,从而导致外部函数的局部变量被子活动对象保存的一种JavaScript特性。

  用代码表示一下:

  function outer(){

  var freeVar = “hello”

  }

  这是一个外部函数会产生一个 AO , 这个AO是因为outer 函数执行而创建出来的,所以我们暂时命名为 AO(outer).

  闭包自然少不了函数的嵌套 :

  function outer(){

  var freeVar = “hello”;

  function inner(){

  console.log(freeVar);

  }

  return inner;

  }

  但凡是在AO(outer)内部创建的函数引用了外部的变量那么妥了,闭包就产生了。

  收起你的黑人问号脸,来看一下我的解释 :

  Inner函数执行时当然也会产生AO ,那么这个AO我们取名叫做AO(inner), ok 在这个ao中我们干了些啥? 是不是引用了外部函数的变量 freeVar ?

  对啊,肯定用了,但是你只是用了freeVar 这么简单么 ? no,no,no , 其实在内部函数之中我们引用的是 AO(outer).freeVar。

  好了我们这个时候来看一下,AO是个啥 ? 是个对象啊, 既然是对象那这货是不是一个引用类型,引用类型存在于内存之中不? 存在,那么恭喜你,这个AO.freeVar 不会想普通的局部变量在函数结尾被删除了, 而是被保留在了内存之中。 这,就是闭包。

  基本上这一套下来,你对JavaScript的理解,对JavaScript原理和机制的理解面试官也就了解的比较透彻了 , 接下来会考察一些知识的广度,当然这些问题都是比较简单随意也是比较容易得到答案的,所以在后面的部分我就只列举问题。

  布局和页面性能 :

  这个就是考察基本功的时候了, 布局可以说是一个前端常用的技能,所以会根据各种需求提问,当然同样重要的还有一些优化细节,比如:

  重绘和回流分别都是什么 , 哪个性能消耗的多? 应该如何去提高性能 ?

  各种居中。

  命名空间和命名方式。

  移动端rem布局,百分比布局,响应式布局。

  HTML标签的语义化

  JavaScript多线程。

  http请求优化

  算法设计模式

  基本排序算法的理解,比如快排,冒泡等排序算法总要知道一个吧 , 这种东西提前准备总是没坏处 。

  设计模式这种东西就是一个没啥卵用的大框框, 但是有写设计模式确实很有借鉴的意义,比如观察者模式,策略模式,可以让代码加优(zhuang)雅(bi)清晰。

  Ok , 今天的面试分析暂时就进行到这里,其实在面试过程中问到项目业务的情况也非常多见,因为前端面试的多样性,每次大公司的面试其实都是对我们技术栈和学习能力的一次挑战,在不断的进步和学习之中,完善自我,持续进步,丰富自己的经验,愿世界和平,秀发长存。

相关文章

  • 北京总部地址:北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
    北京沙河校区:北京市昌平区沙阳路18号北京科技职业技术学院广场服务楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 深圳校区地址:深圳市宝安区宝安大道5010号西部硅谷B座A区6层A605/B座C区1层108
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 上海校区地址:上海市宝山区同济支路199号智慧七立方3号楼2-4层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 广州校区地址:广州市白云区永平街永泰学山塘学山文化创意谷A1栋六楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 郑州二七区校区地址:郑州市二七区航海中路60号海为科技园C区10层
    郑州高新区校区地址:郑州市高新区金梭路与银杏路交叉口教育科技产业园南门D座4层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 大连校区地址:辽宁省大连市高新园区爱贤街10号大连设计城A座901
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 武汉金融港校区地址:武汉市东新区光谷大道77号金融港B18栋三楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 成都校区地址:成都市高新区肖家河沿街138号肖家河大厦三楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 西安校区地址:西安市雁塔区高新六路52号立人科技C座西区4楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 杭州旺田校区:浙江省杭州市江干区九堡旺田书画城A座4层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 青岛校区地址:青岛市市北区龙城路31号卓越世纪中心4号楼5层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 重庆校区地址:重庆市九龙坡区科园一路3号渝高大厦9楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 长沙校区地址:湖南省长沙市岳麓区麓谷企业广场A2栋三单元306号
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 哈尔滨校区地址:哈尔滨市松北区世泽路689号 科技创新城4号楼1101
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 南京校区地址:南京市建邺区应天大街780号弘辉产业园1栋2层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 太原校区地址:太原市小店区长治路230号能源互联网大厦6层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 沈阳校区地址:辽宁省沈阳市浑南区世纪路16号东大软件园B园B1座A201
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 合肥校区地址:合肥市包河区徽州大道396号东方广场B座12A
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 千锋教育服务号

    关注千锋学习站小程序
    随时随地免费学习课程

  • 千锋教育移动站

    扫一扫快速进入
    千锋移动端页面

  • 千锋互联服务号

    扫码匿名提建议
    直达CEO信箱