不仅仅是面试,JavaScript 开发者都应该知道的十个概念

2017 年 9 月 6 日 开源中国 OSC-局长

点击图片参与开源中国九周年狂欢,机械键盘等你拿!!


自学


现在学习 JavaScript 和 Web 开发的人很多,他们都希望能凭此获得一份工作。然而,自学常常会使学习者对 JavaScript 语言本身的理解存在知识盲点。

实际上,令人感到惊讶的是,他们只需要掌握很少的语言知识就能制作复杂的网页,然而这样通常不能很好掌握 JavaScript 的基础知识。

使用基本的技能来实现功能和避免复杂的需求是相当容易的,通过依赖 Stack Overflow,而不理解复制来的代码以创建一个网站也是十分容易。


面试


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

下面是一些 Web 开发面试中常见的概念。当然,我们假设你已经熟知诸如循环、函数和回调这些基本概念。


概念



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 中的第一类对象以及这意味着什么,了解从另一个函数返回函数是完全合法的。了解闭包和高阶函数允许我们使用的技术。

大家还有什么补充的吗,在评论区和大家分享吧~

译自:https://codeburst.io/


OSC 九周年庆典,机械键盘等你来拿!!

8 月 31 日 - 9 月 8 日

活动期间(8 月 31 日 - 9 月 8 日)在《我们九岁啦!开源中国年度事件大盘点》文章评论区围绕“开源中国九周年”为话题进行留言,点赞数最多的用户将获得我们送出的终极大礼 —— 星兹 KOZMOZ 机械键盘!!第二、三名也将获得我们送出的九周年专属大礼包一份哦。



推荐阅读

超好用的 Linux 桌面个性化工具推荐

30 年编码经验浓缩的 10 条最佳实践

Spring 思维导图,让 Spring 不再难懂(cache篇)

GitHub 上最火的开源项目 —— Java 篇

点击“阅读原文”查看更多精彩内容

登录查看更多
0

相关内容

JavaScript 是弱类型的动态脚本语言,支持多种编程范式,包括面向对象和函数式编程。
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
打怪升级!2020机器学习工程师技术路线图
专知会员服务
98+阅读 · 2020年6月3日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
180+阅读 · 2020年1月1日
2020年你应该知道的8种前端JavaScript趋势和工具
前端之巅
5+阅读 · 2019年6月9日
你真的会正确地调试 TensorFlow 代码吗?
数据库开发
7+阅读 · 2019年3月18日
年薪48万的程序员,他究竟做对了什么?
机器学习算法与Python学习
7+阅读 · 2018年12月28日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
为什么你应该学 Python ?
计算机与网络安全
4+阅读 · 2018年3月24日
牛逼的数据科学家应该具有的8个习惯!
物联网智库
5+阅读 · 2017年12月3日
python数据分析师面试题选
数据挖掘入门与实战
6+阅读 · 2017年11月21日
Arxiv
22+阅读 · 2019年11月24日
Arxiv
12+阅读 · 2019年4月9日
Universal Transformers
Arxiv
5+阅读 · 2019年3月5日
Arxiv
4+阅读 · 2018年10月31日
Arxiv
19+阅读 · 2018年5月17日
Arxiv
7+阅读 · 2018年3月19日
Arxiv
27+阅读 · 2017年12月6日
VIP会员
相关资讯
2020年你应该知道的8种前端JavaScript趋势和工具
前端之巅
5+阅读 · 2019年6月9日
你真的会正确地调试 TensorFlow 代码吗?
数据库开发
7+阅读 · 2019年3月18日
年薪48万的程序员,他究竟做对了什么?
机器学习算法与Python学习
7+阅读 · 2018年12月28日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
为什么你应该学 Python ?
计算机与网络安全
4+阅读 · 2018年3月24日
牛逼的数据科学家应该具有的8个习惯!
物联网智库
5+阅读 · 2017年12月3日
python数据分析师面试题选
数据挖掘入门与实战
6+阅读 · 2017年11月21日
相关论文
Arxiv
22+阅读 · 2019年11月24日
Arxiv
12+阅读 · 2019年4月9日
Universal Transformers
Arxiv
5+阅读 · 2019年3月5日
Arxiv
4+阅读 · 2018年10月31日
Arxiv
19+阅读 · 2018年5月17日
Arxiv
7+阅读 · 2018年3月19日
Arxiv
27+阅读 · 2017年12月6日
Top
微信扫码咨询专知VIP会员