专栏名称: OSC开源社区
OSChina 开源中国 官方微信账号
目录
相关文章推荐
码农翻身  ·  11w*14薪,进DeepSeek了! ·  昨天  
OSC开源社区  ·  地表最强「开源版PS」——GIMP ... ·  4 天前  
OSC开源社区  ·  在RISC-V上构建AI应用 ·  3 天前  
OSC开源社区  ·  使用DeepSeek拯救数据中台 ·  3 天前  
程序员的那些事  ·  65 ... ·  3 天前  
51好读  ›  专栏  ›  OSC开源社区

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

OSC开源社区  · 公众号  · 程序员  · 2017-09-06 08:35

正文

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


自学


现在学习 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







请到「今天看啥」查看全文