JS学习第一章

JavaScript概述

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

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

表1 比较HTML、CSS和JavaScript

语言作用说明
HTML结构决定网页的结构和内容,相当于人的身体
CSS样式决定网页呈现给用户的模样,相当于给人穿衣服、化妆
JavaScript行为实现业务逻辑和页面控制,相当于人的各种动作

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

浏览器是访问互联网中各种网站所必备的工具,JavaScript主要就是运行在浏览器中的。表2列举了几种常见的浏览器及其特点。

表2 常见浏览器及特点

浏览器特点
Internet ExplorerWindows操作系统的内置浏览器,用户数量较多
Microsoft EdgeWindows 10操作系统提供的浏览器,速度更快、功能更多
Google Chrome目前市场占有率较高的浏览器,具有简洁、快速的特点
Mozilla Firefox一款优秀的浏览器,市场占有率低于Google Chrome
Safari主要应用在苹果iOS、macOS操作系统中的浏览器

在表2列举的浏览器中,Internet Explorer浏览器的常见版本有6、7、8、9、10、11。其中6、7、8发布时间较早,已经跟不上Web技术发展,正在逐渐被淘汰。本书选择各方面比较优秀的Google Chrome浏览器进行讲解。

浏览器内核分为两部分:渲染引擎(也称为排版引擎)和JavaScript引擎。渲染引擎(如Chrome浏览器的Blink)负责解析HTML与CSS,JavaScript引擎(如Chrome浏览器的V8引擎)是JavaScript语言的解释器,用于读取网页中的JavaScript代码,对其处理后执行。

JavaScript的诞生和发展

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

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

img

图1 表单验证

现在,JavaScript的用途已经不仅局限于浏览器了。Node.js的出现使得开发人员能够在服务器端编写JavaScript代码,使得JavaScript的应用更加广泛,而本书主要针对浏览器端的JavaScript基础进行讲解。学习了JavaScript基础之后,读者可以深入学习三大主流框架Vue.js、Angular、React,或者进行前端开发、小程序开发,或者混合App的开发。推荐读者在掌握JavaScript语言基础后再学习更高级的技术。

下面我们通过一些示例来展示基于JavaScript语言结合流行框架开发出来的页面效果,效果如图2~图5所示。其中,图2是利用前后端分离模式进行开发,基于React技术栈开发的移动Web项目;图3是基于Angular构建的响应式移动Web项目;图4是使用WePY框架并结合ES 6语法开发的小程序电商项目;图5是基于Vue.js全套技术栈开发出来的网页端后台管理系统。

img

图2 基于React开发的租房项目

img

图3 基于Angular开发的移动Web预定酒店项目

img

图4 小程序电商项目

img

图5 Vue.js开发的后台管理系统项目

在项目开发中,页面中的许多常见的交互效果都可以利用JavaScript来实现。JavaScript可以使网页的互动性更强、用户体验更好。

JavaScript的特点

1. JavaScript是一种脚本语言

脚本(Script)简单地说就是一条条的文本命令,这些命令按照程序流程逐条被执行。常见的脚本语言有JavaScript、TypeScript、PHP、Python等。非脚本语言(如C、C++)一般需要编译、链接,生成独立的可执行文件后才能运行,而脚本语言依赖于解释器,只在被调用时自动进行解释或编译。脚本语言通常都有简单、易学、易用的特点,语法规则比较松散,使开发人员能够快速完成程序的编写工作。

2. JavaScript可以跨平台

JavaScript语言不依赖操作系统,仅需要浏览器的支持。在移动互联网时代,利用手机等各类移动设备上网的用户越来越多,JavaScript的跨平台性使其在移动端也承担着重要的职责。

3. JavaScript支持面向对象

面向对象是软件开发中的一种重要的编程思想,其优点非常多。例如,基于面向对象思想诞生了许多优秀的库和框架(如jQuery),可以使JavaScript开发变得快捷和高效,降低了开发成本。

JavaScript的组成

JavaScript是由ECMAScript、DOM、BOM三部分组成的,如图1所示。

img

图1 JavaScript的组成部分

接下来我们对JavaScript的组成进行简单的介绍。

  • ECMAScript:是JavaScript的核心。ECMAScript规定了JavaScript的编程语法和基础核心内容,是所有浏览器厂商共同遵守的一套JavaScript语法工业标准。

  • DOM:文档对象模型,是W3C组织推荐的处理可扩展标记语言的标准编程接口,通过DOM提供的接口,可以对页面上的各种元素进行操作(如大小、位置、颜色等)。

  • BOM:浏览器对象模型,它提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。通过BOM,可以对浏览器窗口进行操作(如弹出框、控制浏览器导航跳转等)。

代码书写位置

在网页中编写JavaScript代码时,有3种书写位置,分别是行内式、内嵌式(也称为嵌入式)和外部式(也称为外链式),下面分别进行讲解。

1. 行内式

行内式是指将单行或少量的JavaScript代码写在HTML标签的事件属性中(也就是以on开头的属性,如onclick)。下面通过具体操作步骤进行演示。

(1)创建一个简单的HTML页面,将文件命名为demo01.html。

(2)编写demo01.html,具体代码如下。

 1  <!DOCTYPE html>
 2  <html>
 3  <head>
 4   <meta charset="UTF-8">
 5   <title>Document</title>
 6  </head>
 7  <body>
 8  </body>
 9  </html>

在上述代码中,第4行声明了网页的编码为UTF-8,帮助浏览器正确识别网页的编码。在声明编码后,还需要确保文件本身的编码也是UTF-8。目前大多数代码编辑器新建的文件编码默认都是UTF-8。另外,Windows记事本默认的编码是ANSI,在记事本中编写的网页容易出现乱码,因此读者应杜绝使用记事本编写代码文件。

