JavaScript是学习web前端开发必不可少的,很多小伙伴都通过自学或培训的方式能做到对JavaScript开发有一定的了解,甚至有些小伙伴通过查阅资料、拷贝现成的代码,能使用很少的语言语句实现功能复杂的网页效果,但是如果让他们自己去谈对JavaScript了解有多深时,他们往往都是一脸茫然,说不出个所以然来,尤其是去参加面试时,很容易让面试官感觉你对JavaScript是一知半解,其实导致这样的原因是你没有系统的掌握JavaScript基础知识,而在面试过程中你对JavaScript这门编程语言是浅显的认识还是深刻的理解,面试官很快就会清楚,下面我们列举了一些web开发面试中常见的概念,希望能加深大家对JavaScript编程开发的理解,参加面试更出色。
1、原始值和引用值(Value vs Reference)
理解对象、数组和函数是如何复制和传递到函数中的。了解引用值是被复制了什么,理解原始值是通过复制值来进行复制和传递的。
2、域(Scope)
理解全局域、函数域以及块级作用域之间的区别。了解变量在哪里是可用的,了解JavaScript引擎如何执行变量查找。
3、提升(Hoisting)
认识到变量和函数的声明会被提升到声明所在的上下文,即在变量的作用域内,不管变量在何处声明,都会被提升到作用域的顶部,但是变量初始化的顺序不变。认识到函数表达式不会被提升。
4、闭包(Closures)
认识到一个函数会保留对在其内部创建的域的访问,认识到这些可以让我们做什么,例如数据隐藏、内存化以及动态函数生成。
5、this
理解this绑定的规则。知道它的工作机制,知道在函数中如何判断它等同于什么,并且认识到为什么它是有用的。
6、new
认识到它如何与面向对象编程产生联系。了解通过 new 调用的函数会发生什么。理解通过使用 new 来自函数 prototype 属性的继承的对象是如何生成的。
7、apply, call, bind
了解这些函数是如何工作的,了解如何使用它们。了解它们对this做了什么。
8、原型和继承(Prototypes & Inheritance)
理解 JavaScript 中的继承通过[[Prototype]]链进行工作。理解如何通过函数和对象设置继承,以及 new 是如何帮助我们实现的。了解__proto__ 和prototype属性是什么,以及它们的作用。
9、异步JS(Asynchronous JS)
理解事件循环,理解浏览器是如何处理用户输入、Web请求和一般事件的。知道如何识别并正确实现异步代码。理解JavaScript中异步和单线程分别是怎样的。.
10、高阶函数(Higher Order Functions)
理解这些函数是JavaScript中的第一类对象以及这意味着什么,了解从另一个函数返回函数是完全合法的。了解闭包和高阶函数允许我们使用的技术。