JavaScript,一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的直译语言。它已经由ECMA(欧洲电脑制造商协会)通过ECMAScript实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、FireFox、Safari、Opera)支持。JavaScript是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本,数组,日期以及正则表达式等,不支持I/O,比如网络,存储和图形等,但这些都可以由它的宿主a环境提供支持。
虽然JavaScript与Java这门语言不管是在名字上,或是在语法上都有很多相似性,但这两门编程语言从设计之初就有很大的不同,JavaScript的语言设计主要受到了Self(一种基于原型的编程语言)和Scheme(一门函数式编程语言)的影响[5]。在语法结构上它又与C语言有很多相似(例如if条件语句、while循环、switch语句、do-while循环等)。
在客户端,JavaScript在传统意义上被实现为一种解释语言,但在最近,它已经可以被即时编译(JIT)执行。随着最新的HTML5和CSS3语言标准的推行它还可用于游戏、桌面和移动应用程序的开发和在服务器端网络环境运行,如Node.js。
1995年,当时在网景公司就职的布兰登·艾克正为Netscape Navigator 2.0浏览器开发的一门名为LiveScript的脚本语言,后来网景公司与昇阳电脑公司组成的开发联盟为了让这门语言搭上java这个编程语言“热词”,将其临时改名为“JavaScript”,日后这成为大众对这门语言有诸多误解的原因之一。
JavaScript推出后在浏览器上大获成功,微软公司在不久后就为IE浏览器推出了JScript,以与处于市场领导地位的网景产品同台竞争。JScript也是一种JavaScript实现,这两个JavaScript语言版本在浏览器端共存意味着语言标准化的缺失,对这门语言进行标准化被提上了日程,在1997年,由网景、昇阳、微软、宝蓝等公司组织及个人组成的技术委员会在ECMA(欧洲计算机制造商协会)确定定义了一种名叫ECMAScript的新脚本语言标准,规范名为ECMA-262。JavaScript成为了ECMAScript的实现之一。
完整的JavaScript实现应该包含三个部分,即ECMAScript(语言核心)、DOM(文档对象模型)、BOM(浏览器对象模型)。
推荐书目
- 深入浅出JavaScript(中文版)
- Eloquent JavaScript
- JavaScript权威指南(第6版)
- JavaScript高级程序设计(第3版)
- JavaScript语言精粹
- JavaScript模式
- 你不知道的JavaScript(上卷)
- jQuery基础教程(第3版)
- 锋利的jQuery
- You Don’t Know JS (book series)
在线课程
视频教程
应用推荐(IOS&English ONLY)
- Learn JavaScript by Sololearn Inc
- L2Code JavaScript – Learn to Code JavaScript by SparkNET Interactive
- Mimo: Learn how to code through interactive tutorials and quizzes! by Johannes Berger
- Learn JavaScript by Examples by Pretonic
标准文档
实践项目
- MDN JavaScript基础
- GitHub – sethvincent/javascripting: Learn JavaScript by adventuring around in the terminal.
- FCC中文JS系列关卡