JavaScript ( JS ) 是一种轻量级,解释型,具有头等函数 ({{Glossary("First-class Function", "first-class functions")}}) 的编程语言。众所周知,它是用于网页开发的脚本语言,同时也用于许多非网页环境中,例如 node.js 和 Apache CouchDB。JS是一种基于原型的、多范式、动态脚本语言,并且支持面向对象、命令式和声明式(如:函数式编程)编程风格。了解更多 JavaScript。
本部分将专注于 JavaScript 语言本身,而非局限于网页或其他宿主环境。想要了解网页有关的 {{Glossary("API","APIs")}} ,请参考 Web APIs 以及 DOM。
ECMAScript 是 JavaScript 的标准。截至 2012 年,所有的现代浏览器都完整了支持 ECMAScript 5.1,旧式的浏览器至少支持 ECMAScript 3 标准。在2015年6月17日,ECMA国际组织发布了 ECMAScript 的第六版,该版本正式名称为ECMAScript 2015,但通常被称为 ECMAScript 6 或者ES6。自此,ECMAScript每年发布一次新标准。本文档目前覆盖了最新ECMAScript的草案,也就是ECMAScript2017。
不要将 JavaScript 与 Java 编程语言混淆。虽然“Java”和“JavaScript”都是 Oracle 公司在美国和其他国家注册(或未注册)的商标,但是这两门语言在语法、语义与用途方面有很大不同。
教程
在教程的指导下学习如何使用 JavaScript 编程。
介绍
- JavaScript 指南
- 如果您对 JavaScript 很陌生,本指南将带您了解下这门语言。
- JavaScript 技术概览
- 介绍 JavaScript 在浏览器中的运用。
- JavaScript 面向对象
- 介绍 JavaScript 语言当中的面向对象概念。
中级内容
- 对 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 代码的有用工具。
- Firefox 开发工具
- 包括 Scratchpad, Web Console, JavaScript Profiler, Debugger 等等
- Firebug
- 在任何页面中实时编写、调试和模拟 CSS、HTML 及 JavaScript。
- JavaScript Shells
- 允许您快速测试 JavaScript 代码片段的运行环境。
- TogetherJS
-
让协作更简单。
- Stack Overflow
- StackOverflow 上的 JavaScript 问答。
- JavaScript版本和发行记录
- 浏览 JavaScript的历史版本特性和实现情况.
- JSFiddle
- 编辑 JavaScript, CSS, HTML 并获得实时结果。使用外置资源,并和你的团队在线合作。
{{CommunityBox("JavaScript", "js-engine.internals", "mozilla.dev.tech.js-engine.internals", "js", "ES讨论|https://esdiscuss.org/|esdiscuss.org|ECMAScript标准探讨邮件列表||SpiderMonkey|https://wiki.mozilla.org/JavaScript|项目主页|助力JavaScript引擎||Twitter|https://twitter.com/SpiderMonkeyJS|@SpiderMonkeyJS|SpiderMonkey updates on Twitter")}}