欢迎光临
免费的PDF电子书下载网站

Web系统与技术 PDF下载

编辑推荐

《Web系统与技术》循序渐进地介绍Web系统和技术的基本概念、基本原理和基本方法, 包括HTML静态Web页面、CSS样式设计、网页数据的有效性验证、Java*编程技术等Web前台系统与技术,以及HTML DOM对象、PHP编程,ASP编程,XML数据编程和AJax编程等后台系统与技术等内容。 ;

内容简介

本书共分为10章,循序渐进地介绍了Web系统与技术的基础知识、HTML网页设计基础、CSS样式设计、网页数据的有效性验证、JavaScript编程技术等Web前台系统与技术,以及HTML DOM对象编程、PHP编程、ASP编程、XML编程和Ajax编程等后台系统与技术。 为了满足一半以上的全国普通本科高等院校逐步向应用技术型大学转变的需要,本书定位为应用型计算机类和信息类专业的“Web系统与技术”课程的教材。本书每章都安排了大量例题,每个例题都有详细的步骤,具有应用型工程技术教材的特点,读者可以由浅入深地全面掌握Web系统与技术的各个知识点。 为了方便教师授课和读者自学,本书配有符合国际工程教育认证要求的“Web系统与技术”教学大纲、全部章节的PPT、实例的源程序和习题的参考答案,可到清华大学出版社的网站(网址: www.tup.com.cn)下载。 本书可以作为大学本科生和研究生计算机类和信息类专业的教材,也可以作为Web系统与技术初学者和技术人员的参考书。

作者简介

暂无

Web系统与技术 PDF下载

目录

 ;目录

第1章Web系统与技术的基础知识

1.1Internet介绍

1.1.1Internet含义

1.1.2TCP/IP

1.1.3域名

1.1.4URL

1.1.5MIME

1.1.6HTTP

1.2Web浏览器

1.3Web服务器

1.3.1Web服务器概述

1.3.2Apache服务器

1.3.3IIS服务器

1.4系统的主要技术

1.4.1HTML概述

1.4.2JavaScript概述

1.4.3XML概述

1.4.4PHP概述

1.4.5Ajax概述

1.5习题

第2章HTML网页设计基础

2.1HTML网页

2.1.1HTML概述

2.1.2HTML文件结构

2.1.3文件编辑器

2.2HTML基本标签

2.2.1元信息标签Meta

2.2.2文本标签

2.2.3列表标签

2.2.4表格标签

2.2.5超链接标签

2.2.6图像标签

2.2.7背景声音标签

2.2.8视频标签

2.3网页表单和控件

2.3.1表单标签form

2.3.2表单的控件

2.3.3获取表单数据

2.4框架标签

2.4.1帧标记frame

2.4.2IFrame标记

2.5习题

第3章CSS样式设计

3.1CSS简介

3.2CSS语法与使用

3.2.1CSS定义语法

3.2.2CSS的使用

3.2.3选择符

3.3CSS样式设计简介

3.3.1字体样式

3.3.2文本样式

3.3.3颜色样式

3.3.4列表样式

3.3.5表格样式

3.3.6鼠标样式

3.3.7滤镜样式

3.4CSS页面布局

3.4.1文本对齐

3.4.2盒子模型

3.4.3文字环绕float样式

3.4.4元素定位

3.5习题

第4章网页数据的有效性验证

4.1验证控件

4.1.1验证控件分类

4.1.2ASP页面验证控件

4.2正则表达式

4.2.1常用的元字符

4.2.2复杂的正则表达式

4.3正则表达式应用

4.3.1RegExp对象

4.3.2String对象的正则表达式方法

4.4常见的正则表达式

4.5习题

第5章JavaScript编程技术

5.1JavaScript编程基础

5.1.1JavaScript简介

5.1.2JavaScript的使用方法

5.1.3语法规则

5.1.4运算符和表达式

5.1.5函数

5.1.6流程控制

5.1.7事件处理

5.2JavaScript对象编程

5.2.1Object类型

5.2.2Array对象

5.2.3String对象

5.2.4Math对象

5.2.5Number对象

5.2.6Data对象

5.3JavaScript ActiveX编程技术

5.3.1FileSystemObject控件

5.3.2Excel.Application控件

5.3.3Word.Application控件

5.4习题

第6章HTML DOM对象编程

6.1HTML文档对象模型

6.2浏览器的主要对象

6.2.1window对象

6.2.2navigator对象

6.2.3location对象

6.2.4history对象

6.2.5event对象

6.2.6document对象

6.3基于DOM的HTML元素操作

6.3.1访问根元素

6.3.2访问指定ID属性的元素

6.3.3访问结点属性

6.4习题

第7章PHP编程

7.1PHP的环境配置与安装

7.1.1PHP手工安装

7.1.2Apache的Web服务器配置PHP

7.1.3PHP集成开发环境

7.2PHP语法

7.3基本数据类型和表达式

7.3.1常量和变量

7.3.2基本数据类型

7.3.3类型转换

7.3.4算术运算和关系运算

7.4PHP主要语句

7.4.1赋值语句

7.4.2输入输出语句

7.4.3选择语句

7.4.4循环语句

7.5数组

7.5.1数组的创建

7.5.2数组访问

7.5.3数组常见操作

7.6函数

7.6.1常见函数

7.6.2自定义函数

7.7PHP表单

7.8Cookie和Session

7.8.1PHP的Cookie

7.8.2PHP的Session

7.9PHP访问MySQL数据库

7.9.1MySQL数据库概述

7.9.2MySQL的命令操作

7.9.3PHP操纵MySQL

7.10习题

第8章ASP编程

8.1ASP.NET Web编程原理

8.1.1网站、Web应用程序和虚拟目录的关系

8.1.2IIS的ASP.NET请求处理过程

8.1.3ASP.NET页面生命周期

8.2ASP的常用控件

8.2.1HTML服务器控件概述

8.2.2ASP的标准服务器控件概述

8.3ASP的常见内置对象

8.3.1Application对象

8.3.2Response对象

8.3.3Request对象

8.3.4Server对象

8.3.5Session对象

8.3.6Cookies对象

8.3.7Page对象

8.4ADO.NET数据库访问技术

8.4.1Connection对象

8.4.2Command对象

8.4.3DataReader对象

8.4.4DataSet对象

8.4.5DataAdapter对象

8.4.6Transaction对象

8.4.7Parameter对象

8.4.8ASP.NET的数据源控件对象

8.4.9ASP.NET的数据绑定控件对象

8.5ASP的Web服务编程

8.5.1Web服务的创建与发布

8.5.2Web服务的使用

8.6习题

第9章XML编程

9.1XML简介及其特征

9.1.1XML简介

9.1.2XML的特征

9.2XML标记语法

9.2.1关于标记

9.2.2标记的使用规则

9.3XML文档结构

9.3.1XML文档声明

9.3.2XML根元素定义

9.3.3XML元素和注释

9.3.4PI

9.4命名空间

9.5XML架构与模式

9.5.1XML架构概述

9.5.2XML架构数据类型

9.5.3simpleType

9.5.4complexType

9.5.5sequence

9.6XML文档显示

9.6.1基于CSS样式的XML文档显示

9.6.2基于XSLT样式表的XML文档显示

9.6.3基于数据岛的XML文档显示

9.6.4基于JavaScript的XML文档显示

9.7习题

第10章Ajax编程

10.1Ajax概述

10.2ASP.NET Ajax

10.3基于XMLHttpRequest的Ajax实现

10.4习题

参考文献

前沿

前言
随着经济的发展,德国提出了以智能制造为主导的第四次工业革命—— “工业4.0”,日本提出了“产业复兴计划”,法国提出了“新工业法国”。我国也提出了“产业结构的转型升级”——“中国制造2025”等国家重大战略,对工程教育提出了新的更高的要求,国际化人才竞争越来越激烈,培育符合国际标准的工程技术人才势在必行。随着我国高等教育进入大众化阶段,培养应用型本科人才成为国家发展战略。应用型本科教育以应用型为办学定位,对于满足中国经济社会发展的高层次应用型人才需要以及推进中国高等教育大众化进程起到了积极的促进作用。2014年3月,中国教育部改革方向已经明确: 全国普通本科高等院校1200所学校中,600多所逐步向应用技术型大学转变。工程教育专业认证为我国应用技术型大学的工程类专业教学改革指明了方向。工程教育专业认证是我国工程型人才走向国际市场的准入证,促进工程教育面向世界。2016年6月2日,在马来西亚吉隆坡举行的国际工程联盟大会上,我国成为《华盛顿协议》第18个正式成员,这是我国高等教育发展的一个里程碑。工程教育专业认证可以构建中国工程教育的质量监控体系,推进中国工程教育改革,进一步提高工程教育质量,有助于构建工程教育与企业界的联系机制。2006—2015年,全国累计有124所高校的570个工程专业参加了认证,仅2016年大约有200个专业参加认证。计算机专业作为我国工程教育的主力军之一,需要培养能解决复杂计算机工程问题的人才,必须加快教学模式改革,以适应国家的战略需求。高校计算机专业教育肩负着为国家培养信息工程科技人才的使命。目前我国计算机类专业的布点总数已达2481,每年毕业生人数为18 万左右,为国家建设培养了大批计算机类专业的应用型人才。“Web系统与技术”是计算机科学与技术、软件工程、网络工程、物联网、信息类等专业的必修或选修课。通过课程教学,应使学生对各类Web开发技术及其应用发展趋势有一个全面的认识和把握。通过掌握Web网站构建技术和Web编程的基本技能,加深对信息系统的理解,提高学生基于Web的信息系统设计开发的综合能力。在此背景下,计算机类和信息类专业需要适合应用型的“Web系统与技术”教材,特别需要符合工程教育专业认证核心理念的教材,以培养学生解决复杂Web系统与工程问题的能力。“Web系统与技术”课程包括Web前端和后台页面的相关技术,所有的页面都涉及网页数据内容、格式处理和交互性等处理,其中网页数据内容的具体技术包括DOM、 HTML和XML等模块,网页数据的格式化处理包括CSS等模块,交互性的具体技术包括JavaScript、 Ajax、 JQuery等模块,而后台服务器主要包括PHP、JSP、ASP等相关模块, 具体内容和关系如图1所示。

免费在线读

第5章JavaScript编程技术

5.1JavaScript编程基础5.1.1JavaScript简介

