title | slug |
---|---|
JavaScript |
Web/JavaScript |
{{JsSidebar()}}
JavaScript(JS)是一种具有{{Glossary("First-class Function", "函数优先")}}特性的轻量级、解释型或者说即时编译型的编程语言。虽然作为 Web 页面中的脚本语言被人所熟知,但是它也被用到了很多非浏览器环境中,例如 {{Glossary("Node.js")}}、Apache CouchDB、Adobe Acrobat 等。进一步说,JavaScript 是一种基于原型、多范式、单线程的动态语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。
JavaScript 的动态特性包括运行时对象的构造、变量参数列表、函数变量、动态脚本创建(通过 eval
)、对象内枚举(通过 for...in
和 Object
工具方法)和源代码恢复(JavaScript 函数会存储其源代码文本,可以使用 toString()
进行检索)。
本部分文档将专注于 JavaScript 语言本身,而非局限于网页或其他运行环境。想要了解网页中特有的 {{Glossary("API")}},请参考 Web API 以及 {{Glossary("DOM")}}。
ECMAScript 语言规范(ECMAScript Language Specification)(ECMA-262)和 ECMAScript 国际化 API 规范(ECMAScript Internationalization API specification)(ECMA-402)是 JavaScript 的标准。当某个 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 框架
- : 作为现代前端 Web 开发中不可或缺的一部分,Javascript 框架给开发者提供了一套经过验证的工具,用来构建可扩展的交互式 Web 应用。在你移步一系列涵盖了当前流行前端框架的教程前,这部分内容提供了一些基础的背景知识,包括这些客户端框架是如何工作的,以及它们如何与你现有的工具集相配合。
- 重新介绍 JavaScript
- : 给那些 认为自己了解 Javascript 的朋友们准备的 JavaScript 概述。
- JavaScript 数据结构
- : 概述 JavaScript 中涉及的数据结构。
- 相同、相等的比较性判断
- : JavaScript 提供了三种比较操作符,包括严格比较操作符
===
和非严格的比较操作符==
,以及 {{jsxref("Global_Objects/Object/is", "Object.is()")}} 方法。
- : JavaScript 提供了三种比较操作符,包括严格比较操作符
- 属性的可枚举性和所有权
- : 不同的逐个访问一组对象属性的方法对可枚举性和属性所有权的处理。
- 闭包
- : 闭包由一个函数与其本身所被定义的词法环境的结合而成。
- 继承和原型链
- : 基于原型继承被外界广泛地误解与低估,这一版块对基于原型的继承作了阐述。
- JavaScript 类型化数组
- : Javascript 类型化数组提供了操作原始二进制数据的机制。
- 内存管理
- : JavaScript 中的内存生命周期和垃圾回收机制。
- 并发模型以及事件循环
- : JavaScript 具有基于“事件循环”的并发模型。
浏览完整的 JavaScript 参考文档。
- 标准对象
- : 例如 {{jsxref("Array")}}、{{jsxref("Boolean")}}、{{jsxref("Date")}}、{{jsxref("Error")}}、{{jsxref("Function")}}、{{jsxref("JSON")}}、{{jsxref("Math")}}、{{jsxref("Number")}}、{{jsxref("Object")}}、{{jsxref("RegExp")}}、{{jsxref("String")}}、{{jsxref("Map")}}、{{jsxref("Set")}}、{{jsxref("WeakMap")}} 、{{jsxref("WeakSet")}} 等标准内置对象。
- 表达式和运算符
- : 运算符的作用{{jsxref("Operators/instanceof", "instanceof")}}、{{jsxref("Operators/typeof", "typeof")}}、{{jsxref("Operators/new", "new")}}、{{jsxref("Operators/this", "this")}},运算符优先级,以及其他运算符。
- 语句和声明
- : 了解 {{jsxref("Statements/do...while", "do-while")}}、{{jsxref("Statements/for...in", "for-in")}}、{{jsxref("Statements/for...of", "for-of")}}、{{jsxref("Statements/try...catch", "try-catch")}}、{{jsxref("Statements/let", "let")}}、{{jsxref("Statements/var", "var")}}、{{jsxref("Statements/const", "const")}}、{{jsxref("Statements/if...else", "if-else")}}、{{jsxref("Statements/switch", "switch")}} 以及其他语句和关键字的作用。
- 函数
- : 学习如何使用 JavaScript 函数来开发你的应用。
- 类
- : JavaScript 类是进行面向对象编程最合适的方式。