前端开发面试时需要了解的 10 个JavaScript概念 很重要很重要!!

前端开发面试时你需要了解的 10 个JavaScript概念

除了应付前端开发岗位的面试,在实际工作和使用 JavaScript 的过程中,你更应该掌握这些基本的概念。

自学 JavaScript
有很多人学习 JavaScript 和 Web 开发,并且希望找到一份工作。通常,自学会使人们对 JavaScript 语言本身的理解在知识盲点。

令人感到惊讶的是制作复杂的网页只需要很少的语言知识。实际上,那些能开发整个网站的人往往对 JavaScript 的基本原理没有很好的把握。

使用基本技能来避免复杂的问题和实现功能是相当容易的。通过 Stack Overflow ,在不理解被复制的代码的情况下,创建一个网站也是十分容易。

面试
问题是,许多技术公司在面试中提问时,目的是检验你对 JavaScript 是否真正理解。当求职者只是对 JavaScript 有粗浅的认识,而不是深刻理解这门语言,面试官会很快清楚是什么情况。

以下是在 Web 开发面试中经常被问到的概念。 当然,我们假设您已经知道诸如循环,函数和回调之类的基础知识。

概念
1、 原始值和引用值(Value vs. Reference) —— 了解如何将对象,数组和函数复制并传递给函数。要知道引用时复制了什么。理解原始值是通过复制值来进行复制和传递的。

2、 作用域(Scope) —— 了解全局作用域,函数作用域和块作级用域之间的区别。了解哪些变量在哪些地方可用。知道 JavaScript 引擎如何执行变量查找。

这里有相关译文:深入理解JavaScript中的作用域和上下文

3、 提升(Hoisting) —— 理解变量和函数声明会被提升到可用作用域的顶部。 理解函数表达式不会被提升。

也可以看看这篇文章:JavaScript 中的 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 中的一等公民,以及这意味着什么。 知道从另一个函数返回一个函数是完全合法的。 了解闭包和更高阶函数允许我们使用的技巧。

理解 高阶函数(Higher Order Functions) 在 JavaScript 函数式编程中的应用:

JavaScript 中的 Currying(柯里化) 和 Partial Application(偏函数应用)
一步一步教你 JavaScript 函数式编程(第一部分)
一步一步教你 JavaScript 函数式编程(第二部分)
一步一步教你 JavaScript 函数式编程(第三部分)
更多资源
如果翁中包含的链接不够说明,建议你自己搜索相关的资源来帮助你学习这些概念。

这里是我已阅读或观看的资源,至少有一些,可以推荐。大家也可以自行搜索相关的译文。

10道典型的JavaScript面试题
3个经常被问到的 JavaScript 面试题
You Don’t Know JS
JavaScript is Sexy
javascript.com
Frontend Masters
Eloquent JavaScript

祝你面试好运!如果你还有什么需要补充或者讨论的,欢迎留言。

猜你喜欢

转载自blog.csdn.net/weixin_52630329/article/details/111502603