1995年,Netscape公司的Brendan Eich在网景导航者浏览器上首次设计实现了JavaScript。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。为了取得技术优势,微软推出了JScript,CEnvi推出了ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,JavaScript兼容于欧洲计算机制造联合会(European Computer Manufactures Association,ECMA),因此也称为ECMAScript。JavaScript是一种嵌入HTML文件中的脚本语言,是基于对象驱动的,能对鼠标单击、表单输入、页面浏览等用户事件做出反应并进行处理。JavaScript是简化的编程语言,不像高级语言具有严格的使用限制,使用简洁灵活。JavaScript可直接使用变量,不必事先声明,变量类型规定也不十分严格。JavaScript是一种基于对象(objectbased)的语言,允许用户自定义对象,同时,浏览器还提供大量的内建对象,可以将浏览器中不同的元素作为对象处理,体现了面向对象编程的思想。但JavaScript并不完全面向对象,不支持类和继承。JavaScript可在大多数浏览器上直接运行。5.1.2JavaScript的使用方法
1. 直接在HTML中嵌入JavaScriptHTML文件中使用 script 和 /script 标记对加入JavaScript语句,位于HTML文件的任何位置。最好将所有脚本程序放在Head标记内,以确保容易维护。在Script标记之间加上“ !”和“// ”表示如果浏览器不支持JavaScript语言,这段代码不执行。【例51】HTML文件中使用脚本语言。第1步,利用VS 2013建立一个空网站项目JavaScriptWebsite。第2步,在JavaScriptWebsite中添加HTML文件,命名为51.HTML,设为起始页,添加如下代码:
HTML
head
Meta http-equiv="Content-Type" content="text/HTML; charset=gb2312"第5章JavaScript编程技术

5.1JavaScript编程基础5.1.1JavaScript简介

1995年,Netscape公司的Brendan Eich在网景导航者浏览器上首次设计实现了JavaScript。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。为了取得技术优势,微软推出了JScript,CEnvi推出了ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,JavaScript兼容于欧洲计算机制造联合会(European Computer Manufactures Association,ECMA),因此也称为ECMAScript。JavaScript是一种嵌入HTML文件中的脚本语言,是基于对象驱动的,能对鼠标单击、表单输入、页面浏览等用户事件做出反应并进行处理。JavaScript是简化的编程语言,不像高级语言具有严格的使用限制,使用简洁灵活。JavaScript可直接使用变量,不必事先声明,变量类型规定也不十分严格。JavaScript是一种基于对象(objectbased)的语言,允许用户自定义对象,同时,浏览器还提供大量的内建对象,可以将浏览器中不同的元素作为对象处理,体现了面向对象编程的思想。但JavaScript并不完全面向对象,不支持类和继承。JavaScript可在大多数浏览器上直接运行。5.1.2JavaScript的使用方法
1. 直接在HTML中嵌入JavaScriptHTML文件中使用<script>和标记对加入JavaScript语句,位于HTML文件的任何位置。最好将所有脚本程序放在Head标记内,以确保容易维护。在Script标记之间加上“”表示如果浏览器不支持JavaScript语言,这段代码不执行。【例51】HTML文件中使用脚本语言。第1步,利用VS 2013建立一个空网站项目JavaScriptWebsite。第2步,在JavaScriptWebsite中添加HTML文件,命名为51.HTML,设为起始页,添加如下代码: ;
 ;


HTML中如何使用script语言--设置收藏夹实例

 ; 你点我呀 第3步,运行程序,运行结果如图51所示。 代码可以放在函数中,也可以不放在函数中。不放在函数中的代码在浏览器加载HTML页面后还没有呈现HTML显示效果前就执行一次,以后不再执行。如果重新加载页面,则再执行一次。而函数则可根据用户需要在页面中多次调用,完成多次执行操作。 ;一个HTML页面中可有多个<script>和程序段,程序段的前后关系以及程序段与HTML标记的前后关系应有逻辑关系。 ;脚本语言的设置也可以用,但是在HTML 4.0版本中,W3C建议制定脚本语言时用type属性代替language属性。2. 单独的Js文件将JavaScript程序以扩展名“.js”单独存放,再在HTML网页中使用
你点我呀 ;
图52程序运行结果 第3步,运行程序,出现超级链接: 你点我呀,单击后出现如图52所示的对话框。3. 直接在HTML的标记添加JavaScript脚本【例53】直接在HTML的标记添加JavaScript脚本。第1步,在JavaScriptWebsite中添加HTML文件,命名为53.HTML,设为起始页,添加如下代码: ;

HTML中如何使用script语言 ;
你点我呀 ;
第2步,运行程序,结果与例52相同。5.1.3语法规则
1. 区分大小写变量、函数名和操作符都区分大小写。例如,text和Text表示两种不同的变量。2. 标识符所谓标识符,是指变量、函数、属性的名字,或者函数的参数。标识符可以是下列格式规则组合起来的一个或多个字符: 第一个字符必须是一个字母、下画线(_)或美元符号($); 其他字符可以是字母、下画线、美元符号或数字; 不能把关键字、保留字、true、false和null作为标识符。3. 直接量(字面量literal)直接量(字面量)就是程序中直接显示出来的数据值,即常量。
100  ;  ; //数字字面量
李炎恢 //字符串字面量
false //布尔字面量
/js/gi //正则表达式字面量
null //对象字面量
4. 关键字一组具有特定用途的关键字,一般用于控制语句的开始或结束,或者用于执行特定的操作等。关键字也是语言保留的,不能用作标识符。JavaScript的全部关键字包括: break,else,new,var,case,finally,return,void,catch,for,switch,while,continue,function,this,with,default,if,throw,delete,in,try,do,instanceof和typeof。5. 保留字JavaScript还有一组不能用于标识符的保留字,尽管这些保留字目前在JavaScript中还没有特定的用途,但它们很有可能在将来被用作关键字。abstract,enum,int,short,boolean,export,interface,static,byte,extends,long,super,char,final,native,synchronized,class,float,package,throws,Const,goto,private,transient,debugger,implements,protected,volatile,double,import,public。6. 变量JavaScript的变量是松散型的。所谓松散型,就是用来保存任何类型的数据。定义变量时要使用var操作符(var是关键),后面跟一个变量名(变量名是标识符)。
var count;  ;  ;  ;  ;  ;  ;  ; //单个变量声明
var count,amount,level;  ;  ;//多个变量声明
var count=0,amount=100;  ;//变量声明和初始化
如果在var语句中没有初始化变量,变量自动取JavaScript值undefined。变量的名称可以是任意长度的。创建合法的变量名称应遵循如下规则: ;第一个字符必须是一个ASCII码(大小写均可),或一条下画线(_)。注意: 第一个字符不能是数字; 后续的字符必须是字母、数字或下画线; 且变量名称一定不能是保留字和关键字。7. 注释使用C风格的注释,包括单行注释和块级注释。
// 单行注释
/*
* 这是一个多行
* 注释
*/ 5.1.4运算符和表达式
1. 数据类型JavaScript中有5种简单的数据类型: Undefined、Null、Boolean、Number和String。还有一种复杂的数据类型——Object。ECMAScript不支持任何创建自定义类型的机制,所有值都为以上6种数据类型之一。Undefined类型只有一个值,即特殊的undefined。使用var声明变量,但没有对其初始化时,这个变量的值就是undefined。未初始化的变量与根本不存在的变量(未声明的变量)也是不一样的。
var box;
alert(age);//错误信息,age is not defined
Null类型是一个只有一个值的数据类型,即特殊的值null。它表示一个空对象引用(指针),而typeof操作符检测null会返回object。JavaScript中null和undefined的主要区别,即null的操作如同数字0,而undefined的操作如同特殊值NaN(不是一个数字)。但对null值和undefined值作比较总是相等的,因为undefined派生自null,JavaScript规定对它们的相等性测试返回true,如alert(undefined==null); //返回True【例54】JavaScript中的null计算。第1步,在JavaScriptWebsite中添加HTML文件,命名为54.HTML,设为起始页,添加如下代码: ;
第2步,运行程序,输出结果: ;消息框显示bestAge为null。消息框显示muchTooOld的值为0。【例55】JavaScript中的undefined计算。第1步,在JavaScriptWebsite中添加HTML文件,命名为55.HTML,设为起始页,添加如下代码: ;

第2步,运行程序,输出结果: ;消息框显示currentCount为undefined。消息框显示finalCount的值为NaN(Not a Number)。Boolean类型有两个值(字面量): true和false。而True不一定等于1,False不一定等于0。JavaScript区分大小写,True和False或者其他都不是Boolean类型的值。在JavaScript中,整数和浮点值没有差别; JavaScript数值可以是其中任意一种(JavaScript内部将所有的数值表示为浮点值)。整型值可以是正整数、负整数和0,可以用十进制、八进制和十六进制来表示。在JavaScript中,数字大多用十进制表示。浮点值为带小数部分的数,也可以用科学计数法来表示。八进制数值字面量以8为基数,前导必须是0。
var box=070; //八进制,56
十六进制字面量前面两位必须是0x,后面是0~9及A~F。
var box=0xA; //十六进制,10
浮点类型,就是该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。
var box=3.8;
var box=0.8; 字符串数值类型用来表示JavaScript中的文本。String类型用于表示由于零或多个16位Unicode字符组成的字符序列,即字符串。脚本中的字符串文本放在一对匹配的单引号或双引号中。字符串中可以包含双引号,该双引号两边需加单引号,如4\5。字符串中也可以包含单引号,该单引号两边需加双引号,如“15”。JavaScript中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。JavaScript中的对象其实就是一组数据和功能的集合。可以通过执行new对象类型的名称来创建对象。2. 数据类型之间的转换不同数据类型的转换有隐式转换和显示转换。在JavaScript中,可以对不同类型的值执行运算,不必担心JavaScript解释器产生异常。JavaScript解释器自动将数据类型强制转换为另一种类型,然后执行运算。数据类型转换过程见表51。 表51数据类型转换过程 运算结果例子 数值与字符串相加将数值强制转换为字符串55 "45"//"5545"布尔值与字符串相加将布尔值强制转换为字符串True "45" //"True45"数值与布尔值相加将布尔值强制转换为数值。True=1; False=055*True//55
字符串、数字、对象和undefined类型都可以转换为Boolean类型,转换规则见表52。 表52其他类型转换为Boolean类型 数 据 类 型TrueFalse String任何非空字符串空字符串Number非零的数字值0和NaNObject任何对象nullundefinedundefined
有3个函数可以把非数值转换为数值: Number()、parseInt()和parseFloat()。Number()函数是转型函数,可以用于任何数据类型,另外两个函数则专门用于把字符串转换成数值。【例56】数据类型。第1步,在JavaScriptWebsite中添加HTML文件,命名为56.HTML,设为起始页,添加如下代码: ;
第2步,运行程序,输出结果: ;
1//Boolean 类型的True 和False 分别转换成1 和0
25//数值型直接返回
0//空对象返回0
NaN//undefined 返回NaN
456//会返回整数部分
NaN//如果第一个不是数值,就返回NaN
12//从第一数值开始取,到最后一个连续数值结束
56//小数点不是数值,会被去掉
NaN//空返回NaN toString()方法可以把值转换成字符串。toString()方法一般不需要传递参数,但在数值转换成字符串的时候,可以传递进制参数。【例57】toString语句。第1步,在JavaScriptWebsite中添加HTML文件,命名为57.HTML,设为起始页,添加如下代码: ;

