JavaScript前端开发案例教程
上QQ阅读APP看书,第一时间看更新

1.1 初识JavaScript

1.1.1 什么是JavaScript

JavaScript是Web开发领域中的一种功能强大的编程语言,主要用于开发交互式的Web页面。在计算机、手机等设备上浏览的网页,其大多数的交互逻辑几乎都是由JavaScript实现的。

对于制作一个网页而言,HTML、CSS和JavaScript分别代表了结构、样式和行为,结构是网页的骨架,样式是网页的外观,行为是网页的交互逻辑,如表1-1所示。

表1-1 比较HTML、CSS和JavaScript

JavaScript内嵌于HTML网页中,通过浏览器内置的JavaScript引擎直接编译,把一个原本只用来显示的页面,转变成支持用户交互的页面程序。

下面通过一些示例来展示JavaScript能够制作的页面效果,如图1-1所示。

图1-1 JavaScript在网页中的应用

从图 1-1 中可以看出,网页中许多常见的交互效果,都可以利用 JavaScript 来实现。JavaScript可以使网页的互动性更强,用户体验更好。

1.1.2 JavaScript的由来

在1995年时,Netscape(网景)公司(现在的Mozilla)的Brendan Eich(布兰登·艾奇)在网景导航者浏览器上首次设计出了 JavaScript。Netscape 最初将这个脚本语言命名为LiveScript,后来Netscape公司与Sun公司(2009年被Oracle公司收购)合作之后将其改名为JavaScript,这是由于当时Sun公司推出的Java语言备受关注,Netscape公司为了营销借用了Java这个名称,但实际上JavaScript与Java的关系就像 “大熊猫”与“小熊猫”,它们本质上是两种不同的编程语言。

在设计之初,JavaScript是一种可以嵌入到网页中的编程语言,用来控制浏览器的行为。例如,直接在浏览器中进行表单验证,用户只有填写格式正确的内容后才能够提交表单,避免了因表单填写错误导致的反复提交,节省了时间和网络资源。

JavaScript 语言非常灵活,其语言特性也产生了一些不良的影响。例如,一些网站利用JavaScript制作网页上的漂浮广告、弹窗,让用户感到厌烦。甚至还有一些不怀好意的人,利用Web开发中的安全漏洞,在网页中编写恶意代码,窃取用户网站身份信息、传播病毒等。

尽管如此,JavaScript仍然是Web开发中的一个不可或缺的技术。能否合理使用JavaScript取决于网站端正的态度和开发人员扎实的技术功底。人们更希望看到JavaScript推动Web技术的发展,造福每一位互联网用户。

今天的JavaScript承担了更多的责任,尤其是当Ajax技术兴起之后,浏览器和服务器可以进行异步交互了,网站的用户体验又得到了更大的提升。例如,当用户在百度的搜索框中输入几个字以后,网页会智能感知用户接下来要搜索的内容,如图1-2所示。这个效果的实现,离不开JavaScript编程。

图1-2 百度搜索框

另外,JavaScript的用途已经不仅局限于浏览器了,Node.js的出现使得开发人员能够在服务器端编写 JavaScript 代码,使得 JavaScript 的应用更加广泛,而本书主要针对浏览器端的JavaScript语言基础进行讲解,推荐读者在掌握语言基础后再学习更高级的技术。

1.1.3 JavaScript的特点

1.JavaScript是脚本语言

脚本(Script)简单地说就是一条条的文本命令,按照程序流程执行。常见的脚本语言有JavaScript、VBScript、Perl、PHP、Python等,而C、C++、Java、C#这些语言不属于脚本语言。它们的区别在于,非脚本语言一般需要编译、链接,生成独立的可执行文件后才能运行;而脚本语言依赖于解释器,只在被调用时自动进行解释或编译。脚本语言缩短了传统语言“编写 →编译→链接→运行”的过程。

脚本语言通常都有简单、易学、易用的特点,语法规则比较松散,使开发人员能够快速完成程序的编写工作,但其缺点是执行效率不如编译型的语言快。不过,由于计算机的运行速度越来越快,Web 应用的需求变化也越来越快,人们更加重视软件的开发速度,脚本语言带来的执行效率下降已经可以忽视了。

2.JavaScript可以跨平台

JavaScript 语言不依赖操作系统,仅需要浏览器的支持。目前,几乎所有的浏览器都支持JavaScript。在移动互联网时代,利用手机等各类移动设备上网的用户越来越多,JavaScript的跨平台性使其在移动端也承担着重要的职责。例如,JavaScript可以搭配CSS3编写响应式的网页,或者将网页模仿成移动APP的交互方式,使APP开发和更新的周期变短。JavaScript还可以搭配HTML5中的Canvas(画布)技术在网页上进行动画和游戏制作。

3.JavaScript支持面向对象

面向对象是软件开发中的一种重要的编程思想,其优点非常多。例如,基于面向对象思想诞生了许多优秀的库和框架,可以使JavaScript开发变得快捷和高效,降低了开发成本。近几年, Web 前端开发技术日益受到重视,除了经典的 JavaScript 库 jQuery,又诞生了 Bootstrap、AngularJS、Vue.js、Backbone.js、React、webpack等框架和工具。

1.1.4 JavaScript与ECMAScript的关系

1996年,网景公司在Navigator 2.0浏览器中正式内置了JavaScript脚本语言后,微软公司开发了一种与JavaScript相近的语言JScript,内置于Internet Explorer 3.0浏览器发布。网景公司面临丧失浏览器脚本语言的主导权的局面,决定将JavaScript提交Ecma国际,希望JavaScript能够成为国际标准。

Ecma国际(前身为欧洲计算机制造商协会)是一家国际性会员制度的信息和电信标准组织,该组织发布了262号标准文件(ECMA-262),规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript。JavaScript和JScript可以理解为ECMAScript的实现和扩展。

2015年,Ecma国际发布了新版本ECMAScript 2015(人们习惯称为ECMAScript 6、ES6),相比前一个版本做出了大量的改进。考虑到仍然有很多用户还在使用旧版本的浏览器,为了保证网页的兼容性,不建议开发人员使用这些新特性。但为了顺应技术更新,本书在讲解时也会为大家补充介绍一些关于ES6的新技术。