--- title: JavaScript slug: Web/JavaScript tags: - JavaScript - Landing - Learn - priority translation_of: Web/JavaScript ---
{{JsSidebar()}}

JavaScript ( JS ) 是一种具有{{Glossary("First-class Function", "函数优先")}}的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web 页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,例如 Node.js、 Apache CouchDB 和 Adobe Acrobat。JavaScript 是一种{{Glossary("Prototype-based_programming", "基于原型编程")}}、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。了解更多 JavaScript

本部分将专注于 JavaScript 语言本身,而非局限于网页或其他限制环境。想要了解网页有关的 {{Glossary("API","APIs")}} ,请参考 Web APIs 以及 DOM

JavaScript 的标准是 ECMAScript 。截至 2012 年,所有的现代浏览器都完整的支持  ECMAScript 5.1,旧版本的浏览器至少支持 ECMAScript 3 标准。2015年6月17日,ECMA国际组织发布了 ECMAScript 的第六版,该版本正式名称为 ECMAScript 2015,但通常被称为 ECMAScript 6 或者 ES6。自此,ECMAScript 每年发布一次新标准。本文档目前覆盖了最新 ECMAScript 的草案,也就是 ECMAScript2020

不要将 JavaScript 与 Java编程语言 混淆。虽然“Java”和“JavaScript”都是 Oracle 公司在美国和其他国家注册(或未注册)的商标,但是这两门语言在语法、语义与用途方面有很大不同。

教程

通过使用指南和教程来学习如何用JavaScript语言编程。

对于完全初学者

如果你想学习 JavaScript,但苦于没有过 JavaScript 或者其他语言的编程经验,你可以投入到我们的 JavaScript 主题学习区。那里有完整的学习资源:

JavaScript 第一步
回答一些基本问题,比如“JavaScript 是什么?”、“它是怎么样的?”、“它可以用来做什么?”;同时还讨论如变量、字符串、数值和数组等 JavaScript 的核心特性。
JavaScript 基本结构
继介绍了 JavaScript 基本的核心特性后,我们需要关注常见的代码块类型,如条件语句,循环,函数和事件。
介绍JavaScript 对象
如果你想进一步使用该语言撰写更有效率的代码,理解 JavaScript 面向对象的精髓是很重要的,因此我们提供了该模块来帮助你理解它。

JavaScript 指南

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

中级内容

客户端 Web API
当你正在给网页或者网页 APP 编写客户端 JavaScript 时, 你离不开使用这些 API — 这些用来操作浏览器各个不同方面和网页所在的操作系统,甚至是来自于其他网页和服务器的数据的接口。在这个模块,我们来探究这些 API 是什么,以及怎么在你的日常开发工作中使用一些最常用的 API。
重新介绍 JavaScript(JS 教程)
给那些有 JavaScript 基础的朋友们的 JavaScript概述。
JavaScript 数据结构
JavaScript 数据结构的概述。
如何使用比较操作符
JavaScript 提供了三种比较操作符,包括严格比较操作符 === 和非严格的比较操作符 ==,以及 {{jsxref("Global_Objects/Object/is", "Object.is()")}} 方法。
闭包
闭包是一个函数与其本身所被定义的词法环境的结合。

高级内容

继承和原型链
基于原型继承被外界广泛地误解与低估,这一版块对基于原型的继承作出详细解释。
严格模式
严格模式规定不能使用未定义的变量。严格模式是对 ECMAScript 5 的严格限制,以求得更高效的性能和更便利的调试。
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 代码的实用工具。

Firefox 开发工具
包括 ScratchpadWeb ConsoleJavaScript ProfilerDebugger 等等
JavaScript Shells
允许您快速测试 JavaScript 代码片段。
TogetherJS

添加 TogetherJS 到您的网站,让用户实时互助,协作更简单。

Stack Overflow
你可以在 StackOverflow 查看或者发布带有 JavaScript 标签的问题。
JavaScript版本和发行记录
浏览 JavaScript 的历史版本特性和实现情况.
JSFiddle
编辑 JavaScript、CSS 和 HTML 并获得实时结果。使用外置资源,并和你的团队在线合作。
Plunker
Plunker 是一个在线社区,用于创建,协作和共享您的 Web 开发创意。编辑您的 JavaScript、CSS 和 HTML 文件并获取实时结果和文件结构。
JSBin

JS Bin 是一种开源的协作式的web 开发调试工具。