第2步,运行程序,输出结果: ;
10
1010
12
10
a
3. 运算符JavaScript运算符包括算术、逻辑、位、赋值以及其他运算符。运算符描述见表53。 表53运算符描述 算术运算符逻辑运算符位 运 算 符赋值运算符其他运算符 描述符号描述符号描述符号描述符号描述符号
负值-逻辑非!按位取反~赋值=删除Delete递增 小于<;按位左移<;<;运算赋值op=判断类型typeof续表
算术运算符逻辑运算符位 运 算 符赋值运算符其他运算符 描述符号描述符号描述符号描述符号描述符号 递减--大于>;按位右移>;>;空void乘法*小于等于<;=无符号右移>;>;>;实例instance of除法/大于等于>;=按位与&;新建new取模运算%等于(恒等)==按位异或^属于in加法 不等于!=按位或|减法-逻辑与&;&;逻辑或||条件运算符?:逗号,严格相等===非严格相等!==
相等(恒等)“==”与严格相等“===”的区别在于,恒等运算符在比较前会强制转换不同类型的值。例如,“1”==1,恒等对字符串“1”与数值1的比较结果为True。而严格相等不强制转换不同类型的值,因此它认为字符串“1”和数值1不相同。字符串数值和布尔值是按值比较的。如果它们的值相同,则比较结果为相等。对象(包括Array、Function、String、Number、Boolean、Error、Date以及RegExp对象)按引用比较。即使这些类型的两个变量具有相同的值,也只有在它们正好为同一对象时,比较结果才为True。【例58】比较运算符示例。第1步,在JavaScriptWebsite中添加HTML文件,命名为58.HTML,设为起始页,添加如下代码: ;
第2步,运行程序,输出结果: ;
True
False
True 4. 表达式JavaScript的表达式中由常量、变量、运算符和表达式组成,有3类表达式: 算式表达式。值为一个数值型值,例如: 5 a-x。字符串表达式。值为一个字符串,例如: “字符串1” str。布尔表达式。值为一个布尔值,例如: (x==y)&&(y>=5)。5.1.5函数函数为程序设计人员提供了显示模块化的工具。通常,根据所要完成的功能,将程序划分为一些相对独立的部分,每一部分编写一个函数,从而使各个部分充分独立,任务单一,结构清晰。函数包括内置函数和自定义函数1. 内置函数JavaScript语言包含很多内置函数,可以分为关于数值、布尔值、字符串、HTML字符串格式化、数组、日期和时间、数学和正则表达式几类函数。constructor(),返回创建该对象实例的函数,默认是数值对象。toExponential(),强制将数值以指数形式显示。toFixed(),把Number四舍五入为指定小数位数的数字。toLocaleString(),以字符串的形式返回当前对象的值。该字符串适用于宿主环境的当前区域设置。toPrecision(),显式地定义一个数有多少位数(包括小数点的左边和右边位数)。toString(),返回该数值的字符串格式。valueOf(),返回数值。toSource(),返回一个包含布尔对象的源字符串;可以使用这个字符串创建一个等价的对象。toString(),按照布尔结果返回True或Fales。valueOf(),返回布尔对象的原始值。charAt(),返回指定位置的字符。charCodeAt(),返回指定位置字符的数值。concat(),返回布尔对象的原始值。indexOf(),返回匹配子字符串第一次出现的位置,如果不存在,就返回-1。lastIndexOf(),返回匹配子字符串最后一次出现的位置,如果不存在,就返回-1。localeCompare(),比较两个字符串,并返回以数字形式表示的比较结果。length(),返回字符串的长度。match(),用于匹配正则表达式。replace(),通过正则表达式找到子串位置,并替换为新指定的字符串。search(),执行一个正则表达式的搜索。slice(),提取并返回一个子串。split(),将字符串分割成多个子串,并存储进字符串数组。substr(),返回字符串中指定位置、指定长度的子串。toLocaleLowerCase(),大写字符转为小写,同时尊重当前语言环境。toLocaleUpperCase(),小写字符转为大写,同时尊重当前语言环境。toLowerCase(),大写字符转为小写。toString(),返回表示该对象的一个字符串。toUpperCase(),小写字符转为大写。valueOf(),返回指定对象的原始数值。anchor(),创建一个HTML锚作为一个超文本的目标。big(),创建一个以“大”字体表示的字符串,好比置于标签中一样。blink(),创建一个闪烁的字符串,好比置于标签中一样。bold(),创建一个粗体显示的字符串,好比置于标签中一样。fixed(),创建一个打字机字体显示的字符串,好比置于标签中一样。fontcolor(),创建一个特定字体颜色显示的字符串,好比置于标签中一样。fontsize(),创建一个特定字体大小显示的字符串,好比置于标签中一样。italics(),创建一个斜体显示的字符串,好比置于标签中一样。link(),创建HTML超级链接。small(),创建一个小字体显示的字符串,好比置于标签中一样。strike(),创建一个加了删除线显示的字符串,好比置于标签中一样。sub(),以下标的方式显示,好比置于标签中一样。sup(),以上标的方式显示,好比置于标签中一样。concat(),返回两个数据经过连接后的数组。every(),如果数组内的元素均满足某测试函数,那么就返回True。filter(),在数组中通过过滤部分元素组成一个新的数组。forEach(),调用一个函数来处理数组中的每个元素。indexOf(),返回与指定元素相匹配的第一个位置,如果不存在,就返回-1。join(),连接数组中所有的元素,返回一个字符串。lastIndexOf(),返回与指定元素相匹配的最后一个位置,如果不存在,就返回-1。map(),调用一个函数处理数组中的每一个元素,将生成的结果组成一个新的数组,并返回。pop(),返回数组中的最后一个元素,并删除。push(),在数组的最后增加一个元素,并返回新数组的长度。reduce(),对数组中的所有元素(从左到右)调用指定的回调函数。该回调函数的返回值为累积结果,并且此返回值在下一次调用该回调函数时作为参数提供。reduceRight(),对数组中的所有元素(从右到左)调用指定的回调函数。该回调函数的返回值为累积结果,并且此返回值在下一次调用该回调函数时作为参数提供。reverse(),反转数组元素的顺序——第一个成为最后一个,最后一个成为第一个。shift(),删除数组的第一个元素并返回。slice(),提取一段数组并返回一个新的数组。some(),如果存在一个元素满足所提供的测试函数,就返回True。toSource(),代表一个对象的源代码。sort(),对数组中的元素排序。splice(),增删数组中的元素。toString(),返回一个表示数组及其元素的字符串。unshift(),在数组的首部添加新的元素,并且返回新数组的长度。Date(),返回今天的日期及时间。getDate(),按照本地模式返回指定日期是哪一日。getDay(),按照本地模式返回指定日期是周几。getFullYear(),按照本地模式返回指定日期是哪一年。getMilliseconds(),按照本地模式返回指定日期的毫秒值。getMinutes(),按照本地模式返回指定日期是几分。getMonth(),按照本地模式返回指定日期的月份。getSeconds(),按照本地模式返回指定日期是几秒。getTime(),按照本地模式返回当前的格林威治时间。getTimezoneOffset(),以分钟为单位返回时间偏差。getUTCDate(),按照世界统一时间返回指定日期是几号。getUTCDay(),按照世界统一时间返回指定日期是周几。getUTCFullYear(),按照世界统一时间返回指定日的年份。getUTCHours(),按照世界统一时间返回指定日期是几时。getUTCMilliseconds(),按照世界统一时间返回指定日期的毫秒数。getUTCMinutes(),按照世界统一时间返回指定日期的分钟数。getUTCMonth(),按照世界统一时间返回指定日期的月份。getUTCSeconds(),按照世界统一时间返回指定日期的秒数。setDate(),按照本地模式设置日期。setFullYear(),按照本地模式设置年份。setHours(),按照本地模式设置小时。setMilliseconds(),按照本地模式设置毫秒数。setMinutes(),按照本地模式设置分钟数。setMonth(),按照本地模式设置月份。setSeconds(),按照本地模式设置秒数。setTime(),按照格林尼治格式设置毫秒数。setUTCDate(),按照世界统一时间设置日期。setUTCFullYear(),按照世界统一时间设置年份。setUTCHours(),按照世界统一时间设置小时数。setUTCMilliseconds(),按照世界统一时间设置毫秒数。setUTCMinutes(),按照世界统一时间设置分钟数。setUTCMonth(),按照世界统一时间设置月份。setUTCSeconds(),按照世界统一时间设置秒数。toDateString(),返回日期的字符串。toLocaleDateString(),按照本地模式,返回日期的字符串。toLocaleFormat(),使用格式字符串,将日期转换为一个字符串。toLocaleString(),使用当前语言环境的约定将日期转换为一个字符串。toLocaleTimeString(),返回日期的“时间”部分作为一个字符串,使用当前语言环境的约定。toSource(),返回一个字符串代表一个等价的日期对象的来源,可以使用这个值来创建一个新的对象。toString(),返回一个字符串代表指定的日期对象。toTimeString(),返回日期的“时间”部分以字符串形式。toUTCString(),使用通用时间约定,将日期转换为一个字符串。valueOf(),返回日期对象的原始值。Date.parse( ),解析并返回日期和时间的字符串表示的内部毫秒表示日期。Date.UTC( ),返回指定的毫秒表示UTC日期和时间。abs(),返回数值的绝对值。acos(),返回一个数值的arccos值。asin(),返回一个数值的arcsin值。atan(),返回一个数值的arctan值。ceil(),返回大于或等于整数最小的一个数字。cos(),返回一个数值的cos值。exp(),返回指数。floor(),返回小于等于一个数的最大数。log(),返回一个数值以e为底的对数。max(),返回最大值。min(),返回最小值。pow(),返回以e为底的幂。random(),返回0~1的一个伪随机数。round(),返回四舍五入后的值。sin(),返回sin值。sqrt(),返回一个整数的平方根。tan(),返回一个数值的tan值。toSource(),返回字符串"Manth"。exec(),执行一个字符串的搜索匹配。test(),测试匹配的字符串参数。toSource(),返回一个对象文字代表指定的对象;可以使用这个值来创建一个新的对象。toString(),返回一个字符串代表指定的对象。2. 自定义函数自定义函数可以封装任意多条语句,而且可以在任何地方、任何时候调用执行。JavaScript中的函数使用function关键字来声明,后跟一组参数以及函数体。【语法】
function 函数名(形式参数表){
//函数体
}函数调用语法格式如下: 
函数名(实参表); 
当函数没有返回值时,可以不使用return语句,若使用return语句,也只能使用不带参数的形式; 当函数有返回值时,使用return语句返回函数值,格式为:
return表达式