(3)使用行内式编写JavaScript代码,实现单击一个按钮后,弹出一个警告框,显示一些提示信息,具体代码如下。

 1  <body>
 2   <input type="button" value="点我" οnclick="alert('行内式')">
 3  </body>

在上述代码中,写在onclick属性里的代码就是JavaScript代码。

(4)通过浏览器访问demo01.html,运行结果如图1所示。

img

图1 行内式

以上步骤演示了行内式的使用。在实际开发中,使用行内式还需要注意以下4点。

① 注意单引号和双引号的使用。在HTML中推荐使用双引号,而JavaScript推荐使用单引号。

② 行内式可读性较差,尤其是在HTML中编写大量JavaScript代码时,不方便阅读。

③ 在遇到多层引号嵌套的情况时,非常容易混淆,导致代码出错。

④ 只有临时测试,或者特殊情况下再使用行内式,一般情况下不推荐使用行内式。

2. 内嵌式(嵌入式)

内嵌式是使用<script>标签包裹JavaScript代码,<script>标签可以写在<head>或<body>标签中。通过内嵌式,可以将多行JavaScript代码写在<script>标签中。内嵌式是学习JavaScript时最常使用的方式。

下面我们通过具体操作步骤进行演示。

(1)创建demo02.html,用来编写内嵌式JavaScript代码,示例代码如下。

 1  <head>
 2   ……
 3   <script>
 4    alert('内嵌式');
 5   </script>
 6  </head>

在上述代码中,第4行是一条JavaScript语句,其末尾的分号“;”表示该语句结束,后面可以编写下一条语句。<script>标签还有一个type属性,在HTML 5中该属性的默认值为“text/javascript”,因此在编写时可以省略type属性。

(2)通过浏览器访问demo02.html,页面一打开后,就会自动弹出一个警告框,提示信息为“内嵌式”。

3. 外部式(外链式)

外部式是指将JavaScript代码写在一个单独的文件中,一般使用“js”作为文件的扩展名,在HTML页面中使用<script>标签进行引入,适合JavaScript代码量比较多的情况。

外部式有利于HTML页面代码结构化,把大段的JavaScript代码独立到HTML页面之外,既美观,也方便文件级别的代码复用。需要注意的是,外部式的<script>标签内不可以编写JavaScript代码。

下面我们通过具体操作步骤进行演示。

(1)创建demo03.html,用来编写外部式JavaScript代码,示例代码如下。

 1  <head>
 2   ……
 3   <script src="test.js"></script>
 4  </head>

(2)创建test.js文件,在文件中编写JavaScript代码,如下所示。

alert('外部式');

(3)通过浏览器访问demo03.html,页面一打开后,就会自动弹出一个警告框,提示信息为“外部式”。

注释

在JavaScript开发过程中,使用注释更有利于代码的可读性。注释在程序解析时会被JavaScript解释器忽略。JavaScript支持单行注释和多行注释,具体示例如下。

1. 单行注释“//”

单行注释以“//”开始,到该行结束或<script>标签结束之前的内容都是注释。下面我们通过代码演示单行注释的使用。

 1  <script>
​
 2   alert('Hello, JavaScript');  // 输出Hello, JavaScript
​
 3  </script>

上述示例中,“//”和后面的“输出 Hello, JavaScript”是一个单行注释。

2. 多行注释“/* */”

多行注释以“/”开始,以“/”结束。多行注释中可以嵌套单行注释,但不能再嵌套多行注释。示例代码如下。

 1  <script>
​
 2   /*
​
 3    alert('Hello, JavaScript');
​
 4   */
​
 5  </script>

上述示例中,第2~4行的内容就是多行注释。

输入和输出语句

JavaScript是一门编程语言,可以在网页中实现用户交互效果。例如,在网页打开后,自动弹出一个输入框,让用户输入内容,输入后,由程序内部进行处理,处理完成后,再把结果返回给用户。这整个过程分为输入、处理和输出3个步骤。

为了方便信息的输入和输出,JavaScript提供了输入和输出语句,如表1所示。

表1常用的输入和输出语句

语句说明
alert('msg')浏览器弹出警告框
console.log('msg')浏览器控制台输出信息
prompt('msg')浏览器弹出输入框,用户可以输入内容

下面我们通过代码演示这3个输入和输出语句的使用,如下所示。

 1  <script>
​
 2   alert('这是一个警告框');
​
 3   console.log('在控制台输出信息'); 
​
 4   prompt('这是一个输入框');
​
 5  </script>

通过浏览器访问测试,alert()的显示效果如图1所示。

img

图1 alert()效果

console.log()的输出结果需要在浏览器的控制台中查看。在Chrome浏览器中按F12键(或在网页空白区域单击鼠标右键,在弹出的菜单中选择“检查”)启动开发者工具,然后切换到“Console”(控制台)选项卡,如图2所示。

img

图2 console.log()效果

prompt()的显示效果如图3所示。

img

图3 prompt()

控制台的使用

在浏览器的控制台中可以直接输入JavaScript代码来执行,这为JavaScript初学者提供了很大的便利。打开控制台后,会看到一个闪烁的光标,此时可以输入代码,按回车键执行。图1演示了直接在控制台中输入代码执行的效果。

img

图1 控制台输入

在图1中,代码前面的“>”图标表示该行代码是用户输入的,下一行的“<”图标表示控制台的输出结果,用于显示用户输入的表达式的值。

在控制台中还可以用“Ctrl+鼠标滚轮”放大或缩小,用快捷键【Shift+Enter】在输入的代码中进行换行。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值