JavaScript® (JS) 是一门轻量的、解释型的、将函数视为一级公民的程序设计语言,它是最为出名的网页脚本语言,但也在很多非网页环境中运用,例如 node.js 和 Apache CouchDB。它是一种基于原型的、多范式的动态脚本语言,并且支持面向对象、命令式编程风格和声明式(如:函数式编程)编程风格。这里将介绍更多关于 JavaScript 的内容。
本部分将专注于 JavaScript 语言本身,而并非局限于网页或其他宿主环境。想要了解网页有关的 API,请参考 Web APIs 以及 DOM。
JavaScript 的标准就是 ECMAScript。截至 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 提供三种比较操作符,包括严格比较操作符
===和非严格的比较操作符==,以及Object.is()方法。
高级内容
- 继承和原型的链式结构
- 对普遍受到误解和低估的 “基于原型继承” 原理做一个详细解释。
- 严格模式
- 严格模式规定你不能未经定义就使用变量,它是JavaScript 的限制子集,以求更高效的性能和更方便的调试。
- JavaScript 特定类型数组
- 为使 JavaScript 处理原始二进制数据而提供的特定类型的数组。
- 内存管理
- JavaScript 中的内存生命周期和垃圾回收机制。
- 并发模型以及事件循环
- JavaScript 现加入了基于“事件循环”的并发模型。
参考
浏览完整的Javascript 参考文档。
- 对象
- 熟悉下标准的内置对象例如
Array,Boolean,Date,Error,Function,JSON,Math,Number,Object,RegExp,String,Map,Set,,WeakMapWeakSet以及其他对象 - 表达式和操作符
- 了解下列操作符的作用:
instanceof,typeof,new,this,以及其他操作符。 - 语句和声明
- 了解
do-while,for-in,for-of,try-catch,let,var,const,if-else,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 并获得实时结果。使用外置资源,并和你的团队在线合作。
加入 JavaScript 社区
- IRC: #js (了解 IRC)
- ES讨论: esdiscuss.org
- SpiderMonkey: 项目主页
- Twitter: @SpiderMonkeyJS