return(表达式) 【例59】函数示例。第1步,在JavaScriptWebsite中添加HTML文件,命名为59.HTML,设为起始页,添加如下代码:  函数示例  
第2步,运行程序,输出结果: 
4的阶乘=24
5.1.6流程控制
1. if条件语句if语句有3种类型: 单分支、双分支和多分支。【语法】单分支: 
if(条件)  
{ 语句块; 
}
双分支: 
if(条件){
执行语句1
}
else{
执行语句2
}
多分支: 
if(条件1)执行语句1;
else if(条件2)执行语句2;
else if(条件3)执行语句3;
  
else 执行语句; 在嵌套语句中,每一层的条件表达式都会被计算,若为真,则执行其相应的语句,否则执行else后的语句。在嵌套语句中,else与距离最近的if语句配对,否则会产生歧义。多分支的另外一种形式: 
switch (expression)
case value: statement;
break;
case value: statement;
break;
case value: statement;
break;
case value: statement;
break;
case value: statement;
break;
default: statement; switch语句是多重条件判断,用于多个值相等的比较。关键字break会使代码跳出switch语句。如果没有关键字break,代码执行就会继续进入下一个case,关键字default说明了表达式的结果不等于任何一种情况时的操作。【例510】条件语句。第1步,在JavaScriptWebsite中添加HTML文件,命名为510.HTML,设为起始页,添加如下代码:  条件语句
第2步,运行程序,输出结果: 
b大于50
不管怎样,我都能被执行到!
one 2. for循环语句for语句也是一种先判断循环条件,后运行循环语句,在执行循环之前初始设置变量。【语法】
for(初始设置;循环条件;更新部分){
语句块
}
初始设置告诉循环的开始位置,必须赋予变量的初值; 循环条件用于判别循环停止时的条件。若条件满足,则执行循环体,否则跳出。更新部分定义循环控制变量在每次循环时按什么方式变换。初始位置、循环条件、更新部分之间必须使用分号分隔。【例511】for语句的使用。第1步,在JavaScriptWebsite中添加HTML文件,命名为511.HTML,设为起始页,添加代码: 
 
for 语句
第2步,运行程序,输出结果: 
1
2
3
4
5
具体执行过程: 第1步,声明变量var box=1。第2步,判断box <=5。第3步,alert(box)。第4步,box 。第5步,再次从第二步执行,直到判断为False。for循环的另一种用法是针对某对象集合中的每个对象或某数组中的每个元素,执行一个或者多个语句。【语法】
for(变量in对象或数组){
语句集
} 【例512】for语句的使用。第1步,在JavaScriptWebsite中添加HTML文件,命名为512.HTML,设为起始页,添加如下代码: 
for语句
第2步,运行程序,输出结果: 
name
age
height 3. while循环语句【语法】
while(条件){
语句块;
}
当条件为True时,反复执行循环体语句,否则跳出循环体。循环体中必须设置改变循环条件的操作,使之离循环体终止更近一步。
【语法】
Do{
语句块;
}
While (条件)
do…while语句是先运行,后判断的循环语句。也就是说,不管条件是否满足,至少先运行一次循环体。for和while两种语句都是循环语句,使用for语句处理有关数字时更容易看懂,也较紧凑; 而while循环更适合复杂的语句。【例513】while语句实例。第1步,在JavaScriptWebsite中添加HTML文件,命名为513.HTML,设为起始页,添加如下代码: 
while 语句  
第2步,运行程序,输出结果: 
1 2 3 4 5
1 2 3 4 5 4. break和continue语句使用break语句可使循环从for或while中强制跳出,而continue只跳过循环内剩余的语句,并没有跳出循环体。【例514】退出循环语句实例。第1步,在JavaScriptWebsite中添加HTML文件,命名为514.HTML,设为起始页,添加如下代码: 
退出循环语句
第2步,运行程序,输出结果: 
1 2 3 4
1 2 3 4 6 7 8 9 10
5. try…catch…finally语句try…catch…finally语句提供了一种方法来处理可能发生在给定代码块中的某些或全部错误,同时仍保持代码的运行。如果发生了程序员没有处理的错误,JavaScript只给用户提供它的普通错误信息,就好像没有错误处理一样。【语法】
try    
{   
tryStatements
}   
catch(exception) 
{   
catchStatements
}   
finally    
{   
finallyStatements
}    其中,try语句是必选项,tryStatements表示可能发生错误的语句。参数exception是必选项,可表示为任何变量名。catch语句是可选项,处理try语句中发生错误的语句。finally语句是可选项,在所有其他的过程发生之后被条件执行的语句。【例515】try语句。第1步,在JavaScriptWebsite中添加HTML文件,命名为515.HTML,设为起始页,添加如下代码: 
try 语句
第2步,运行程序,输出结果: 
Nested try running…
Nested finally is running… 【例516】try语句。第1步,在JavaScriptWebsite中添加HTML文件,命名为516.HTML,设为起始页,添加如下代码: 
try 语句

第2步,运行程序,输出结果: 
Outer try running…
Nested try running…
Nested catch caught an error
Nested finally is running…
Outer catch caught an error
re-thrown
Outer finally running
5.1.7事件处理事件(events)是指对计算机进行一定操作而得到的某一结果的行为,例如,将鼠标移动到某一个超链接上、单击鼠标按钮等都是事件。由鼠标或热键引发的一连串程序的动作,称为事件驱动(event driver)。对事件进行处理的程序或函数,称为事件处理程序(event handler)。在HTML文件中,可用支持事件驱动的JavaScript语言编写事件处理程序。用JavaScript进行事件编程主要用于两个目的: 验证用户输入窗体的数据和增加页面的动感效果。一个HTML元素能够响应鼠标和键盘的事件见表54。某些鼠标事件虽然事件名称不一样,但响应效果几乎一样,用户可根据实际需求选择某个事件进行编程。 表54鼠标事件和键盘事件列表 事件名称说明事件名称说明事件名称说明 onclick鼠标左键单击ondblclick鼠标左键双击onmouseup松开鼠标左键或右键onmousedown按下鼠标左键或右键onmouseover鼠标指针在该HTML元素经过onmouseout鼠标指针离开该HTML元素 onmousemove鼠标指针在其上移动时onmousewheel滚动鼠标滚轮onfocus当用鼠标或键盘使该HTML元素得到焦点时onkeypress击键操作发生时onkeyup松开某个键时onkeydown按下某个键时onchange当文本框的内容发生改变的时候onselect当用鼠标或键盘选中文本时onblurHTML元素失去焦点时上述事件的使用有两种方式: 一是直接执行JavaScript语句或调用JavaScript中定义的函数名,又称为内联模型; 二是脚本模型。内联模型的事件在HTML对象的事件中处理JavaScript函数或语句。【语法】
HTML对象的事件名称 =" JavaScript函数名或 处理语句" 
【例517】编写鼠标单击事件(函数名)。第1步,在JavaScriptWebsite中添加HTML文件,命名为517.HTML,设为起始页,添加如下代码:  检查输入的字符串是否全由数字组成
图53对话框 第2步,运行程序,弹出如图53所示的对话框,单击“检查”按钮,输出结果为True。
【例518】编写鼠标单击事件(处理语句)。第1步,在JavaScriptWebsite中添加HTML文件,命名为518.HTML,设为起始页,添加如下代码:    检查输入的字符串是否全由数字组成

onclick="javascript:var TestResult = !/\D/.test(mytext.value); 
/*使用正则表达式测试字符串*/ alert(TestResult);">
第2步,运行程序,输出结果: True。这种内联模型是最传统的一种处理事件的方法。在内联模型中,事件处理函数是HTML标签的一个属性,用于处理指定事件。虽然内联在早期使用较多,但它是和HTML混写的,并没有与HTML分离。内联模型违反了HTML与JavaScript代码层次分离的原则。为了解决这个问题,可以在JavaScript中处理事件。这种处理方式就是脚本模型。脚本模型: HTML描述对象,在JavaScript中处理事件。【语法】

….
【例519】鼠标单击(函数)。第1步,在JavaScriptWebsite中添加HTML文件,命名为519.HTML,设为起始页,添加如下代码:  检查输入的字符串是否全由数字组成



