JavaScript是一种解释型的脚本语言,它诞生于1995年,最初是由Netscape公司的布兰登·艾奇(Brendan Eich)设计并命名为LiveScript,在Netscape与Sun合作之后被命名为JavaScript。
JavaScript具有以下特点:
(1)JavaScript是一种解释型的脚本语言。JavaScript程序在运行过程中由浏览器中的JavaScript引擎逐行解释执行,无须编译。
(2)JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。
(3)JavaScript可跨平台,不依赖于操作系统,仅需要浏览器的支持。JavaScript程序在编写后可以在任意安装有浏览器的机器上运行。目前,JavaScript已被绝大多数的浏览器所支持。
1. 表单校验
JavaScript可以在HTML表单数据发往服务器前验证其正确性。例如,验证表单数据是否为空,验证输入是否是一个正确的Email地址等。
2. 网页特效
JavaScript可以使网页与用户之间进行动态交互,提高用户体验,从而让用户记忆犹新。例如,网页轮播图、网页放大镜、购票选座和数据可视化等。
3. 数据交互
JavaScript可以通过Ajax技术与服务器交换数据,在不刷新整个页面的情况下,产生局部刷新效果。例如疫情数据的实时获取更新,如图1-1所示。
图1-1 疫情数据的实时获取更新
4. 小程序开发
小程序即用即走、无须下载的特性为用户提供了更便捷的使用方式。JavaScript是开发小程序必要的编程语言,例如,开发微信小程序和支付宝小程序等。疫情期间,我们使用的健康码、行程码等都是小程序的应用。2020年9月,健康码引擎第一行代码被国家博物馆收藏,同时被收藏的还有团队制作人员的签名。程序员是一个普通的岗位,但是能参与到开发健康码这么有意义的活动中,非常有特殊意义。可以说平凡的岗位做出不平凡的成绩,向开发健康码团队的每一位程序员致敬!
除了以上几个前端的常见应用场景之外,JavaScript还可以通过Node.js进行服务器端程序开发;通过electron.js进行桌面应用开发;通过three.js呈现交互式3D和2D图形;通过Cocos2d、Unity3D、Babylon.js等引擎开发游戏;通过Hybrid和React-Native开发移动端App;通过Ruff进行嵌入式开发;通过鸿蒙系统的方舟开发框架进行鸿蒙系统应用程序开发。
鸿蒙系统是华为公司的一款基于微内核、耗时10年、4000多名研发人员投入开发、面向5G物联网、面向全场景的分布式操作系统。鸿蒙的英文名是HarmonyOS(意为和谐)。这是一款中国自己的底层软件系统。华为公司那种敢扛重任、敢啃硬骨头的精神,那种一往无前的必胜信念和决心值得我们学习。鸿蒙系统示意图如图1-2所示。
图1-2 鸿蒙系统示意图
提示: 本书主要讲解JavaScript在Web前端开发中的应用。
全球最大开发者社区GitHub发布的2021年度Octoverse报告中,展示了自2014年至2021年最受开发者们欢迎的编程语言top10热度走势。在JavaScript、Python、Java、TypeScript、C#、PHP、C++、Ruby、C这9种编程语言中,JavaScript连续多年稳居最受欢迎榜首的位置,2021年度Octoverse报告中编程语言top10热度走势如图1-3所示。
图1-3 2021年度Octoverse报告中编程语言top10热度走势
TIOBE编程社区是根据互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube和Baidu统计出排名数据,反映出某种编程语言的热门程度。TIOBE编程社区排行是编程语言受欢迎程度的指标,索引每月更新一次。JavaScript语言比较稳定在top10中,2022年2月TIOBE发布的“编程语言排行榜”,如图1-4所示。
图1-4 2022年2月TIOBE发布的“编程语言排行榜”
由图1-3和图1-4可知,JavaScript是最受开发者欢迎的编程语言之一,并逐渐成为全球网站使用最多的脚本语言。
浏览器中的JavaScript由以下三个不同的部分组成,如图1-5所示。
(1)ECMAScript:ECMA(European Computer Manufacturers Association,欧洲计算机制造商协会)在1997年制定了ECMA-262标准。该标准定义了一个名为ECMAScript的脚本语言,规定了脚本语言的规范,而JavaScript则是依照这个规范来实现的,最新版为ECMAScript 2021。
(2)DOM(Document Object Model,文档对象模型):它提供访问和操作网页内容的方法和接口。
(3)BOM(Browser Object Model,浏览器对象模型):它提供与浏览器交互的方法和接口。
ECMAScript与Web浏览器没有依赖关系,Web浏览器只是ECMAScript实现可能的宿主环境之一。宿主环境不仅提供基本的ECMAScript实现,同时也会提供该语言的扩展,以便语言与环境之间对接交互。例如,小程序中的JavaScript由ECMAScript、小程序框架、小程序API组成,和浏览器中的JavaScript相比,小程序中的JavaScript没有BOM和DOM对象。
图1-5 JavaScript组成部分
提示: 本书主要以ECMAScript 5.1版本作为核心进行讲解。