HTML5学习路线资料,HTML5前端面试的技术栈

各位小伙伴大家好,现如今前端程序员编程可是相当的吃香。根据多年丰富的面试经历和岗位分析,对前端面试的技术栈,各大公司面试特点,进行简要的分析 ,随着我的秀发越来越少可以说我们积累的经验越来越多,在此给大家进行一个简要的分享。

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

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

原文地址:https://blog.51cto.com/14214237/2355659

时间: 2024-09-30 19:43:32

HTML5学习路线资料,HTML5前端面试的技术栈的相关文章

感谢各位亲们的大力支持,免费的HTML5学习课程《HTML5网页开发实例具体解释》连载已经结束了!

感谢各位亲们的大力支持,免费的HTML5学习课程<HTML5网页开发实例具体解释>连载已经结束了.  有兴趣的读者能够看我的博客,也能够看以下的链接逐个学习: 当里个当.免费的HTML5连载来了<HTML5网页开发实例具体解释>连载(一) 免费的HTML5连载来了<HTML5网页开发实例具体解释>连载(二)内容交互 免费的HTML5连载来了<HTML5网页开发实例具体解释>连载(三)DOCTYPE和字符集 免费的HTML5连载来了<HTML5网页开发实

好程序员前端学习路线分享模拟JavaScript中面向对象技术

好程序员前端学习路线分享模拟JavaScript中面向对象技术,在C#和Java语言中,面向对象是以类的方式实现的,特别是继承这个特性,类的方式继承表现出了强大的功能,而且也易于学习.JavaScript不是纯的面向对象的语言,而是基于对象的语言,对象的继承是以原型函数的形式继承的,很多初学者刚开始接触的时候不太理解,但是JavaScript这种以原型函数的形式实现面向对象技术,不仅是可行的,而且还为面向对象技术提供了动态继承的功能,本文主要讨论了JavaScript的面向对象技术.?一.原型对

html5该怎么样学习?零基础入门HTML5学习路线

纵观近几年HTML5的发展可以看出,HTML5开发持续上涨,腾讯.微软.谷歌等国际互联网企业都将HTML5的研发与使用放在了重要的地位.目前全球有超过十亿台手机浏览器支持HTML5,而微信小程序的开放,更是引爆了HTML5的开发浪潮.大量的HTML5游戏风靡全球,也充分体现了HTML5良好的发展势头. 有调查数据显示,高达83.27%的用户认为HTML5技术是大势所趋.而随着互联网时代的到来,使得HTML5的发展前景愈发的明朗,同样也增加了诸多企业对于HTML5高端人才的需求量. 目前,已经有越

HTML5 学习笔记--------》HTML5概要与新增标签!

一.HTML5概要 1.1.为什么需要HTML5 HTML4陈旧不能满足日益发展的互联网需要,特别是移动互联网.为了增强浏览器功能Flash被广泛使用,但安全与稳定堪忧,不适合在移动端使用(耗电.触摸.不开放). HTML5增强了浏览器的原生功能,符合HTML5规范的浏览器功能将更加强大,减少了Web应用对插件的依赖,让用户体验更好,让开发更加方便,另外W3C从推出HTML4.0到5.0之间共经历了17年,HTML的变化很小,这并不符合一个好产品的演进规则. 1.2.什么是HTML5 HTML5

Web前端自学之路学习路线,web前端开发网站

前端开发作为一个由网页制作演变成的新兴岗位,其实在国内外来说,受到重视的时间并不长,在前几年间技术快速的发展和其应用普及率的迅猛增长,使得前端人才市场一片盛况空前的景象,由于其的易入门性和不错的发展前景,吸引了众多前端爱好者和转行人员的青睐. 都说前端技术属于易学难精,其易入门性也是相对Java,python那些语言来说的,并不是说任何人可随便信手拈来,而且今天的"前端"并不等同于"美工",前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化.SEO和服务

go学习路线资料

编辑器 JetBrains公司出品的,goland go初步学习路线 Go 指南 如何使用Go编程 实效Go编程 Go by Example 中文版 参考: Go 语言学习资料与社区索引 Go入门指南 Go Web 编程 原文地址:https://www.cnblogs.com/spectrelb/p/9032046.html

Python学习教程(Python学习路线):Python面试100题(二)

Python学习教程(Python学习路线):面试题接着给大家整理! 16.<div class="nam">中国</div>,用正则匹配出标签里面的内容(“中国”),其中class的类名是不确定的 17.python中断言方法举例 assert()方法,断言成功,则程序继续执行,断言失败,则程序报错 18.数据表student有id,name,score,city字段,其中name中的名字可有重复,需要消除重复行,请写sql语句 select distinct

4个步骤带你搞定大数据,Linux到大数据学习路线资料(绝对必看)

Linux学习路线图 运维学习需要分为四个阶段: ①linux初级入门 ②linux中级进阶 ③linux高级提升 ④资深方向细化. 第一阶段:初级入门 Linux基础知识.基本命令(起源.组成.常用命令如cp.ls.file.mkdir等常见操作命令)Linux用户及权限基础Linux系统进程管理进阶Linux高效文本.文件处理命令(vim.grep.sed.awk.find等命令)第二阶段:中级进阶(基础运维) 中级进阶需要在充分了解linux原理和基础知识之后,对上层的应用和服务进行深入学

HTML5新特性,老生常谈——前端面试常见问题

找工作面试的时候有公司技术人员会问html5新特性,那这里就再复习一遍 1.新的文档类型 <!DOCTYPE html> 2.脚本和链接无需type <link href="css/bootstrap.css" rel="stylesheet"> <script src="js/Angular.js"></script> 3.语义化的Header 和Footer 这里通俗说下什么叫做语义化,就是:明