前几回的面试,让我对于一个前端工程师须要掌握的知识体系有了一个全新的认识。以前本身在学习方面一直属于野路子,没有一个很规范的学习路径,每每都是想到什么就去学什么。并且基本都是处于会用的那种水平。并无真正的作到知其然且知其因此然。面试基本都没有经过,我本身也明白了本身在那些方面须要深刻学习。javascript
前端面试有不少知识点,由于前端本就涉及到多个方面。当我彻底抱着背的想法去应付面试官的问题时,我发现我很害怕面试官深刻的去提问。由于内心知道,我是不知道的,我只是背的。让我想到了高中的考试,也很怕考那种证实题,由于对概念和原理,掌握的不透彻。 看了这么多的优秀的文章,还有一些本身的检讨思考。我以为对于大部分的初级前端来讲,要改变本身对于这些知识点的态度,才能更好的去理解这些知识点的原理,面对面试官的话,就算你不懂,你也不会虚,由于你会有本身对于这个关键词的理解。 就像大学的课程同样,在大一大二思惟不成熟的时候,面对那些课程决定它们对于我敲代码并无什么做用,有那个时间我还不如多背几个API。到后面,编程的时候会考虑风格,性能,交互等方面的时候,我才发现以前学习的课程都是有用的,只是当时编程能力没有跟上,并无动力驱动咱们去深刻理解并使用。 因此这里我也以为,你学的都是有用的,可是有些并非当时就会发挥做用的。css
关于前端面试会提到的知识点,在我稍微看了一下《webkit技术内幕》
以后,我以为按照浏览器内核中的不一样功能去理解会有更好的效果。html
网络部分涉及到的就是HTTP请求
,由于咱们访问网页的过程就是经过特定的URL
来得到相应的资源(数据或文件)。 那么关于HTTP
就有前端
经过以前的网络请求,咱们能够获取相应的文件,那么这些文件存放在本地磁盘中。而像文件上传,cookie的存放,以及浏览器提供的数据库,都是存放在本地的,浏览器提供了一系列的API去操做这些文件。vue
当咱们获取到了一个html文件,咱们开始解析,首先根据文件的<! doctype>
声明去解析这个网页,构建DOM树,这是css
也在下载,由于css层叠样式表
,下载成功以后根据多方来源开始计算最终的css效果,而后与DOM树相结合,造成渲染树再开始绘制再浏览器界面。解析网页的时候,遇到script的时候会开始执行相应的代码,阻塞DOM树的生成。 那么这个过程就涉及到了:java
由于javascript是单线程的解释型语言,从上到下解释运行。可是js中又有异步的概念,这就又引出了事件循环这个概念:react
经过浏览器的这几个模块,咱们了解了一些知识点,可是还有其余的,好比性能。 对于性能的优化,也能够从这几个方面去理解。性能在前端减小一个页面加载的时间。web
对于SEO的话,咱们主要是为了在搜索的时候让本身的网站排名靠前。那么咱们能够理解一下网络爬虫,而后对于这方面的优化就会有一个大概的理解。 网页爬虫,经过一个入口,访问符合规则的不少URL,来得到页面,经过解析页面标签的结构,来存放一些关键信息。 好比网页head
中的title,meta
的describe,keywords。还有一些内容,可是由于爬虫并非浏览器,因此通常不能在遇到script、link这些须要额外发起网络请求的资源并解析,因此对于大部分只是分析静态的页面。 那么,咱们就能够知道:面试
对于整个基础前端知识,我先分析到这里。由于对于vue react
这样的前端框架我还不是很熟练,在这方面不能提供很好的学习思路。 但愿你们能找到适合本身的学习方式并构建属于本身的知识体系。数据库