JavaScript

JavaScriptJS)是一种具有函数优先特性的轻量级、解释型或者说即时编译型的编程语言。虽然作为 Web 页面中的脚本语言被人所熟知,但是它也被用到了很多非浏览器环境中,例如 Node.jsApache CouchDBAdobe Acrobat 等。进一步说,JavaScript 是一种基于原型、多范式、单线程动态语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。

JavaScript 的动态特性包括运行时对象的构造、变量参数列表、函数变量、动态脚本创建(通过 eval)、对象内枚举(通过 for...inObject 工具方法)和源代码恢复(JavaScript 函数会存储其源代码文本,可以使用 toString() 进行检索)。

本部分文档将专注于 JavaScript 语言本身,而不是专注于 Web 页面或其他宿主环境特有的那部分。想要了解 Web 页面特有的 API 信息,请参考 Web API 以及 DOM

JavaScript 标准是 ECMAScript 语言规范(ECMA-262)和 ECMAScript 国际化 API 规范(ECMA-402)。只要某个浏览器实现了某个特性,我们就会尝试详细记录这个特性。这意味着,当某个 ECMAScript 新特性的提案在浏览器中实现时,文档和 MDN 文章中的示例可能会使用这些新特性。大多数时候发生在阶段 3 和阶段 4 之间,通常在正式发布之前。

不要将 JavaScript 与 Java 编程语言弄混——JavaScript 不是“解释型的 Java”。“Java”和“JavaScript”都是 Oracle 公司在美国和其他国家注册(或未注册)的商标。然而,这两门编程语言有着非常不同的语法、语义和用途。

JavaScript 核心语言特性(大部分是纯 ECMAScript)的文档包含以下内容:

有关 JavaScript 规范和相关技术的更多信息,请参阅 JavaScript 技术概述

教程

借助指南和教程来学习如何用 JavaScript 编程。

面向纯新手

如果你想学习 JavaScript,却从未接触过 JavaScript 或编程,你可以投入到我们的 JavaScript 主题学习区。下面列出了这部分的所有章节:

JavaScript 第一步

回答一些基本问题,比如“JavaScript 是什么?”、“它长什么样子?”、“它可以用来做什么?”等,还谈及如变量、字符串、数字、数组等 JavaScript 关键特性。

创建 JavaScript 代码块

继续介绍 JavaScript 的关键基本特性,将注意力转向常见的代码块类型,如条件语句、循环、函数、事件等。

介绍 JavaScript 对象

如果你想进一步提高对语言的了解并编写出更高效的代码,理解 JavaScript 面向对象的本质很重要,因此我们为你准备了这个模块。

异步 JavaScript

探讨异步 JavaScript、为什么它很重要、如何使用它有效地处理潜在的阻塞操作(如从服务器获取资源)。

客户端 web API

探讨 API 是什么、如何使用一些开发工作中最常见的 API。

JavaScript 指南

JavaScript 指南

一份非常详细的 JavaScript 指南,适用于有过 JavaScript 或其他语言编程经验的读者。

中级

理解客户端 Javascript 框架

JavaScript 框架是现代前端 Web 开发必不可少的一部分,为开发者构建可扩展、交互式的 Web 应用程序提供了经过验证的工具。这个模块讨论一些客户端框架如何工作以及如何集成到工具集的基础背景知识,接着是一个讨论现在最流行框架的系列教程。

JavaScript 语言概述

JavaScript 基础语法和语义概述:帮助来自其他编程语言的读者加速学习。

JavaScript 数据结构

JavaScript 数据结构概述。

相等比较和相同

JavaScript 提供了三种不同的值比较运算:严格相等运算符 ===、非严格相等运算符 ==,以及 Object.is() 方法。

属性的可枚举性和所有权

不同的处理属性的可枚举性和所有权的方法——一个接着一个的访问一组对象属性。

闭包

闭包是由函数及其声明所在的词法环境结合而成。

高级

继承与原型链

解释被广泛误解与低估的基于原型的继承。

内存管理

JavaScript 的内存生命周期和垃圾回收。

事件循环

JavaScript 拥有基于“事件循环”的运行时模型。

参考

浏览完整的 JavaScript 参考文档。

标准对象

了解 ArrayBooleanDateErrorFunctionJSONMathNumberObjectRegExpStringMapSetWeakMapWeakSet 等标准内置对象。

表达式和运算符

学习运算符 instanceoftypeofnewthis运算符优先级,以及其他运算符的行为。

语句和声明

学习 do-whilefor-infor-oftry-catchletvarconstif-elseswitch 以及其他语句和关键字的作用。

函数

学习如何使用 JavaScript 函数开发应用。

JavaScript 类是最适合面向对象编程的方式。