现在有很多人通过自学或其它途径学习JavaScript,希望借此获得一份工作。但自学JavaScript常常会让不少人对这门语言的理解存在很多知识盲点,比如能开发出复杂的网页,但JavaScript基础知识并不牢固。然而在JavaScript岗位面试时,通常面试官会检验你是否真正理解了JS。如果求职者的理解比较浅显,没有深刻掌握,技术资深的面试官很快就能看出来。
下面就为大家总结10个在web开发面试中经常问到的概念知识点,前提是你已经掌握诸如循环、函数和回调之类的基础知识。
- 基本数据类型和引用数据类型——理解对象(object)、数组(array)和函数(function)是如何被复制和传入到函数中的。理解引用数据类型复制的是什么。理解基本数据类型是通过复制值本身来复制和传递的。
- 作用域——了解全局域、函数用域和块作用域之间的差异。理解哪些变量可用于何处。知道JavaScript引擎如何查找变量。
- 变量提升——了解变量和函数声明会被提升到可用范围的顶部。明白函数表达式不可提升。
- 闭包——知道在函数具有其创建作用域的访问权限,并知道该特性能让我们做些什么,比如封装私有变量、变量储存和匿名立即执行函数(IIFE)。
- This——知道This的绑定规则。知道它的工作原理,以及如何判断在函数中它指代什么。还有知道为什么this非常有用。
- New——知道它与面向对象编程之间的关系。知道使用new调用函数时会发生什么,为何被new调用的函数被称为构造函数。理解通过使用new生成的对象是继承自函数的prototype属性。
- Apply,call,bind——知道每一种函数是如何工作的。了解如何使用它们。知道他们是怎样影响this的指代的。
- 原型&继承——了解JavaScript中的继承通过[Prototype]链进行工作。知道如何通过函数和对象来设置继承,以及new如何帮我们实现它。知道什么是__proto__和prototype属性,以及它们的作用。
- 异步 JS——了解事件循环。知道浏览器如何处理用户输入、web请求和事件函数的。知道怎样识别和编写异步代码。了解JavaScript中的异步和单线程分别是怎样的。
- 高阶函数——了解函数在JavaScript中是第一类对象以及这意味着什么。知道从另一个函数返回一个函数是完全合法的。了解闭包和高阶函数允许我们使用的技术。