第2步,运行程序,输出结果: True。5.2JavaScript对象编程对象是一种类型,即引用类型,而对象的值就是引用类型的实例。JavaScript并不完全支持面向对象的程序设计方法,不能提供抽象、继承、封装等面向对象的基本属性。但它支持开发对象类型及根据对象产生一定数量的实例,同时还支持开发对象的可重用性,实现一次开发、多次使用的目的。5.2.1Object类型创建Object类型有两种方法: 一种是使用new运算符; 另一种是字面量表示法。使用new运算符创建Object,如: 
var p = new Object(); //new 方式
p.x=10;  // x,y两个属性
p.y=10;
new 关键字可以省略,如: 
var box = Object(); //省略了new 关键字
使用字面量方式创建Object,如
Var p={
X:10,
Y:10
}; 所谓字面量,是指由字母、数字等构成的字符串或者数值,它只能作为右值出现。所谓右值,是指等号右边的值,如: int a=123这里的a为左值,123为右值。常量和变量都属于变量,只不过常量是赋过值后不能再改变的变量,而普通的变量可以再进行赋值操作。
int a;   //a为变量
const int b=10;   //b为常量,10为字面量
string str="hello world";   //str为变量,hello world为字面量
Object类型的属性和方法如下: (1) Object(),构造函数。(2) hasOwnProperty(PropertyName),检查给定的属性是否在当前的对象实例中,其中PropertyName必须以字符串给定。(3) isPrototypeOf(object),检查传递的对象是否是另一个对象的原型。(4) propertyIsEnumerable(PropertyName),检查给定的属性是否能用forin语句来枚举。(5) toLocaleString(),返回的字符串与执行环境的地区对应。(6) toString(),返回字符串。(7) valueOf(),返回对象的字符串、数值或布尔值表示。对象属性的访问方法可以用点表示法,如p.x,p.y; 也可以用方括号表示法,如p["x"]。5.2.2Array对象可用Array对象创建数组。数组是若干元素的集合,每个数组都用一个名字作为标识。JavaScript中没有提供明显的数组类型,可通过JavaScript内建对象Array或使用自定义对象的方式创建数组对象。数组每个元素可以保存任何类型,数组的大小也是可以调整的。1. 使用new关键字创建数组【语法】var数组名=new Array(数组长度值),如
var box = new Array();  //创建了一个数组
var box = new Array(10); //创建一个包含10 个元素的数组
var box = new Array("Iphone4",白色,4500); //创建一个数组并分配好元素 2. 使用字面量创建
var box = []; //创建一个空的数组
var box = ["Iphone4",白色,4500]; //创建包含元素的数组 创建数组后,可通过[ ]来访问数组元素。用数组对象的属性length可获取数组元素的个数。当向用关键字Array生成的数组中添加元素时,JavaScript自动改变属性length的值。JavaScript中的数组索引总是从0开始,而不是1。3. 使用索引下标读取数组的值
alert(box[2]); //获取第3个元素
box[2] = "学生"; //修改第3个元素
box[4] = "计算机编程"; //增加第5个元素
4. 使用length属性获取数组元素量
alert(box.length) //获取元素个数
box.length = 10; //强制元素个数
5. 栈方法JavaScript提供了一种让数组的处理方法类似于其他数据结构的处理方法。可以让数组像栈一样限制插入和删除数据项,为数组提供了push()和pop()方法。push()方法可以接收任意数量的参数,把它们逐个添加到数组的末尾,并返回修改后数组的长度。而pop()方法则从数组末尾移除最后一个元素,减少数组的length值,然后返回移除的元素,如
var box = ["Iphone4",白色,4500]; //字面量声明
alert(box.push("2015")); //数组末尾添加一个元素,并且返回长度
alert(box); //查看数组
box.pop(); //移除数组末尾元素,并返回移除的元素
alert(box); //查看数组
6. 队列方法队列在数组的末端添加元素,从数组的前端移除元素。通过push()向数组末端添加一个元素,然后通过shift()方法从数组前端移除一个元素,如: 
var box = ["Iphone4",白色,4500]; //字面量声明
alert(box.push("2015")); //数组末尾添加一个元素,并且返回长度
alert(box); //查看数组
box.shift (); //移除数组的开头元素,并返回移除的元素
alert(box); //查看数组
为数组提供一个unshift()方法,它和shift()方法的功能完全相反。unshift()方法为数组的前端添加一个元素,如: 
box.unshift("apple"); //数组开头添加1个元素
alert(box); //查看数组
7. 重排序方法数组中已经存在两个可以直接用来排序的方法: reverse()和sort(),如: 
var a = [1,2,3,4,5]; //数组
alert(a.reverse()); //逆向排序方法,返回排序后的数组
alert(a); //源数组也被逆向排序了,说明是引用
var b = [4,1,7,3,9,2]; //数组
alert(b.sort()); //从小到大排序,返回排序后的数组
alert(b); //源数组也被从小到大排序了
【例520】使用自定义对象的方式创建数组对象。通过function定义一个数组,其中arrayName是数组名,size是数组长度,通过this[i]为数组赋值。定义对象后不能马上使用,还必须使用new操作符创建一个数组示例MyArray。一旦给数组赋予了初值,数组中就具有了真正意义的数据,以后就可以在程序设计过程中直接引用了。第1步,在JavaScriptWebsite中添加HTML文件,命名为520.HTML,设为起始页,添加如下代码: 
;
第2步,运行程序,输出结果: 
8
5.2.3String对象在JavaScript中,可以将字符串当作对象来处理。创建String对象实例的语法如下。【语法】
Var String对象实例名 ="字符串值";

Var String对象实例名 =new String("字符串值");
或 Var String对象实例名 =String("字符串值");

