Github 专栏
原文地址: 这里
有时候前端的技术性面试还是很麻烦的,毕竟知识点那么多,框架迭代那么快。你不仅仅要对计算机科学基础有一个坚实的底子,还需要理解啥Web性能、构建系统以及CSS引擎等等。现在确实也有不少的相关面试的资源,(译者推荐 Front-end-Developer-Interview-Questions :H5BP出品的一系列的前端问题,不过感觉有点杂而老),不过其中比较全面的还是不多,因此我在这嘎达列个提纲,希望能对你下次面试有所帮助。
有些链接被墙,请自备梯子
面试之前
在面试之前,你要先问问你这个面试的形式。有些面试时直接在白板上面画画圈圈,而有些呢会在一个在线的编辑器里面,就像CoderPad这样的,让你现场写一些代码,提前了解你面试的环境还是非常重要的。除此之外,还需要了解下你这次面试的主题,因为有些公司除了会问你一些前端相关的问题之外,还会问你一些搜搜、排序算法相关的问题。
前端概念
HTML、CSS、JavaScript以及JavaScript设计模式都是面试中的一些关键的概念,保证列表中的每一项都了熟于心。
HTML与CSS就像前端开发中的面包和黄油,在面试的时候也会问到HTML与CSS很多细节方面,有时候也会让你现场写一些布局啊啥的。一些基本的概念列举如下:
-
CSS animations
-
CSS sprites
-
Pseudo classes
-
Grid systems
-
Semantic markup
除了这些概念之外,知道一些CSS的预处理器譬如 SASS 或者 LESS 以及他们的优势。另外知道一些CSS命名空间方面的知识,譬如 BEM and OOCSS 也是极有用的。另一个关于CSS方面的要点,就是对于CSS的最佳实践,这嘎达推荐一个Medium提供的 实践指南 ,包含了Medium如何更新迭代他们的最新框架。
早前我在文中就提醒过可能一些面试官会让你用HTML与CSS重构一些布局,譬如在CodePen中的一些实践,也可以参考 Dribbble 中的一些实例。最后,作为一个前端工程师,我们常常会在编辑器里面修改一些代码然后在浏览器里面查看最终的效果。不过在面试的时候往往不会有这种权利,所以你在准备面试的时候一定要尽可能地尝试不用看显示效果就能较好地调试代码。
如果说HTML与CSS是前端开发中的面包与黄油,那么JavaScript就是那边餐刀。一般而言在你的整个面试过程中面试官会花费很多的时间问你有关JavaScript的知识,这些问题可能攘括以下方面:
-
Prototypal inheritance
-
Scoping
-
Closures
-
The event loop
-
Event bubbling
-
Apply, call, and bind
-
Callbacks and promises
-
Variable and function hoisting
-
Currying
当你面对一个JavaScript问题时,搞明白你这个问题到底归属于哪个概念会有助于你更快地寻找到某个正确的解决方案。你可以在 这嘎达 , 这个嘎达 , 以及 这嘎达 测试下你的JavaScript知识。
设计模式能有助于你以可复用的方案来解决常见的问题,这里列举了几个常见的设计模式:
-
Decorator
-
Factory
-
Singleton
-
Revealing module
-
Facade
-
Observer
-
MVC , MVP , MVVM
除了这些常见的JavaScript设计模式之外,你还要对常见的JavaScript的框架熟悉。当然,这并不意味着你就要去学习一个新的框架,不过你要能够理解为虾米那些前端团队会去使用这些框架。另外,如果你要去面试的团队使用的是譬如React+Flux或者Angular这样的流行框架,你也要提前看下他们的文档,了解下他们的架构。
Computer Science
某些公司会在招聘前端开发者之前招聘些软件工程师,这也就意味着这些公司会期待面试者拥有一些譬如软件设计原则、可扩展的代码架构以及测试这些方面的知识。不过你的面试官一般都会先提醒你要了解下数据结构啊、算法啊这些方面的知识,否则的话你可以暂时忽略这个部分。即使你并不是计算机科班出身,也不需要紧张,大部分这里的概念还是很好理解的。
这里有些常见的数据结构应该常常存在于您脑子里。不要老纸上谈兵,找个地方去实践他们。如果你并不是很熟悉单元测试,那可以选个测试框架,譬如 Mocha 来测试你的数据结构算法。
-
Linked lists
-
Hashtables
-
Stacks
-
Queues
-
Trees (binary trees and heaps)
-
Graphs
Note: 对于图方面的知识而言,你需要了解怎么实现深度优先于广度优先遍历。在学习数据结构的时候,可以参考 SanFoundry 。虽然这里的代码都是Java作为例子,不过把它们改写成JavaScript还是很轻松的。
在你觉得你的数据结构已经很有信心之后,你可以来了解基本的排序算法。可以参考以下的列表,首先也要了解下基本的算法时间和空间复杂度的概念: time and space complexity 。
-
Binary search
-
Bubble sort
-
Insertion sort
-
Merge sort
-
Quick sort
-
Selection sort
在了解了数据结构与算法之后,可以在 Leetcode 上进行实践,也可以看看 一些技术性的JavaScript问题 。
Wrapping it up
祝大家好运~

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

HTML的作用是通过标签和属性定义网页的结构和内容。1.HTML通过到、等标签组织内容,使其易于阅读和理解。2.使用语义化标签如、等增强可访问性和SEO。3.优化HTML代码可以提高网页加载速度和用户体验。

htmlisaspecifictypefodyfocusedonstructuringwebcontent,而“代码” badlyLyCludEslanguagesLikeLikejavascriptandPytyPythonForFunctionality.1)htmldefineswebpagertuctureduseTags.2)“代码”代码“ code” code code code codeSpassSesseseseseseseseAwiderRangeLangeLangeforLageforLogageforLogicIctInterract

HTML、CSS和JavaScript是Web开发的三大支柱。1.HTML定义网页结构,使用标签如、等。2.CSS控制网页样式,使用选择器和属性如color、font-size等。3.JavaScript实现动态效果和交互,通过事件监听和DOM操作。

HTML定义网页结构,CSS负责样式和布局,JavaScript赋予动态交互。三者在网页开发中各司其职,共同构建丰富多彩的网站。

HTML适合初学者学习,因为它简单易学且能快速看到成果。1)HTML的学习曲线平缓,易于上手。2)只需掌握基本标签即可开始创建网页。3)灵活性高,可与CSS和JavaScript结合使用。4)丰富的学习资源和现代工具支持学习过程。

AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。

如何设计菜单中的虚线分割效果?在设计菜单时,菜名和价格的左右对齐通常不难实现,但中间的虚线或点如何...


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

记事本++7.3.1
好用且免费的代码编辑器

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器