var str = "Hello World";
var str1 = new String(str);
var str = String("Hello World");
String对象只有一个属性,即length属性,包含了字符串中的字符数(空字符串为0),它是一个数值,可以直接在计算中使用。String对象内置方法有30多种,如anchor、link、substring、indexOf、replace等,具体参阅5.1.5节的内置函数。部分方法用法如下: (1) anchor()方法,用于创建HTML锚。 【语法】
stringObject.anchor(anchorname)
其中anchorname为必需项,为锚定义名称。 如
var txt="Hello world!";
document.write(txt.anchor("myanchor"));
输出: 
Hello world! 
(2) big()方法,用于把字符串显示为大号字体。如
var str="Hello world!";
document.write(str.big());
(3) blink()方法,用于显示闪动的字符串。如
var str="Hello world!";
document.write(str.blink());
(4) bold()方法,用于把字符串显示为粗体。如
var str="Hello world!"
document.write(str.bold())
charAt()方法,可返回指定位置的字符。【语法】
stringObject.charAt(index)
其中index为必需项,表示字符串中某个位置的数字,即字符在字符串中的下标。字符串中第一个字符的下标是0。如果参数index不在0与string.length之间,该方法将返回一个空字符串。(5) charCodeAt()方法可返回指定位置的字符的Unicode编码。这个返回值是0~65535的整数。charCodeAt()方法与charAt()方法执行的操作相似,只不过前者返回的是位于指定位置的字符的编码,而后者返回的是字符子串。如
var str="Hello world!"
document.write(str.charCodeAt(1))
输出: 
101
(6) concat()方法,用于连接两个或多个字符串。【语法】
stringObject.concat(stringX,stringX,…,stringX)
其中stringX为必需项,是将被连接为一个字符串的一个或多个字符串对象。注意,使用“ ”运算符进行字符串的连接运算通常会更简便一些。如
var str1="Hello "
var str2="world!"
document.write(str1.concat(str2))
(7) fontcolor()方法,用于按照指定的颜色显示字符串。【语法】
stringObject.fontcolor(color)
其中color为必需项,为字符串规定fontcolor。color值必须是颜色名、RGB值或者十六进制数。如
var str="Hello world!"
document.write(str.fontcolor("Red"))
(8) lastIndexOf()方法,可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。 【语法】
stringObject.lastIndexOf(searchvalue,fromindex)
其中searchvalue为必需项,规定需检索的字符串值。 fromindex为可选的整数参数,规定在字符串中开始检索的位置,它的合法取值是0到stringObject.length-1。如省略该参数,则将从字符串的最后一个字符处开始检索。lastIndexOf()方法对大小写敏感。如果要检索的字符串值没有出现,则该方法返回-1。如
var str="Hello world!"
document.write(str.lastIndexOf("Hello") "
")
document.write(str.lastIndexOf("World") "
")
document.write(str.lastIndexOf("world"))
输出: 
0
-1
6
(9) link()方法,用于把字符串显示为超链接。【语法】
stringObject.link(url)
其中参数url为必需项,规定要链接的URL。 如
var str="Free Web Tutorials!"
document.write(str.link("http://www.w3school.com.cn"))
(10) match()方法,可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。该方法类似indexOf()和lastIndexOf(),但是它返回指定的值,而不是字符串的位置。【语法】
stringObject.match(searchvalue)

stringObject.match(regexp)
其中searchvalue为必需项,规定要检索的字符串值。参数regexp为必需项,规定要匹配的模式的RegExp对象。如果该参数不是RegExp对象,则需要首先把它传递给RegExp构造函数,将其转换为RegExp对象。 如
var str="Hello world!"
document.write(str.match("world") "
")
document.write(str.match("World") "
")
document.write(str.match("worlld") "
")
document.write(str.match("world!"))
输出: 
world
null
null
world!
(11) replace()方法,用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。【语法】
stringObject.replace(regexp/substr,replacement)
其中参数regexp/substr为必需项,规定子字符串或要替换的模式的RegExp对象。如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为RegExp对象。参数replacement为必需项,是一个替换字符串。如
var str="Visit Microsoft!";
document.write(str.replace(/Microsoft/,"W3School"));
输出: 
Visit W3School!(12) search()方法,用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如
stringObject.search(regexp)
其中参数regexp可以是需要在stringObject中检索的子串,也可以是需要检索的RegExp对象。要执行忽略大小写的检索,请追加标志i。返回值:  stringObject中第一个与regexp匹配的子串的起始位置。注释: 如果没有找到任何匹配的子串,则返回-1。search()对大小写敏感。如
var str="Visit W3School!";
document.write(str.search(/W3School/));
输出: 
 6
(13) slice()方法,可提取字符串的某个部分,并以新的字符串返回被提取的部分。【语法】
stringObject.slice(start,end)
start表示要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1指字符串的最后一个字符,-2指字符串的倒数第二个字符,以此类推。end表示紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括start到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。返回值: 一个新的字符串,包括字符串stringObject从start开始(包括start)到end结束(不包括end)为止的所有字符。String.slice()与Array.slice()相似。如,
var str="Hello happy world!";
document.write(str.slice(6));
输出: 
happy world!;
var str="Hello happy world!";
document.write(str.slice(6,11));
输出: 
Happy
(14) split()方法,用于把一个字符串分割成字符串数组。【语法】
stringObject.split(separator,howmany)
其中参数separator为必需项,为字符串或正则表达式,从该参数指定的地方分割stringObject。参数howmany为可选项,可指定返回数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。如果把空字符串(""),不是空格,用作separator,那么stringObject中的每个字符之间都会被分割。如
var str="How are you doing today?";
document.write(str.split(" ") "
");
document.write(str.split("") "
");
document.write(str.split(" ",3));
输出: 
How,are,you,doing,today?
H,o,w,,a,r,e,,y,o,u,,d,o,i,n,g,,t,o,d,a,y,?
How,are,you
(15) substr()方法,可在字符串中抽取从start下标开始的指定数目的字符。【语法】
stringObject.substr(start,length)
其中参数start为必需项,为要抽取的子串的起始下标,必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1指字符串中最后一个字符,-2指字符串中倒数第二个字符,以此类推。 length为可选项,为子串中的字符数,必须是数值,如果省略了该参数,那么返回从stringObject的开始位置到结尾的字符串。返回值: 一个新的字符串,包含从stringObject的start(包括start所指的字符)处开始的lenght个字符。如果没有指定length,那么返回的字符串包含从start到stringObject的结尾的字符。ECMAscript没有对该方法进行标准化,因此反对使用它。如
var str="Hello world!"
document.write(str.substr(3,7))
输出: 
lo worl
(16) substring()方法,用于提取字符串中介于两个指定下标之间的字符。【语法】
stringObject.substring(start,stop)
其中参数start为必需项,为一个非负的整数,规定要提取的子串的第一个字符在stringObject中的位置。 stop为可选项,是一个非负的整数,比要提取的子串的最后一个字符在stringObject中的位置多1,如果省略该参数,那么返回的子串会一直到字符串的结尾。返回值为一个新的字符串,该字符串值包含stringObject的一个子字符串,其内容是从start处到stop-1处的所有字符,其长度为stop-start。substring()方法返回的子串包括start处的字符,但不包括end处的字符。如果参数start与end相等,那么该方法返回的就是一个空串(即长度为0的字符串)。如果start比end大,那么该方法在提取子串之前会先交换这两个参数。与slice()和substr()方法不同的是,substring()不接受负的参数。如 
var str="Hello world!"
document.write(str.substring(3,7))
输出:  lo w
(17) indexOf()方法,可返回某个指定的字符串值在字符串中首次出现的位置。【语法】
stringObject.indexOf(searchvalue,fromindex)
其中searchvalue为必需项,规定需检索的字符串值。fromindex为可选的整数参数,规定在字符串中开始检索的位置。它的合法取值是0到stringObject.length-1。如省略该参数,则将从字符串的首字符开始检索。该方法将从头到尾地检索字符串stringObject,看它是否含有子串searchvalue。开始检索的位置在字符串的fromindex处或字符串的开头(没有指定fromindex时)。如果找到一个searchvalue,则返回searchvalue第一次出现的位置。stringObject中的字符位置是从0开始的。indexOf()方法对大小写敏感。如
var str="Hello world!"
document.write(str.indexOf("Hello") "
")
document.write(str.indexOf("World") "
")
document.write(str.indexOf("world"))
输出: 
0
-1
6
5.2.4Math对象Math对象提供了常用的数学函数和运算,如三角函数、对数函数、指数函数等。(1) 常量(即属性)。Math中提供了6个属性,它们是: E,返回算术常量e,即自然对数的底数(约等于2.718)。LN2,返回2的自然对数(约等于0.693)。LN10,返回10的自然对数(约等于2.302)。LOG2E,返回以2为底的e的对数。LOG10E,返回以10为底的e的对数(约等于0.434)。PI,返回圆周率(约等于3.14159)。SQRT1_2,返回2的平方根的倒数(约等于0.707)。SQRT2,返回2的平方根(约等于1.414)。如
document.write("Math.E = " Math.E "
");
document.write("Math.LN2 = " Math.LN2 "
");
document.write("Math.LN10 = " Math.LN10 "
");
document.write("Math.LOG2E = " Math.LOG2E "
");
document.write("Math.LOG10E = " Math.LOG10E "
");
document.write("Math.PI = " Math.PI "
");
document.write("Math.SQRT1_2 = " Math.SQRT1_2 "
");
document.write("Math.SQRT2 = " Math.SQRT2 "
");
输出结果: 
Math.E = 2.718281828459045
Math.LN2 = 0.6931471805599453
Math.LN10 = 2.302585092994046
Math.LOG2E = 1.4426950408889634
Math.LOG10E = 0.4342944819032518
Math.PI = 3.141592653589793
Math.SQRT1_2 = 0.7071067811865476
Math.SQRT2 = 1.4142135623730951
(2) abs()方法,可返回数的绝对值。【语法】
Math.abs(x);
其中x必须为一个数值,此数可以是整数和小数。(3) acos()和asin(),返回数的反余弦值和反正弦值。【语法】
Math.acos(x)
Math.asin(x)
其中x必须是-1.0~1.0的数; 如果x不在上述范围,则返回NaN。(4) atan()方法,返回数字的反正切值。【语法】Math.atan(x); x为必需项,必须是一个数值,返回的值是-PI/2~PI/2的弧度值。(5) atan2()方法,返回从X轴到点(x,y)之间的角度。【语法】Math.atan2(y,x),返回-PI~PI的值,是从X轴正向逆时针旋转到点(x,y)时经过的角度。(6) ceil()方法,可对一个数进行上舍入,即大于等于x,并且与它最接近的整数。【语法】Math.ceil(x); x为必需项,必须是一个数值。如
document.write(Math.ceil(0.60) "
")
document.write(Math.ceil(0.40) "
")
document.write(Math.ceil(5) "
")
document.write(Math.ceil(5.1) "
")
document.write(Math.ceil(-5.1) "
")
document.write(Math.ceil(-5.9))
输出: 
1
1
5
6
-5
-5
(7) cos()和sin()方法,返回一个数字的余弦值和正弦值。【语法】
Math.cos(x);
Math.sin(x);
其中参数x为必需项,必须是一个数值,返回的是-1.0~1.0的数。要求x是输入的一个弧度值。如 
document.write(Math.cos(Math.PI));
document.write(Math.cos(Math.PI/2)); 
document.write(Math.cos(Math.PI/3));
分别输出-1,6.123233995736766e17,0.5000000000000001。为什么会出现这些怪异的数字呢?其实大家都知道document.write(Math.cos(Math.PI/2));应该输出0,而在JavaScript中可能没有求得0,所以就用一个非常小的数代替。类似的document.write(Math.cos(Math.PI/3));应该是0.5才对,但是却在最后面多了一位,因为寄存器本身就不可能表示所有的数,所以在计算过程中可能出现差错。exp()方法,可返回e的x次幂的值。【语法】
Math.exp(x);
其中x为必需项,为任意数值或表达式,被用作指数。  floor()方法,可对一个数进行下舍入。和ceil()方法对应,floor()方法是对一个数进行下舍入,即小于等于x,且与x最接近的整数。【语法】
Math.floor(x);
其中x为必需项,必须是一个数值。如
document.write(Math.floor(0.60) "
");;
document.write(Math.floor(0.40) "
");
document.write(Math.floor(5) "
");
document.write(Math.floor(5.1) "
");
document.write(Math.floor(-5.1) "
");
document.write(Math.floor(-5.9));
输出: 
0
0
5
5
-6
-6 (8) log()方法,可返回一个数的自然对数。Math.log(x);//参数x必须大于0,小于0则结果为NaN,等于0则结果为-Infinity。如 
document.write(Math.log(2.7183) "
");
document.write(Math.log(2) "
");
document.write(Math.log(1) "
");
document.write(Math.log(0) "
");
document.write(Math.log(-1));
输出:  1.0000066849139877
0.6931471805599453
0
-Infinity
NaN
(9)  max()和min()方法,分别返回两个指定的数中带有较大或较小的值的那个数。【语法】
Math.max(x…);
Math.min(x,y);
其中x为0或多个值。在ECMAScript v3前,该方法只有两个参数。返回值: 参数中最大的值。如果没有参数,则返回Infinity。如果有某个参数为NaN,或是不能转换成数字的非数字值,则返回NaN。x为0或多个值。在ECMAScript v3前,该方法只有两个参数。如
document.write(Math.max(5,3,8,1));   //8
document.write(Math.max(5,3,8,M));   //NaN
document.write(Math.max(5));   //5
document.write(Math.max());   //-Infinity (10) pow()方法,可返回x的y次幂的值。【语法】
Math.pow(x,y);
其中x为必需项,为底数,必须是数字。y也为必需项,为幂数,必须是数字。返回值: 如果结果是虚数或负数,则该方法返回NaN。如果由于指数过大而引起浮点溢出,则该方法返回Infinity。如
document.write(Math.pow()
);
document.write(Math.pow(2)
);
document.write(Math.pow(2,2)
);
document.write(Math.pow(2,2,2)
);
document.write(Math.pow(M,2)
);
输出: 
NaN
NaN
4
4
NaN
(11) random()方法,可返回0~1的一个随机数。【语法】
Math.random();//无参
返回:  0.0~1.0的一个伪随机数。真正意义的随机数是某次随机事件产生的结果,经过无数次后表现为呈现某种概率论,它不可预测的。而伪随机数是根据伪随机算法实现的,它采用了一种模拟随机的算法,因此被称为伪随机数。如 
document.write(Math.random())
输出: 
0.12645312909485157
(12) round()方法,可把一个数字舍入为最接近的整数。
【语法】
Math.round(x)
其中参数x为必需项,必须是数字。如
document.write(Math.round(0.60) "
");
document.write(Math.round(0.50) "
");
document.write(Math.round(0.49) "
");
document.write(Math.round(-4.40) "
");
document.write(Math.round(-4.60));
输出: 
1
1
0
-4
-5
5.2.5Number对象Number对象即数字,它的构造方法: 
var num = 10;
var num = new Number();   //num == 0
var num = new Number(value);
其中value为数值或是可以转换为数值的量,如字符串1002; 但是假如为M122,则返回NaN。(1) 常数。除了Math对象中可用的几个特殊数值属性(例如PI)外,Number对象还有几个其他数值属性。
MAX_VALUE,可表示的最大的数。 // 1.7976931348623157e 308
MIN_VALUE,可表示的最小的数 。// 5e-324
NEGATIVE_INFINITY,负无穷大,溢出时返回该值。//-Infinity
POSITIVE_INFINITY,正无穷大,溢出时返回该值。//Infinity
NaN,非数字值。// NaN
Number.NaN是一个特殊的属性,被定义为“不是数值”。例如,被0除返回NaN。NaN与任何数值或本身作比较的结果都是不相等,所以不能用Number.NaN比较测试一个无法被解析为数字的字符串是否为NaN,需要使用isNaN()函数测试一个字符串是否为NaN。(2) toString()方法,可把一个Number对象转换为一个字符串,并返回结果。【语法】
NumberObject.toString(radix);
其中参数radix为可选项,规定表示数字的基数,是2~36的整数。若省略该参数,则使用基数10。当调用该方法的对象不是Number时,抛出TypeError异常。数字的字符串表示,例如,当radix为2时,NumberObject会被转换为二进制值表示的字符串。如
var num = 10;
document.write(num.toString(2));
输出: 
1010
(3) toFixed()方法,可把Number四舍五入为指定小数位数的数字。【语法】
NumberObject.toFixed(num);
其中num为必需项,规定小数的位数,是0~20的值,包括0和20,有些实现可以支持更大的数值范围。如果省略了该参数,将用0代替。返回值:  num为0~20时不会抛出异常,假如num>20,则有可能抛出异常。如:
var num = new Number(13.37);
document.write (num.toFixed(1));
输出: 
13.4
(4)  toExponential()方法,可把对象的值转换成指数计数法,即科学计数法。【语法】
NumberObject.toExponential(num)
其中参数num为必需项,规定指数计数法中的小数位数,是0~20的值,包括0和20,有些实现可以支持更大的数值范围。如果省略了该参数,将使用尽可能多的数字。如: 
var num = new Number(10000);
document.write (num.toExponential(1));
输出: 
1.0e 4
(5) toPrecision()方法,可在对象的值超出指定位数时将其转换为指数计数法。【语法】
toPrecision(num)
其中参数num为指定的位数,即超过多少位时采用指数计数法。如 
var num = 10000;
document.write (num.toPrecision(4)
);
document.write (num.toPrecision(8));
输出: 
1.000e 4//1.000共4位数
10000.000//10000.000共8位数 5.2.6Date对象Date对象是操作日期和时间的对象。Date对象对日期和时间的操作只能通过方法。Data对象可以用来表示任意的日期和时间,获取当前系统日期以及计算两个日期的间隔等。常用的方法有getFullYear、getMonth、getDate等。通常,Date对象给出日期、月份、天数和年份以及以小时、分钟和秒表示的时间。该信息是基于1970年1月1日00:00:00.000 GMT开始的毫秒数,其中GMT是格林尼治标准时间(首选术语是UTC,Universal Coordinated Time,或者“全球标准时间”,它引用的信号是由“世界时间标准”发布的)。JavaScript可以处理250000 B.C.到250000 A.D.范围内的日期。同样,可使用new运算符来创建一个新的Date对象。【例521】Date对象的使用。第1步,在JavaScriptWebsite中添加HTML文件,命名为521.HTML,设为起始页,添加如下代码: 

关于Date 对象的使用 第2步,运行程序,输出结果。结果: 
现在是2017年6月25日19时42分59秒星期二
There are 3682 days between November 1,1997 10:15 AM and December 1,2007 10:15 AM
5.3JavaScript ActiveX编程技术一般来说,在计算机上安装好系统软件和应用软件后,需要一些ActiveX控件来实现其功能。例如,FileSystemObject控件对象提供对计算机文件系统的访问; Excel.Application和Word.Application分别提供对Excel和Word的控制和操作。JavaScript还提供了ActiveXObject方法实现对ActiveX控件的访问。5.3.1FileSystemObject控件FileSystemObject控件对象提供了几乎所有访问磁盘文件系统所需要的功能,如文件与文件夹的创建和删除、复制文件、删除文件、移动文件、驱动器操作、读写文件操作等,具体的属性、方法和事件用法可参阅相关资料。1. FileSystemObject对象JavaScript实现文件操作功能,主要对象为FileSystemObject,这个对象包括的相关对象和集合如下: Driver对象类型。包括收集系统中驱动器相关信息的方法和属性,如共享名、可用空间等。一个drive对象不一定代表一个物理硬盘,还可以是一个CDROM驱动器、一个RAM盘或者一个通过网络逻辑连接的资源。Drivers集合类型。提供系统中一系列以物理方式或者逻辑方式存在的驱动器对象。File对象类型。包括对文件进行创建、删除或者移动操作的相关方法和属性,还包括查询文件名称、路径以及其他文件属性的方法和属性。Files集合类型。提供包含在文件夹中的一系列File对象。Folder对象类型。包括对文件夹进行创建、删除或者移动操作的相关方法和属性。Folders集合类型。提供包含在文件夹中的一系列Folder对象。TextStream对象类型。提供文本文件的读写功能。2. FileSystemObject的使用步骤使用FileSystemObject对象编程,一般要经过如下步骤: 步骤1: 创建FileSystemObject对象。创建FileSystemObject对象的代码如下: 
var fso = new ActiveXObject("Scripting.FileSystemObject"); 
上述代码执行后,fso就成为一个FileSystemObject对象实例。步骤2: 应用相关方法。创建对象实例后,就可以使用对象的相关方法。比如,使用CreateTextFile方法创建一个文本文件:  
var f1 = fso.createtextfile("c:\\myjstest.txt",true"); 
步骤3: 访问对象相关属性。建立指向对象的句柄,通过get方法访问对象的相关属性,GetDrive负责获取驱动器信息,GetFolder负责获取文件夹信息,GetFile负责获取文件信息,如: 
var fso = new ActiveXObject("Scripting.FileSystemObject"); 
var f1 = fso.GetFile("c:\\myjstest.txt"); 
//使用f1访问对象的相关属性 
var fso = new ActiveXObject("Scripting.FileSystemObject"); 
var f1 = fso.GetFile("c:\\myjstest.txt"); 
//显示c:\myjstest.txt的最后修改日期属性值
alert("File last modified: " f1.DateLastModified); 
使用create方法建立的对象,就不必再使用get方法获取对象句柄了,直接使用create方法建立的句柄名称: 
var fso = new ActiveXObject("Scripting.FileSystemObject"); 
var f1 = fso.createtextfile("c:\\myjstest.txt",true"); 
alert("File last modified: " f1.DateLastModified);
3. 操作驱动器使用FileSystemObject对象编程,实现对驱动器(Drives)和文件夹(Folders)的复制、移动文件夹,获取文件夹的属性等操作。Drive对象负责收集系统中的物理或逻辑驱动器资源内容,它具有如下属性。TotalSize: 以字节(byte)为单位计算的驱动器大小。 AvailableSpace或FreeSpace: 以字节为单位计算的驱动器可用空间。 DriveLetter: 驱动器字母。DriveType: 驱动器类型,取值为removable(移动介质)、fixed(固定介质)、network(网络资源)、CD-ROM或者RAM盘。 SerialNumber: 驱动器的系列码。FileSystem: 所在驱动器的文件系统类型,取值为FAT、FAT32和NTFS。IsReady: 驱动器是否可用。ShareName: 共享名称。 VolumeName: 卷标名称。 Path和RootFolder: 驱动器的路径或者根目录名称。【例522】关于Drives对象的使用。第1步,在JavaScriptWebsite中添加HTML文件,命名为522.HTML,设为起始页,添加如下代码: 

关于Drives对象的使用


第2步,运行程序,结果如图54所示。如果运行程序没有反应,就须修改IE等浏览器的ActiveX控件的配置,具体可以参考图55。 图55ActiveX的配置 4. 操作文件夹操作文件夹(Folders)涉及文件夹的操作包括创建、移动、删除以及获取相关属性。相关属性和方法如下: FileSystemObjec.CreateFolder,创建文件夹。Folder.Delete或FileSystemObjec.DeleteFolder,删除文件夹。Folder.Move或FileSystemObjec.MoveFolder,移动文件夹。Folder.Copy或FileSystemObjec.CopyFolder,复制文件夹。Folder.Name,获得文件夹名称。FileSystemObjec.FolderExists,判断文件夹是否存在。FileSystemObjec.GetFolder,取得存在Folder对象的实例。FileSystemObjec.GetParentFolderName,取得文件夹的父文件夹名称。FileSystemObjec.GetSpecialFolder,取得系统文件夹路径信息。要实现以上功能,需要有足够的权限,浏览器的安全模式需要设置为“中”。如果JavaScript脚本使用Scripting.FileSystemObject的时候报automation服务器不能创建对象”错误,还应启用IE的安全设置“不允许运行未标记为安全的activeX控件”功能。注意: 如果将相应的网站设成“受信任的站点”,就必须对“受信任的站点”进行相应的IE安全设置,此时如果对“Internet”IE设置,将是徒劳。【例523】获取父文件夹名称、创建文件夹、删除文件夹、判断是否为根目录等操作。第1步,在JavaScriptWebsite中添加HTML文件,命名为523.HTML,设为起始页,添加如下代码: 
var fso,fldr,s = ""; 
// 创建FileSystemObject对象实例 
fso = new ActiveXObject("Scripting.FileSystemObject"); 
// 获取Drive 对象 
fldr = fso.GetFolder("c:\\"); 
// 显示父目录名称 
alert("Parent folder name is: " fldr "\n"); 
// 显示所在drive名称 
alert("Contained on drive " fldr.Drive "\n"); 
// 判断是否为根目录 
if (fldr.IsRootFolder) 
alert("This is the root folder."); 
else 
alert("This folder isn a root folder."); 
alert("\n\n"); 
// 创建新文件夹 
fso.CreateFolder ("C:\\Bogus"); 
alert("Created folder C:\\Bogus" "\n"); 
// 显示文件夹基础名称,不包含路径名 
alert("Basename= " fso.GetBaseName("c:\\bogus") "\n"); 
// 删除创建的文件夹 
fso.DeleteFolder ("C:\\Bogus"); 
alert("Deleted folder C:\\Bogus" "\n");
第2步,运行程序,输出结果: 
Parent folder name is: C:\
Contained on drive c: 
This is the root folder.
Created folder c:\Bogus
Basename=bogus
Deleted folder c:\Bogus
5.3.2Excel.Application控件将网页中的数据导入Excel中的方法有很多,这里先介绍一种,即利用ActiveX控件的方式,即Excel.Application,这个控件是MS为Excel提供的编程接口,在很多种编程语言中都可以通过该接口来操纵Excel表格。Application对象是Microsoft Office Excel对象模型中最高级别的对象,表示Excel程序自身。Application对象提供正在运行的程序的信息,应用于程序实例的选项以及实例中打开的当前对象。因为它是对象模型中最高的对象,Application对象也包含组成一个工作簿的很多部件,包括如工作簿、工作表集合、单元格以及这些对象所包含的数据等。JavaScript操作Excel.Application的常用方法有: (1) 创建一个新的Excel表格。
var XLObj = new ActiveXObject("Excel.Application");
var xlBook = XLObj.Workbooks.Add;                     //新增工作簿
var ExcelSheet = xlBook.Worksheets(1);                   //创建工作表 
(2) 保存表格。
ExcelSheet.SaveAs("C:\\TEST.XLS");
(3) 使Excel通过Application对象可见。
ExcelSheet.Application.Visible = true; 
(4) 打印。
xlBook.PrintOut;   
或者:
ExcelSheet.PrintOut; 
(5) 关闭。
xlBook.Close(savechanges=false); 
或者: 
ExcelSheet.Close(savechanges=false);
(6) 结束进程。
ExcelSheet.Application.Quit();
或者:
XLObj.Quit();
XLObj=null;
(7) 页面设置。PageSetup对象包含所有页面设置的属性(左边距、底部边距、纸张大小等),此对象有页面、页边距、页眉/页脚、工作表和无对应选项卡5个类别,共有49个属性。
ExcelSheet.ActiveSheet.PageSetup.Orientation = 2;//1纵向或2横向
ExcelSheet.ActiveSheet.PageSetup.LeftMargin= 2/0.035; //左页边距为2cm
ExcelSheet.ActiveSheet.PageSetup.RightMargin = 3/0.035;   //右页边距为3cm
ExcelSheet.ActiveSheet.PageSetup.TopMargin = 4/0.035; //上页边距为4cm
ExcelSheet.ActiveSheet.PageSetup.BottomMargin = 5/0.035; //下页边距为5cm
ExcelSheet.ActiveSheet.PageSetup.HeaderMargin = 1/0.035; //页眉页边距为1cm
ExcelSheet.ActiveSheet.PageSetup.FooterMargin = 2/0.035;   //页脚页边距为2cm
这6个属性的单位都是“磅”。磅是打印字符的高度的度量单位。1磅等于1/72in(1in=0.0254m),或大约等于1cm的1/28。如: 20.035×128=2.0408≈2cm。
ExcelSheet.ActiveSheet.PageSetup.CenterHeader = "页眉中部内容";
ExcelSheet.ActiveSheet.PageSetup.LeftHeader = "页眉左部内容";
ExcelSheet.ActiveSheet.PageSetup.RightHeader = "页眉右部内容";
ExcelSheet.ActiveSheet.PageSetup.LeftFooter = "页脚左部内容";
ExcelSheet.ActiveSheet.PageSetup.RightFooter = "页脚右部内容"; 
ExcelSheet.ActiveSheet.PageSetup.CenterHeader = "&\"宋体,加粗\"&18长天公司" date1  "至" date2 "(施工图)项目进度检查表";
ExcelSheet.ActiveSheet.PageSetup.RightHeader = "&D";
ExcelSheet.ActiveSheet.PageSetup.PrintGridlines = true;
ExcelSheet.ActiveSheet.PageSetup.PrintTitleRows = "$1:$1";
ExcelSheet.ActiveSheet.PageSetup.Zoom = 75; 
(8) 对单元格操作,带*部分对于行,列,区域都有相应属性。
ExcelSheet.ActiveSheet.Cells(row,col).Value = "内容"; //设置单元格内容
ExcelSheet.ActiveSheet.Cells(row,col).Borders.Weight = 1; //设置单元格边框* 
ExcelSheet.ActiveSheet.Cells(row,col).Interior.ColorIndex = 1; //设置单元格底色*(1-黑色,2-白色,3-红色,4-绿色,5-蓝色,6-黄色,7-粉红色,8-天蓝色,9-酱土色 )
ExcelSheet.ActiveSheet.Cells(row,col).Interior.Pattern = 1; //设置单元格背景样式*(1-无,2-细网格,3-粗网格,4-斑点,5-横线,6-竖线)
ExcelSheet.ActiveSheet.Cells(row,col).Font.ColorIndex = 1; //设置字体颜色*(与上相同)
ExcelSheet.ActiveSheet.Cells(row,col).Font.Size = 10; //设置为10号字*
ExcelSheet.ActiveSheet.Cells(row,col).Font.Name= "黑体"; //设置为黑体*
ExcelSheet.ActiveSheet.Cells(row,col).Font.Italic = true; //设置为斜体*
ExcelSheet.ActiveSheet.Cells(row,col).Font.Bold = true; //设置为粗体*
ExcelSheet.ActiveSheet.Cells(row,col).ClearContents; //清除内容*
ExcelSheet.ActiveSheet.Cells(row,col).WrapText=true; //设置为自动换行*
ExcelSheet.ActiveSheet.Cells(row,col).HorizontalAlignment = 3; //水平对齐方式枚举* (1-常规,2-靠左,3-居中,4-靠右,5-填充 6-两端对齐,7-跨列居中,8-分散对齐)
ExcelSheet.ActiveSheet.Cells(row,col).VerticalAlignment = 2;      //垂直对齐方式枚举*(1-靠上,2-居中,3-靠下,4-两端对齐,5-分散对齐)
//行,列有相应操作:
ExcelSheet.ActiveSheet.Rows(row).
ExcelSheet.ActiveSheet.Columns(col).
ExcelSheet.ActiveSheet.Rows(startrow ":" endrow).//如Rows("1:5"),即1~5行
ExcelSheet.ActiveSheet.Columns(startcol ":" endcol). //如Columns("1:5"),即1~5列
//区域有相应操作:
XLObj.Range(startcell ":" endcell).Select; //如Range("A2:H8"),即A列第2格至H列第8格的整个区域
XLObj.Selection.
//合并单元格
XLObj.Range(startcell ":" endcell).MergeCells = true;  //如Range("A2:H8"),即将A列第2格至H列第8格的整个区域合并为一个单元格或者:
XLObj.Range("A2",XLObj.Cells(8,8)).MergeCells = true;
(9) 设置行高与列宽。
ExcelSheet.ActiveSheet.Columns(startcol ":" endcol).ColumnWidth = 22;
//设置从startcol到endcol列的宽度为22
ExcelSheet.ActiveSheet.Rows(startrow ":" endrow).RowHeight = 22;
//设置从startrow到endrow行的宽度为22
【例524】利用ActiveXObject,将数据导出到Excel中。第1步,在JavaScriptWebsite中添加HTML文件,命名为524.HTML,设为起始页,添加如下代码: 
ziyuanweihu

Web系统与技术 PDF下载 Web系统与技术 PDF下载

 

 

 
 


测试项目


2017-06-23 10:14:40.843


 
 
 
 

卡号 密码 计费方式 有效天数 金额 所属服务项目 发卡时间
h000010010 543860 计点 2.0 测试项目 2017-06-23 10:14:40.843
h000010011 683352 计点 2.0 测试项目 2017-06-23 10:14:40.843
h000010012 433215 计点 2.0 测试项目 2017-06-23 10:14:40.843
h000010013 393899 计点 2017-06-23 10:14:40.843
测试项目 h000010014 031736 计点 2.0 测试项目 2017-06-23 10:14:40.843
h000010015 188600 计点 2.0 测试项目 2017-06-23 10:14:40.843
h000010016 363407 计点 2.0
h000010017 175315 计点 2.0 测试项目 2017-06-23 10:14:40.843
h000010018 354437 计点 2.0 测试项目 2017-06-23 10:14:40.843
h000010019 234750 计点 2.0 测试项目 2017-06-23 10:14:40.843

 

Web系统与技术 PDF下载 Web系统与技术 PDF下载

第2步,运行程序,得到如图56所示的网页结果,单击“生成Excel文件”按钮,运行结果如图57所示,“保存文件”对话框如图58所示。假设选择的路径为: D盘根目录,文件名为11.xls,可以查看是否存在这个文件,以检测是否成功。

图56程序运行的网页结果

图57生成Excel文件界面

图58“保存文件”对话框

如果执行var xls=new ActiveXObject ("Excel. Application");,就会出现“Automation服务器不能创建对象”的错误,需要配置如下内容: (1) 添加可信站点,如图59所示。(2) 须修改IE浏览器的ActiveX控件的配置,配置过程如图55所示。

图59添加可信站点

5.3.3Word.Application控件将网页中的数据导入Word中的方法有很多,这里先介绍一种利用ActiveX控件的方式,即Word.Application,这个控件是MS为Word提供的编程接口,在很多种编程语言中都可以通过该接口操纵Word文档。

【例525】JavaScript创建word文档。第1步,在JavaScriptWebsite中添加HTML文件,命名为525.HTML,设为起始页,添加如下代码: 



JavaScript 创建word文档

第2步,运行程序,在C盘创建了文件test.doc。【例526】JavaScript创建word文档。第1步,在JavaScriptWebsite中添加HTML文件,命名为526.HTML,设为起始页,添加如下代码: 



JavaScript 创建word文档

<script>
function wordcontorl() {
var WordApp = new ActiveXObject("Word.Application");
var wdCharacter = 1;
var wdOrientLandscape = 1;
WordApp.Application.Visible = true;
var myDoc = WordApp.Documents.Add();
WordApp.ActiveDocument.PageSetup.Orientation = wdOrientLandscape
WordApp.Selection.ParagraphForm  at.Alignment = 1 //1为居中对齐,0为居右对齐
WordApp.Selection.Font.Bold = true
WordApp.Selection.Font.Size = 20
WordApp.Selection.TypeText("我的标题");
WordApp.Selection.MoveRight(wdCharacter); //光标右移字符
WordApp.Selection.TypeParagraph();   //插入段落
WordApp.Selection.Font.Size = 12
WordApp.Selection.TypeText("副标题"); //分行插入日期
WordApp.Selection.TypeParagraph();   //插入段落
var myTable = myDoc.Tables.Add(WordApp.Selection.Range,8,7) //8行7列的表格
//myTable.Style="网格型"
var aa = "我的列标题"
var TableRange; //以下为给表格中的单元格赋值
for (i = 0; i < 7; i ) {
with (myTable.Cell(1,i 1).Range) {
font.Size = 12;
InsertAfter(aa);
ColumnWidth = 4
}
}
for (i = 0; i < 7; i ) {
for (n = 0; n < 7 ; n ) {
with (myTable.Cell(i 2,n 1).Range) {
font.Size = 12;
InsertAfter("bbbb");
}
}
}
row_count = 0;
col_count = 0
myDoc.Protect(1)
}
wordcontorl()

第2步,运行程序,结果如图510所示。

图510运行结果

关于Excel和Word的方法和属性,可以在Word和Excel中通过录制宏的功能先将在Word或Excel中操作的过程通过录制宏的方式录制下来,然后打开录制的宏,它们是使用Visual Basic Application语言编写的程序,将这些程序复制到JavaScript中加以改造,即可完成在JavaScript中的编程。对于其中的参数,可在Word或Excel中,通过单击“工具”|“宏”|“Visual Basic编辑器”菜单打开Visual Basic编辑器,按下F2键打开对象浏览器,输入参数后,就可得到参数对应的值。例如,字体的加粗与否通过参数wdToggle设定,查询出来的参数值为9999998。5.4习题1. 简单介绍JavaScript技术。2. 比较网页中使用JavaScript的几种方法。3. 说明JavaScript中的“==”和“===”的区别。4. 使用JavaScript向Web页面输出99乘法表。5. 使用JavaScript在Web页面中屏蔽功能键Shift,Alt,Ctrl。6. 补全下面的JavaScript代码,读取C:\XXX.xls文件,显示在Web页面上。 

Web系统与技术 pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:Web系统与技术