标题标题  显示论坛会员列表名单  搜索论坛搜索  HelpHelp
  注册注册  登入登入
ASP教学区
 DoReMe : ASP教学区
主题 话题: 第九章 JScript 回复发表新主题
作者
贴子内容 << Prev Topic下一个主题 >>
apple
Newbie
Newbie


加入: 2004/11月/25
Online Status: Offline
回复: 14
Posted: 2004/11月/25 12:58下午 | IP记录 引用 apple

本章讲述怎样使用Active Server Pages中包含的第二种脚本语言JScript,与VBScript一样,JScript可用来扩展HTML,使它不仅仅是网 页格式描述语言。使用JScript你可以在HTML文件中包含变量、运算符、循环分支和函数,在读完本章之后,你将会了解到怎 样使用JScript来建立Active Server Pages。

介绍JScript

  JScript是微软的Java Script语言的开发工具,如果你已经掌握了Java Script,你对本章讲述的内容会非常熟悉,除了一些微小的差别,JScript与Java Script几乎完全相同。

JScript与Java不是同一种语言,虽然JScript的名字中含有一个J,它会使人们产生一种强烈的感觉,以为这两种语 是非常相似的,然而Java是一种真正的编程语言,而JScript只是一种脚本语言。

JScript可以用来完成VBScript所能完成的任何脚本任务,如果你只在Active Server Pages中使用VBScript,你可以略读或干脆跳过这一章。本书剩下部分中的例子程序都使用VBScript,而不用JS cript。

然而在某些特定情况下,有理由使用JScript 来代替VBScript。即使几乎所有的Active Server Pages脚本都可用VBScript也可用JScript 来写,但某些脚本用某种语言写会比用另一种来写要简单得多。这两种语言之间还存在一些重大的差别,当你阅读完本章将会了解到这些 。

更进一步说,可以混合使用两种脚本语言来编写你网点上的Active Server Pages。你可以用JScript来写某些Active Server Pages,而用VBScript来写另一些,这取决于哪里种语言更合适。而且,你可以在同一个Active Server Pages中加入分别由两种语言写的脚本(详细信息可阅第13章「创建Active Server Pages」)。

简而言之,创建Active Server Pages时了解一些JScript 不会让你吃亏,由于你的脚本变得越来越复杂和专业化,你可能会庆幸Microsoft为你提供了又一个对脚本语言的选择机会。

客户端和服务器端编程语言

JScript 可用作客户端或服务器端的编程语言。客户端编程语言可以在诸如Netscape Navigator 或 Microsoft Internet Explorer 的浏览器上得到解释和执行。另一个客户端编程语言的例子是Java,当用这些语言写的程序被兼容的浏览器读入时,浏览器自动执行 这个程序。

客户端编程语言的有利之处在于浏览器处理了全部工作,这就减轻了服务器的负担。客户端程序运行起来也比服务器端程序快得多。当浏 览器的用户做出某种行为时,对此的反应不需通过网络进行传输,客户端程序可对它作出反应。

JScript用作客户端编程语言是非常好的,与VBScript不同,JScript创建的客户端脚本能被现有的大部分浏览器 识别。Netscape Navigator 和 Internet Explorer都可以解释和执行包括JScript 的HTML文件。

然而,与VBScript相同,JScript 也是服务器端编程语言。服务器端编程语言在提供网点服务的服务器上执行,而不是在接收网页的浏览器上执行。服务器端编程语言在你 的网点计算机上完成所有这些工作,承受所有的负担。

使用JScript 作为服务器端语言的好处是脚本与使用的浏览器无关。你的网页甚至能与不把JScript 作为各户端语言的旧版的网络浏览器兼容,这是因为在网页通过Internet传送到浏览器之前脚本就已经被处理了,网络浏览器接 收到的只是普通的HTML文件。

当你建立Active Server Pages时,你将把JScript作为服务器端编程语言,因此本书将重点介绍此语言的这个用途,然而你应当认识到从本章中学到 的编程技巧对于建立客户端程序也是有用的。

 

Back to Top 查看 apple's 资料 搜索其它贴子 apple 访问 apple's
 
apple
Newbie
Newbie


加入: 2004/11月/25
Online Status: Offline
回复: 14
Posted: 2004/11月/25 12:58下午 | IP记录 引用 apple

在Active Server Pages中使用JScript

在本节中,你将学习怎样建立可执行用JScript建立的脚本的Active Server Pages,你将在本书的第四部分「用对像和组件建立Active Server Pages」中学习更多关于Active Server Pages的知识。但是现在你只需将Active Server Pages看作一个具有扩展名为 .asp而不是 .cfm的HTML文件。

要使用本章中的例子,你需要用扩展名 .asp而不是 .cfm来存贮你的所有文件,如果你不这样做,脚本就不能被解释。当Active Server Pages被浏览器读入时,脚本中的文本就会显示出来,这可能就不是你所期望的了。

要使用本章中的例子,你还必须将文件存贮在你的网络服务器的目录下,例如,你可将文件存贮在wwwroot目录下。要执行脚本, 网页必须位于能被你的网络服务器进入的目录下。

当你读入一个Active Server Pages时,你不能直接从硬盘上读入这个文件,例如,如果你将一个Active Server Pages存为C:\InetPub\wwwroot\mypage.asp,你不能通过在地址框中输入文件路径来将这个文件读 入浏览器。你应当使用网络服务器名来获得这个文件。例如,如果你的服务器名为MyServer而文件被存贮在服务器的根目录下, 就可以在浏览器的地址柜中输入 http://MyServer/mypage.asp。再一次说明,如果你不这样做,Active Server Pages中的脚本就不会被解释。

你必须设置你的Active Server Pages所在的目录允许脚本的执行,只须当你进行这样的设置后,网络服务器才会执行一个脚本。详细信息可见第二章「安装及使用 Internet Information Server」。

注意

当你改变了Active Server Pages后你可能会发现变化没有立即在读入浏览器的网页上反映出来,这可能是由于网络服务器使用内存缓冲来提高性能而引起的。 当建立一个网点时,你可以取消这个特性,详细信息可见第二章。

在Active Server Pages中集成JScript

JScript 不是ASP的缺省脚本语言,缺省情况下,当ASP中包含一个脚本时,服务器会将它解释为VBScript编写的脚本,当你在AS P 中使用JScript编写的脚本前,你应该通知服务器你用的语言种类。

如果你计划将JScript 作为你主选的脚本语言,你可以用Internet Service Manager(见第13章)来设置JScript 为你网络上所有ASP的缺省语言。除此之外,你也可以为某一特定的页指定JScript 为缺省的脚本语言,要实现这一目的,你可将下述语句放置于一个ASP文件的第一行:

<%@ LANGUAGE=JScript %>

这一语句表明了本文件中所有的脚本都应当以JScript 来执行而不是VBScript。当使用这个语句时,要注意在@符号和关健字LANGUAGE之间要有一个空格。在一次申明,一定 要将这个语句放置于你的ASP文件的首行。

注意

你可以在同一个A.S.P中混合使用JScript 和VBScript,详细信息可见第13章。

在ASP中包括了LANGUAGE语句后,你就可以使用两个特殊符号<%和%>来用JScript 创建脚本,例如,下面用JScript 创建的脚本会在一个ASP中自动执行.

<%@ LANGUAGE=JScript %>

<HTML>

<HEAD>

<TITLE> Simple JScript </TITLE>

</HEAD>

<BODY>

<% for (myvar=0; myvar<500; myvar++) %>

<B> Hello World! </B>

</BODY>

</HTML>

这个脚本在一行上显示500个Hello World!(见图9.1),注意此例中符号<%和%>是如何使用的,它们标明了JScript脚本的开始和结束。

 

图9.1 使用JScript建立的Active Server Pages

注意

与本书中描述的其它语言不同,JScript是区分大小写的,例如,使用下面的语句将会导致错误。

<% For (myvar=0; myvar<500; myvar++) %>

这个语句的错误就在于关键字(for)需要小写,这样JScript才能识别它。

<%和%>这两个字符的功能很像HTML中的<和>字符,<和>字符是用来指定HTML标识符的,而<%和%>是用来指明脚本的 。网络服务器一旦搜索到这两个字符,就将它们之间的文本解释为脚本。

例如,文本<% for(myvar=0; myvar<500; myvar++)%>是一个JScript脚本,它建立了一个运行500次的循环。紧接著这个语句的Hello World!文本就显示了500次。

还要注意在此例中JScript脚本是如何与HTML识别符结合的。你可以在一个ASP中自由地混用脚本和HTML。文本< ;B>Hello World!</B>并不是JScript脚本的一部分。<B>标识符是HTML的一部分,而不是JS cript,但是文本<B>Hello World! </B>被解释和显示了500次。因为它紧跟在一个JScript脚本的后面。

当在ASP中使用JScript脚本时,你应当注意一个附加的表达式,你可以使用<%=和%>来打印一个变量、方法或是函数的值 ,来看下面这个简单的ASP:

<%@ LANGUAGE=JScript %>

<HTML>

<HEAD>

<TITLE> Simple JScript </TITLE>

</HEAD>

<BODY>

<% myvar=「Hello World!」%>

<%=myvar%>

</BODY>

</HTML>

这个例子只打印一次Hello World!第一个脚本设置名为myvar的变量的值为「Hello World!」表达式<%=myvar%>打印这个变量的值。符号对<%和%>用来指定一个脚本,而<%=和%>用来指明一个变 量、方法或函数的值。任何出现在<%=之后的表达式都在浏览器窗口中显示出来。

下面是一个如何使用符号对<%=和%>来打印一个方法返回值的例子,这个ASP用黑体来打印文本Hello World!

<%@ LANGUAGE=JScript %>

<HTML>

<HEAD>

<TITLE> Simple JScript </TITLE>

</HEAD>

<BODY>

<% myvar=「Hello World!」%>

<%=myvar.bold()%>

</BODY>

</HTML>

方法bold() 以黑体返回变量myvar的值,此方法通过在文本周围加上HTML标识符<B>和</B>来实现这一点 。文本<B>Hello World!</B>被输往浏览器。

你不能在<%=和%>符号对中放置一个不返回值的JScript命令,这会产生一个错误。例如下面所示:

<%= for (myvar=0; myvar<500; myvar++) %>

不要将<%和%>符号对的功能与<%=和%>搞混。前者是用来指定脚本的,而后者是用来显示一个变量、方法或函数的值的。

Back to Top 查看 apple's 资料 搜索其它贴子 apple 访问 apple's
 
apple
Newbie
Newbie


加入: 2004/11月/25
Online Status: Offline
回复: 14
Posted: 2004/11月/25 12:58下午 | IP记录 引用 apple

建立JScript脚本

当建立多行的脚本时,你必须在每一句的末尾用分号结束,它表明了一句的结束及另一句的开始。下面是个例子:

<%

myvar=「Hello World!」;

myvar2=「How are you?」;

myvar3=myvar+myvar2;

%>

<%=myvar3%>

注意

实际上当使用Microsoft的JScript时,你可以忽略分号。这样做不会产生错误。JScript通过检测一个新的行来 判断是否一句结束了。然而,对Java Script来说,不加分号是不允许的。因此,你应当养成添加分号的习惯。

还应该注意JScript是一种区分大小写的语言。当使用变量、函数、对象及方法时,你必须用正确的大小写字符来识别它们。例如 ,下面的脚本将导致一个错误:

<%

myvar=「Hello World!」;

%>

<%=MyVar%>

当执行这个脚本时,将会产生「MyVar」未定义的错误。脚本的这个错误是由于MyVar与变量myvar不是一个变量。因为M yVar没有设定一个值,因此脚本产生了一个错误。

为JScript脚本添加注释

为你的代码添加注释是明智的。随著时间的推移,代码会变得越来越难懂。当你回过头来重写或修改几个月前编写的脚本时,你将会庆幸 你的先见之明。

有两种方法为你的脚本添加注释,你可以用专用符号//来添加一行注释,任何跟在这个字符之后的一行文本都将被忽略。这种类型的注 释对于解释代码中某一特定行的功能是非常有用的。

<%

myvar=「Hello World!」 //This is an assignment to a variable

%>

当你需要加入多行注释时,你可以将你的注释放在符号对/* 和 */之中。这种类型的注释对于解释一段代码甚至整个脚本的功能是非常有用的。如下面的例子:

<%

/* This script prints Hello World! 500 times.

It was initially created on July 5, 1997.

It was last revised on August 28, 1997.

*/

for (myvar=0; myvar<500; myvar++) %>

<B> Hello World! </B>

注释的另一个用处是临时取消某一段脚本的作用。要取消一句或更多JScript,只需将它们当作注释对待。当你在调试错误时这个 方法是非常有用的。

对像、方法和属性

与VBScript相比,JScript是非常面向对象的。用VBScript编写的脚本大部分是用函数来完成任务的,而用JS cript编写的脚本大部分是用对象及它们的方法和属性来工作的。这两种语言的差别可以通过怎样用各自的语言来显示当前日期和时 间这一问题来说明。

用VBScript来显示当前日期和时间,你可以调用函数NOW,像下面这样:

<HTML>

<HEAD>

<TITLE> VBScript Date </TITLE>

</HEAD>

<BODY>

The date and time is: <%=NOW%>

</BODY>

</HTML>

另一方面,用JScript来显示当前日期和时间,你需要首先建立一个日期对象,象下面这样:

<%@ LANGUAGE=JScript %>

<HTML>

<HEAD>

<TITLE> VBScript Date </TITLE>

</HEAD>

<BODY>

<%mydate=new Date(); %>

The date and time is: <%=mydate%>

</BODY>

</HTML>

在此例中,表达式mydate = new Date()创建了一个新的名为mydate的日期对象,它含有当前的日期和时间,这个对象必须在显示当前日期前建立。

使用VBScript显示日期和时间,你只用简单地调用一个函数,而用JScript来显示日期和时间,你必须先建立一个新对象 ,这就是为什么JScript被称为面向对像语言的原因。

对像究竟是什么?对象是包含方法和属性的一种东西,对象的方法是可对对像进行操作的东西,而对象的属性是一些特定的值(或是其它 对像)。

举一个日常用的例子,一本书就有它的方法和属性,例如,你可以对一本名为Huckleberry Finn的书采取行动,你可以读它,给它印上花或者如果你觉得它特别糟糕你也可以烧掉它,这些都是与这本书相关的方法。一本书也 有一些属性,例如,名为Huckleberry Finn的书有作者和一定的页数,这本书的这些方法和属性决定了你以何种方法与它交流。

与此相比,一个JScript对像有它的方法和属性,你可以对JScript对像采取特定的行动,你也可以指定和读出对象的某些 属性,一个对象的方法和属性决定了你用何种方式来处理它。

现在假设你想要显示本月当天的星期数而不是显示当前的日期和时间,使用VBScript你可以调用另一函数DAY()将DATE 函数作为一个参数,像下面所示:

<HTML>

<HEAD>

<TITLE> VBScript Day of Month </TITLE>

</HEAD>

<BODY>

The date of the month is: <%=DAY(DATE)%>

</BODY>

</HTML>

另一方面,使用JScript必须调用Date对象的一个方法,一旦你建立了一个Date对象,你就可以使用对象的getDat e()方法来获得当天的星期数,下面是个例子:

<%@ LANGUAGE=JScript %>

<HTML>

<HEAD>

<TITLE> VBScript Date </TITLE>

</HEAD>

<BODY>

<%mydate=new Date(); %>

The day of the month is: <%=mydate.getDate()%>

</BODY>

</HTML>

在此例中,Date对象的getDate()方法通过在Date对像mydate后附加方法名(以一个点连接)来调用,正如你所 看到的,方法与函数是非常相似的,但是方法是与特定对像相关联的函数。

申明变量

当使用JScript时,你不需要在赋值前申明一个变量。例如,下面的脚本是正确的:

<%

myvar=「Hello World!」;

%>

<%=myvar%>

在此例中,变量myvar被赋了一个值,并且这个值被显示在浏览器窗口上,文本Hello World!显示出来。

但是下面的脚本是错误的:

<%

myvar2=「Hello World!」+myvar;

%>

<%=myvar2%>

这个脚本的问题在于变量myvar在赋值之前就被使用了,与VBScript不同,JScript变量必须在任何一个表达式、方 法或函数中使用前先赋值。

如果你愿意,你也可以在赋值前先申明一个变量,你可以使用var表达式来实现这一目的,像下面所示:

<%

var myvar

myvar=「Hello World!」;

%>

<%=myvar%>

在这个脚本中,变量myvar在第一行中被申明,这一步不是必需的。因为这个变量会在紧接著的下一语句中被申明,但是,你可以通 过在脚本的头部申明所有用到的变量来使你的脚本可读性强及更好地跟踪变量。

你可以用var语句来同时申明和赋值多个变量,下面语言中申明的所有变量都是有效的。

<%

var myvar1,myvar2;

var myvar3=「Hello There!」;

var myvar4=「How are you?」,myvar5,myvar6=「I am fine」;

%>

注意

当申明局部变量时你必须使用ver语句,见后面一书「将脚本分为函数(函数对像)」。

Back to Top 查看 apple's 资料 搜索其它贴子 apple 访问 apple's
 
apple
Newbie
Newbie


加入: 2004/11月/25
Online Status: Offline
回复: 14
Posted: 2004/11月/25 12:59下午 | IP记录 引用 apple

使用日期和时间(日期对像)

我已经简单向你介绍了日期对象。日期对像有一些有用的方法来操作和获取日期和时间,下面是一些使用日期对象的方法的例子:

<%

mydate=new Date()

%>

<BR> The current date and time is:

<%=mydate%>

<BR> The current month is:

<%=mydate.getMonth()%>

<BR> The current day of the month is:

<%=mydate.getDate()%>

<BR> The current day of the week is:

<%=mydate.getDay()%>

<BR> The current year is:

<%=mydate.getYear()%>

<BR> The current hour is:

<%=mydate.getHours()%>

<BR> The current minute is:

<%=mydate.getMinutes()%>

<BR> The current second is:

<%=mydate.getSeconds()%>

注意你必须在获取任何日期或时间信息之前先建立一个日期对象,在这个脚本中,日期对像mydate在脚本的第一句中创建了。在创 建了日期对像后,上述的每个方法都返回一个整数值。

要注意日期对象的大部分方法返回的值都是从0开始的,例如,一年中的第一个月是0而不是1。这可能会引起混乱,因为从常规来看, 月份都比此方法返回的值要大1(从图9.2可见到这些方法返回的值)。

你也可以使用日期对像来操作任意的日期和时间,而不仅仅是当前日期和时间,要指定别的日期,只需在创建对像时把日期传给它。例如 ,要建立一个公元2000年7用4日的日期对象,你可以使用下列的脚本。

<%

iday=new Date(2000,6,4,3,27,13)

%>

<%=iday%>

传给日期对象的参数包括年、月、日、小时、分钟及秒,在此例中,创建的日期对像表示「2000年7用4日,3:27:13」,如 果你不给小时、分钟、秒参数,它们就缺省地设为0,你可以使用用这种方法创建的日期对像中的任何一种先前讨论过的方法。

你也可以用一个表示时间的字符串作为日期对象的参数来创建它。例如,下面的脚本与上面的脚本的功能是一样的:

<%

iday=new Date(「July 4, 2000 3:27:13」)

%>

<%=iday%>

再一次说明,如果你不提供时、分、秒参数,它们就缺省地设为0,当执行这个脚本时,Tue Jul 04 03:27:13 2000就会显示在浏览器上。

 

 

图9.2 使用日期的方法返回的值

日期对像有很多设置部分日期和时间的方法,使用SetMonth()、SetDate()和SetYear()方法,你可以改变 一个日期对像表示的月、日和年。使用SetHours()、SetMinutes()和SetSeconds()方法,你可以改 变一个日期对像表示的小时、分钟和秒。

例如,假设有人在你的网点上注册,你希望此人的注册信息只在一个月内有效,你可以使用下面的脚本来显示过期日期:

<%

currentdate=new Date();

expiredate=new Date();

expiredate.setMonth(currentdate.getMonth()+1);

%>

<%=expiredate%>

在此例中,创建了两个日期对象,每个日期对像初始化都表示当前的日期和时间,接著SetMonth()方法用来设置距今一个月后 的过期日期,最后,过期时间的值被显示在浏览器上。

警告

可能与你预计的相反,使用这个脚本来在一个日期上加一个月并不是加上30天,这个脚本只是简装地把月数加1,这意味著在注册的用 户将会比在2月注册的用户多2至3天。要避免这种问题,你可通过SetDate()和getDate()方法来累计天数而不是月 数。

日期对像在1970年1月1日午夜之后,才开始跟踪日期,对像表示所有与这个特定历史时刻相关的日期和时间。这是这个对象的一个 奇特而又不方便的限制,有一个方法可以说明日期对象的这种特性,getTime()方法返回从1970年1月1日午夜开始到现在 已过去的百分之一秒数。下面的脚本返回从1970年1月1日午夜到2000年7月4日午夜这段时间的百分之一秒数:

<%

iday=new Date(「July 4, 2000 3:27:14」);

%>

<%=iday.getTime()%>

此例中的getTime()方法返回从1970年1月1日到2000年7月4日之间的百分之一秒数(你对此一定很好奇,答案是9 62706434000)。所有的日期和时间都可以通过这种方法由日期对像来表示。

最后,日期对像还有两个方法对被本国或外国用户浏览的网点非常有用,getTimezoneOffSet()方法返回日期对像表 示的时间与格林威治时间相差的分钟数,toGMTString()方法将日期和时间组织成格林威治标准格式,下面的例子说明了怎 样使用这两种方法。

<%

mytime=new Date();

HoursFromGMT=mytime.getTimezoneOffset()/60;

%>

<BR> The current time is:

<%=mytime%>

<BR> The current Greenwich Mean Time is:

<%=mytime.toGMTString()%>

<BR> These times are separated by the following number of hours:

<%=HoursFromGMT%>

Back to Top 查看 apple's 资料 搜索其它贴子 apple 访问 apple's
 
apple
Newbie
Newbie


加入: 2004/11月/25
Online Status: Offline
回复: 14
Posted: 2004/11月/25 12:59下午 | IP记录 引用 apple

使用字符串(字符串对像)

JScript中内建的最有用的对象之一是字符串对象,这个对象的方法可以用来以多种方式安排和处理字符串。例如,你可以用字符 串方法以HTML格式提供一个字符串,你可以用方法来完成字符串的比较、查找、选取字符串等操作。

你通过new语句来建立一个新的字符串对象,来看下面的例子:

<%

mystring=new String(「I am a string」);

%>

<%=mystring%>

在此例中,建立了一个名为mystring的字符串对象,它含有字符串「I am a String」。当这个对象被输出时,这段文本就会被显示出来。

然而一般情况你不需要明确地建立一个字符串对象,你可以用文字串来建立一个字符串对象。例如,就像下面的脚本那样:

<%

mystring=「I am a string」;

%>

<%=mystring%>

在此例中,文字串「I am a String」 建立了一个字符串对象。在大部分情况下,这意味著你不必明确地建立一个字符串对象,你可以对这个文字串调用字符串对象的各种方法 。

注意

什么时候你必须建立一个字符串对像?如果你想让一些字符串具有某些特定的属性而另一些字符串没有,这时就必须明确地建立单个的具 有这些属性的字符串对象。这是因为所有缺省建立的字符串都共享一个共同的全局的字符串对象。

将HTML加入字符串

字符串对象的许多方法允许你在字符串中加入各种类型的HTML格式,在下面的例子中,三个字符串都以黑体输出:

<%

mystring=「I am bold!」;

mystring2=「I am also bold!」.bold();

%>

<%=mystring.bold()%>

<%=mystring2%>

<%=「I too am bold!」.bold()%>

Bold()方法代替了字符串两边的HTML标识符〈B〉和〈/B〉,你可以这样做一下来实现同一效果,例如,当在浏览器上显示 下面脚本中的两个字符串时将是一样的:

<%=「I am bold!」.bold()%>

<%=「<B>I am bold!</B>」%>

如果你选择网络浏览器上的View Source命令时,你将会发现输出的恰好是同一字符串Bold()方法,只不过使HTML格式的字符串更方便些。

Bold()方法并不是唯一的将HTML标识符附加给字符串的方法,考虑下面的脚本中所有使用的方法(图9.3为网络服务器上显 示的结果):

<BR> <%=「I am big!」.big()%>

<BR> <%=「I am bold!」.bold()%>

<BR> <%=「Blink, blink」.blink()%>

<BR> <%=「I am formatted with a fixed-width font」.fixed()%>

<BR> <%=「I am in italics」.italics()%>

<BR> <%=「I am small」.small()%>

<BR> <%=「I have a line through me」.strike()%>

<BR> <%=「I am in subscript」.sub()%>

<BR> <%=「I am in superscript」.sup()%>

<BR> <%=「I am the color red」.fontcolor(「red」)%>

<BR> <%=「I am big!」.fontsize(4)%>

 

图9.3 使用字符串方法的显示结果

你也可使用字符串方法来建立超连接,例如,下面的脚本建立一个与各种Internet结点相连的超连接的列表:

<%= 「Top Of Page」.anchor(「top」)%>

<H1> My Favorite Links </H1>

<BR> <%=「Magic」.link(「http://www.magicw3.com」)%>

<BR> <%=「Microsoft」.link(「http://www.microsoft.com」)%>

<BR> <%=「Collegescape」.link(「http://www.collegescape.com」)%>

<BR> <%=「CityAuction」.link(「http://www.cityauction.com」)%>

<P>

Back to the top of the page:

<%=「top」.link(「#top」)%>

再一次申明,你需要明确地加入HTML格式,但是如果你用这些字符串方法代替你的脚本可能会更有可读性(及变得稍短些)。

分割和搜索子串

字符串对像中包含两个在字符串中搜索子串的方法,indexof()方法从左至右搜索子串;lastIndexof()方法从右 至左搜索字符串,下面的例子使用了这两个方法及它们返回的值:

<%=「The box contained three boxes」.indexOf(「box」)%>

4

<%=「The box contained three boxes」.lastIndexOf(「box」)%>

24

<%=「The box contained three boxes」.indexOf(「box」,6)%>

24

<%=「The box contained three boxes」.lastIndexOf(「box」,22)%>

4

在这些例子中,在字符串「The box contained three boxes」中搜索特定的子串,indexof()方法从左开始搜索这个字符串。lastIndexof()方法从右开始搜索这 个串。当没有匹配时,每种方法都返回-1。

每个方法的搜索都是区分大小写的,因此在上述这些例子中如果搜索子串「Box」将返回无匹配。要进行不区分大小写的搜索,你需要 把要比较的字符串都转换成同一种大小写形式。(使用下一节将要讨论的两个方法之一)

注意每种方法都从字符串的左边开始计数,从零开始,在第二句中,返回值为24,因为字符串「box」是「boxes」中的一部分 。

就如从这些例子中可看到的那样,你可以指定一个整数来从字符串的某一个字符处开始搜索。在第三个例子中,子串从第一个词box中 的字母x处开始进行搜索。在第四个例子中,子串从单词three中的第二个e处开始进行搜索。

如果你想从一个字符串中获得单个字符,你可以使用字符串对像中的charAt()方法,它返回字符串中特定位置处的字符。下面是 一些脚本例子及它们返回的值:

<%=「The box contained three boxes」.charAt(4)%>

b

<%=「The box contained three boxes」.charAt(10)%>

n

再一次注意字符串中第一个字符的索引是0。字符串中第四个位置的字符是字母b,如果你指定的字符索引号大于字符串的长度,并不会 产生错误,但什么也不会返回。

如果你要从一个字符串中分割出一个子串,你可以使用substring()方法。这个方法需要两个参数:第一个指定从哪里个位置开 始分割子串,第二个参数指明到哪里里结束。下面是一些例子。

<%=「The box contained three boxes」.substring(4,7)%>

box

<%=「The box contained three boxes」.substring(24,29)%>

boxes

实际上,你指定子串开始和结束位置的顺序是不重要的,对于负值,这两个参数中较小值被自动当作子串的开始位置,而较大的值被当作 结束位置。

当使用这些方法时,知道一个字符串的长度是很有必要的。你可以使用字符串对象的length属性来获得这个值,下面是个例子:

<%=「The box contained three boxes」.length%>

29

<%=「box」.length%>

3

<%=「」.length%>

0

改变字符串的大小写

最后,字符串对像中包括两个方法可以让你改变字符串的大小写状态。toUpperCase()方法将一个字符串全部变为大写,而 toLowerCase()则将字符串变为小写。

<%=「The box contained three boxes」.toUpperCase()%>

THE BOX CONTAINED THREE BOXES

<%=「The box contained three boxes」.toLowerCase()%>

the box contained three boxes

当你需要进行不区分大小写的子串搜索时,这两个方法是特别有用的。例如,假设你需要找到字符串中第一次出现单词box的位置,不 区分大小写可以如下去做:

<%=「The box contained three boxes」.toUpperCase().indexOf(「BOX」)%>

在此例中,在使用indexOf()方法来搜索子串前字符串先被全部转变为大写。通过把字符串全部转变为大写,你可以不区分大小 写在字符串中搜索单词box。

Back to Top 查看 apple's 资料 搜索其它贴子 apple 访问 apple's
 
apple
Newbie
Newbie


加入: 2004/11月/25
Online Status: Offline
回复: 14
Posted: 2004/11月/25 1:00下午 | IP记录 引用 apple

使用数学运算(数学对像)

JScript中内建了一个有用的可处理数字的对象。数学对象的方法允许你进行各种类型数学运算。数学对象的属性允许你使用特殊 的数学常数,你不需要明确地建立一个新的数学对像来使用这个对象的方法和属性。

 

 

常用的数学方法

如果你因为某些需求要使用三角函数时数学对象可派上用场,下面所列是一些数学对象的方法:

cos()用于计算余弦

sin()用于计算正弦

tan()用于计算正切

acos()用于计算反余弦

asin()用于计算反正弦

atan()用于计算反正切

数学对像中也包括两个比较两个数的方法,min()方法返回两个值中的较小值,而max()返回两值中较大的值,下面的例子使用 了这两个方法:

<%=Math.min(290909,899)%>

899

<%=Math.max(290909,899)%>

290909

最后,数学对像中还有下述一些附加方法:

exp()用于计算e的n次方

log()用于计算自然对数

pow()用于计算n次方

sqrt()用于计算平方根

数字的舍入

数学对像提供了四种方法,它们可粗略地归为「舍入」方法:abs()、round()、floor()和ceil()。下面的例 子显示了怎样使用这四种方法及它们的返回值:

<%=Math.abs(-22)%>

22

<%=Math.round(5.5)%>

6

<%=Math.floor(5.5)%>

5

<%=Math.ceil(5.5)%>

6

abs()方法返回传给它的数值的绝对值,round()方法将一个数取整为与它最接近的整数,它采用四舍五入的方法取整。fl oor()方法总是将小数部分直接舍去来取整,ceil()总是将小数部分舍去然后将整数部分加1来取整。

 

产生随机数

数学对像中最有用的方法之一是random()方法,使用它你可以产生随机数:

The random number is : <%=Math.random()%>

在此例中产生了一个0到1(包括1)之间的一个随机数,你不需要为random()方法提供一个种子来产生新的随机数,与VBS cript不同,random()方法在网页每次被刷新时都会自动产生一个新的随机数(每当JScript被调入时,随机数产生 器都会自动产生一个种子)。

有时,你需要产生一个0和某一个整数之间的随机数,要产生一个大于等于0但小于等于另一特定整数的随机数,你可以使用下面的脚本 :

<%=Math.round(upperbound*Math.random())%>

用你想产生的随机数的上界来代替表达式upperbound,例如如果你想产生一个0到10之间的随机数,就用10代替表达式u pperbound,像下面这样:

<%=Math.round(10*Math.random())%>

你可能还需要产生落在某一范围内的随机数,换句话说,你可能需要产生一个即有上界也有下界的随机数。要实现这一点,你可以使用下 面的脚本。

<%=Math.round((upperbound-lowerbound)*Math.random()+lower bound)%>

例如,下面的脚本产生75到100(包括100)之间的随机数。

<%=Math.round((100-75)*Math.random()+75)%>

数学常数

如果你需要在你网点里的某个脚本中使用π或欧拉常数(e)(这种情况是每个人都经常遇到的)。你很幸运,数学对像提供了大量的数 学常数,这些常数都是数学对象的属性,下面是所有这些常数及它们的返回值:

The value of e is: <%=Math.E%>

The value of e is: 2.71828182845905

The natural logarithm of 2 is: <%=Math.LN2%>

The natural logarithm of 2 is: 0.693147180559945

The natural logarithm of 10 is: <%=Math.LN10%>

The natural logarithm of 10 is: 2.30258509299405

The base 2 logarithm of e is: <%=Math.LOG2E%>

The base 2 logarithm of e is: 1.44269504088896

The base 10 logarithm of e is: <%=Math.LOG10E%>

The base 10 logarithm of e is: 0.434294481903252

The value of pi is: <%=Math.PI%>

The value of pi is: 3.14159265358979

The square root of .5 is: <%=Math.SQRT1_2%>

The square root of .5 is: 0.707106781186548

The square root of 2 is: <%=Math.SQRT2%>

The square root of 2 is: 1.4142135623731

Back to Top 查看 apple's 资料 搜索其它贴子 apple 访问 apple's
 
apple
Newbie
Newbie


加入: 2004/11月/25
Online Status: Offline
回复: 14
Posted: 2004/11月/25 1:00下午 | IP记录 引用 apple

将脚本分割成函数(函数对像)

当你有一个脚本变得很长或很复杂时,将其分割成几个独立的函数是个好办法,函数是一群语句的集合,你可以调用多次同一个函数,你 也可以传递参数给函数并从函数获得返回值。

对于JScript这样的面向对像语言,函数实际上也是对象,虽然函数是对象,但它们工作起来就像VBScript的过程和函数 一样(JScript中设有过程),你可以象下面所示那样明确地建立一个新函数:

<%

myfunc=new Function(「myvar」,「myvar2」,「return myvar-myvar2」);

%>

这个脚本创建了一个名为myfun()的函数,它接收两个名为myvar和 myvar2的参数,并将一个参数与另一个进行相减。建立了这个函数以后,你可以象下面这样输出函数的值:

<%=myfunc(3,1)%>

在此例中,值3和1被传给了函数,并从函数获得返回值2。

然而你并不需要用这种方法来明确地建立一个函数对象,你也可用下面的方法来建立一个对象。这与你用别的编程语句建立函数是一样的 ,如下所示:

<%

function myfunc(myvar,myvar2)

{

return myvar-myvar2;

}

%>

这个脚本建立了一个与上面那个例子中一样的函数,它有两个名为myvar和 myvar2的参数,函数通过return语句返回两个参数和差值。

注意使用了花括号({})来指明函数体,JScript使用括号来将一群语句集中起来,函数体中可包含多条语句。来看下面的例子 :

<%

function emphasize(thestring)

{

thestring=thestring.bold();

thestring=thestring.italics();

thestring=thestring.big();

return thestring;

}

%>

<%=emphasize(「This is important!」)%>

在此例中,建立了一个函数emphasize(),它接收一个字符串参数,它以黑体、斜体及大字体返回任何传给它的字符串。

一个函数可以没有返回值,也可以没有任何参数。下面的脚本与上面这个输出相同的结果:

<%

function emphasize()

{

thestring=「This is important!」;

thestring=thestring.bold();

thestring=thestring.italics();

thestring=thestring.big();

%>

<%=thestring%>

<%

}

%>

<%=emphasize()%>

在此例中,与前一个脚本不同,字符串变量的值在函数体中给出,这个函数总是返回字符串「This is important!」,它总是完成同一功能。使用参数和返回值的一个主要的好处,就是它使得函数更具灵活性,因而就更有用。

注意名为thestring的字符串变量在此例中是怎样使用的。变量thestring首先在函数中被赋值。由于这个原因,你可 能认为这个变量在函数范围之外是不存在的。然而在此例中,变量thestring实际上在整个脚本中都是存在的.

要建立一个特定函数的局部变量,你需要在函数体中明确申明它。你可用var语句来实现这一点。来看下面这个脚本中的两个变量:

<%

function greet()

{

myvar=「Hello!」;

var myvar2=「How are you?」;

return myvar+myvar2;

}

myvar2=「Goodbye!」;

%>

<%=greet()%>

<%=myvar2%>

当执行这个脚本时,字符串「Hello!How are you?Goodbye!」被显示在浏览器上。注意,名为myvar2变量被赋于了不同的值。这个脚本中实际上存在两个同名的变 量。函数中申明的变量myvar2只存在于函数之中。对这个变量赋值不会影响到函数之外的变量myvar2。这就是为什么在最后 一句语句中,脚本输出的是「Goodbye!」而不是「How are you?」。

Back to Top 查看 apple's 资料 搜索其它贴子 apple 访问 apple's
 
apple
Newbie
Newbie


加入: 2004/11月/25
Online Status: Offline
回复: 14
Posted: 2004/11月/25 1:00下午 | IP记录 引用 apple

存储大量数量(数组对像)

当你要存储大量相关的数据时,你可能会用到数组。你可以把任何类型的数据的集合存储在一个数组中,你甚至可以建立一个对像数组。

在阅读本节之后,你应当不会感到惊奇数组在JScript中也是个对象。你可以象任何其它类型的对象一样用new语句来建立一个 数组对象。下面是个例子:

<%

myarray=new Array(10);

myarray[0]=「Running Shoes」;

myarray[2]=「Fishing Rod」;

myarray[9]=「Sailing Boat」;

%>

<%=myarray[9]%>

在此例中,建立了一个含10个元素的名为myarray的数组。JScript中的所有数组元素编号都是0开始的,因此在这种情 况下,第一个元素是0最后一个是9。

紧接著建立数组语句后的三条语句为数组中不同的元素赋值,第一条语句为第一个数组元素赋值为「Running Shoes」。

你可以使用数组元素的索引号来获得数组的值,这个脚本中的最后一条语句输出数组中第9个元素的值,文本Sailing Boat被显示在浏览器口上。

你也可以在创建数组时为其赋值,要实现这一点只需用逗号分隔各个元素的值就可以了,像下面所示:

<%

myarray=new Array(「Running Shoes」,「Fishing Rod」,「Sailing Boat」);

%>

<%=myarray[2]%>

这个脚本创建的数组与上例中的那个完全一样,然而这个数组的元素是连续排列的。例如,要取得第三个元素的值,你必须用它的索引号 2。

存储在数组中的值不要求是同一类型的。例如,你可以在同一数组中存储字符串和数字。像下面所示:

<%

myarray=new Array(「Andrew Jones」,7,884,「John Pyrovolakis」);

%>

在此例中,建立的数组对像中存储了两个字符串和两个数字,这不会产生错误。你可以用通常的方法来引用某一个数组元素。

改变量组的大小

建立了数组对像以后,你可以使用它的length属性来决定它的大小。length属性的值指明了数组中元素的个数。下面是个例 子:

<%

myarray=new Array(「Running Shoes」,「Fishing Rod」,「Sailing Boat」);

%>

<%=myarray.length%>

当执行这个脚本时,返回值是3。

你可以改变一个数组对象的length属性。你可以通过为length属性指定一个不同的整数值来使数组变大或是变小。你可用下 面的方法来改变量组的大小:

<%

myarray=new Array(10);

myarray.length=5; //makes array smaller

myarray.length=20; //makes array larger

%>

如果你将一个数组变大,新元素的值是不确定的。如果你将一个数组变小,失去的数组元素将永远失去了。

多维数组

使用JScript 你不能建立多维数组。JScript 中的所有数组对象都是一维的,有时这是很不方便的,有时你需要创建多维数组。在JScript中怎样实现这一点呢?

假设你要建立一个数组来存储用户名及他们的口令,这是一个应用二维数组的很好例子。你需要对两种数据都能索引,每个参观你网点的 用户都有一个用户名和口令。

很幸运,你可以建立一个数组的数组,一个数组对象的元素值可以是另一个数组对象。通过建立数组的数组,在效果上你就建立了一个多 维数组。下面的例子说明了如何去做:

<%

myarray=new Array(10);

myarray[0]=new Array(1);

myarray[1]=new Array(1);

myarray[0][0]=「Andrew Jones」;

myarray[0][1]=「Dodgy」;

myarray[1][0]=「John Pyrovolakis」;

myarray[1][1]=「Godel」;

%>

在此例中建立了一个简单的数组的数组,数组对像Myarray首先被建立了,然后它的两个元素被赋于新的数组对象,一旦这个通过 多个一维数组对像建立的二维数组创建以后,你就可以象对待二维数组一样来对待这它。在此例中,这个数组存贮了两个用户的名字和他 们的口令。

数组方法

JScript数组对像有三个方法。你可以使用这些方法来处理数组中元素的位置以及将数组中多个元素组合成单个字符串。下面的例 子说明了怎样使用reverse()方法:

<%

myarray=new Array(2);

myarray[0]=「I am the first element」;

myarray[1]=「I am the second element」;

myarray.reverse()

%>

<%=myarray[0]%>

<BR>

<%=myarray[1]%>

在此例中,建立了一个具有两个元素的数组。每个元素都被赋于字符串值。然后数组元素通过reverse()方法被颠倒了。rev erse()方法颠倒数组元素的索引次序。这个脚本的输出如下所示:

I am the second element

I am the first element

如果你想把数组中所有元素合并成单个字符串,你可以使用join()方法,这个方法不需要任何参数,它合并所有的数组元素,每个 元素之间用逗号分隔开,下面是个例子:

<%

myarray=new Array(「John」,「Paul」,「George」,「Ringo」)

mystring=myarray.join()

%>

<%=mystring%>

当执行这个脚本时,变量mystring的值是「John,Paul,George,Ringo」,你也可以用分隔符来代替逗号 。只需将你想使用的分隔符传给join()方法。像下面所示:

<%

myarray=new Array(「John」,「Paul」,「George」,「Ringo」)

mystring=myarray.join(「*」)

%>

<%=mystring%>

当运行这个新的脚本时,变量mystring被赋于「John*Paul*George*Ringo」,你需要的分隔符可以不是 单个字符。你可以使用任意长度的字符串。

数组对象的最后一个方法可能是这三者中最有用的。使用sort()方法,你可以排序数组中的元素,这个方法不需要任何参数,它按 照字母序将数组中的元素排序,来看下面的例子:

<%

myarray=new Array(「John」,「Paul」,「George」,「Ringo」)

myarray=sort()

%>

<BR> <%=myarray[0]%>

<BR> <%=myarray[1]%>

<BR> <%=myarray[2]%>

<BR> <%=myarray[3]%>

当执行这个脚本时,下面的值将会被输出:

George

John

Paul

Ringo

你也可以使用sort方法来完成较复杂的排序工作,要做到这一点,你必须向这个方法传递一个指明按照何种规则进行排序的函数。如 下面的例子:

<%

function mysort(myvar1,myvar2)

{

var choice=Math.round(Math.random());

if (choice==1) {return –1} else return 1;

}

myarray=new Array(「John」,「Paul」,「George」,「Ringo」)

myarray.sort(mysort)

%>

<BR> <%=myarray[0]%>

<BR> <%=myarray[1]%>

<BR> <%=myarray[2]%>

<BR> <%=myarray[3]%>

在此例中,数组元素随机地排序,每次执行脚本时,都以不同的顺序输出名字。函数mysort()完成实际的排序工作,这个函数被 传给了myarray数组对象的sort()方法。

任何你传给sort()方法的排序函数必须接受两个参数,这两个参数是待比较的两个数组元素,如果函数返回一个负数,第一个参数 表示的元素就会排在第二个参数表示的元素之前;如果函数返回一个正值,第二个元素就排在第一个之前。最后,如果函数返回零,这两 个元素的次序不变。

Back to Top 查看 apple's 资料 搜索其它贴子 apple 访问 apple's
 
apple
Newbie
Newbie


加入: 2004/11月/25
Online Status: Offline
回复: 14
Posted: 2004/11月/25 1:01下午 | IP记录 引用 apple

建立自定义对像

你并不局限于前几节所讨论的JScript的内建对象,你可以自定义包含有你自己的方法和属性的对象来扩充JScript,这是 JScript的一个强大的特性。

例如,你可以建立一个名为webuser的对象,它包含参观你网点的用户的信息,这个对象可以包含诸如用户名、口令和注册状态之 类的属性,将所有这些属性全部集成在一个对像中,将会使你的脚本可读性更强、更简单、更一流。

要建立一个对象,你必须建立一个定义这个对象的函数,像下面的例子那样:

<%

function webuser(name,password,regstatus)

{

this.name=name;

this.password=「unknown」

this.regstatus=0;

}

%>

这个函数用来定义一个名为webuser的对象,注意关键字this的用法,this表明了当前对象。在此例中,它用来设定we buser对像中属性的缺省值。

一旦你为某个对象定义了一个专门的函数,你就可以象常规那样来创建对象的实例,你可以使用new语句来实现这一点:

<%

Fred=new webuser(「Fred」);

Mike=new webuser(「Mike」);

%>

在这个脚本中,建立了两个名为Fred和Mike的webuer对象。当Fred对像建立时,它的名字属性被设为Fred,其它 的属性被设为缺省值。例如,刚建立Fred对像时,它的口令属性的值是「unknown」,你可以用常规的方法来设置属性的值, 像下面的脚本那样:

<%

Fred.password=「my secret password」;

%>

当你建立一个对像时,你也可以为对像提供你自己的方法,要实现这一点,你只需建立一个函数,并在创建对象的函数中引用它,像下面 的例子那样:

<%

function expirepassword()

{

this.password=「no good」;

}

function webuser(name,password,regstatus)

{

this.name=name;

this.password=「unknown」

this.regstatus=0;

this.expirepassword=expirepassword;

}

Fred=new webuser(「Fred」);

Fred.expirepassword();

%>

在这个脚本中,先定义了函数expirepassword(),然后将这个函数加入到对像webuser的创建函数中去。语句t his. expirepassword= expirepassword使函数expirepassword变为webuser对象的一个方法。

当对像Fred被创建时,Fred的口令属性的初始值是「unknown」,但是一旦调用了expirepassword()方 法,Fred的口令值就被改为「no good」。

正如你所看到的,对象是很容易创建的,你会从你脚本中的自定义对像中受益,使用对像能让你更有逻辑地考虑怎样存储和处理信息。

Back to Top 查看 apple's 资料 搜索其它贴子 apple 访问 apple's
 
apple
Newbie
Newbie


加入: 2004/11月/25
Online Status: Offline
回复: 14
Posted: 2004/11月/25 1:01下午 | IP记录 引用 apple

使用JScript函数

虽然JScript是一种面向对像语言,但它也包含少部分函数,通常有三个函数是很有用的,你可以使用parseInt()和p arseFloat()函数来将一个字符串转变为整数和浮点数。你也可以使用函数isNaN()来检测结果是否是一个数值。下面 的例子是这些函数的用法及它们的返回值:

<%=parseInt(「3.14」)%>

3

<%=parseFloat(「3.14」)%>

3.14

<%=parseInt(「I am not a number」)%>

1.#QNAN

<%=isNaN(「I am not a number」)%>

True

注意第一个函数将数字3.14截断,函数parseInt()只转换整数,接下来的函数parseFloat()将转换整个数字 。最后,请注意这个脚本中第三个语句的返回结果。要检测一个字符串是否被成功地转换为数字,你可以使用最后一个语句中的isNa N()函数。

运算符

JScript中包含大量的运算符,本书末尾的附录B「快速JScript参考」列出了这个语言中的全部运算符。在本书中,你将 学习最有用的几个运算符。

它包括所有标准的数学运算符,你可以使用加(+)、减(-)、乘()、除(/)和取余(%)。要比较一个数是否比另一个大,你 可以使用大于号(>),要比较一个数是否比另一个小,你可以使用小于号(<)。

比较两个数是否不相等,可以使用不等号(!=),比较两个数是否相等,可以使用等号(==)。

很容易将赋值号(=)与等号(==)混淆起来,前者是用来为变量赋一个值的,而后者是用来判断两个表达式是否相等的。下面的例子 说明了赋值号是怎样使用的:

<%

myvar=「Hello!」;

myvar2=myvar3=myvar;

myvar4=myvar5=1;

%>

这个脚本中的第一个赋值你是很熟悉的,字符串「Hello!」被赋给了名为myvar的变量,第二个赋值语句将myvar的值同 时赋给了变量myvar2和myvar3。在JScript中像这样将几个赋值语句连起来是完全合法的。最后一个赋值语句将值1 赋给了变量myvar4和myvar5。

在VBScript中,等号(=)不仅用来赋值,也可以作为比较两个数是否相等,但在JScript中,判断是否相等必须用== 操作符。来看下面的脚本及它们的返回值:

<%=(1==1)%>

True

<%=(「Apple」==「Apple」)%>

True

<%=(「Apple」==「apple」)%>

False

<%=(「Apple」==1)%>

False

因为1肯定与1相等,因此第一个判断将返回真。由于两个字符串「Apple」是相同的,因而第二个比较语句也会返回真,但是由于 比较是区别大小写的,因此第三条语句将返回假。最后一个语句也返回假,因为在任何情况下,字符串「Apple」都不会与数字1相 等。

加号(+)可以用来完成加操作,并且这个操作符也可用来合并两个字符串。来看下面这个例子及它的返回值:

<%=「Hello」+「 」+「World!」%>

Hello World!

<%=「Hello」+12%>

Hello12

<%=1+1%>

2

你可以将赋值号和加号合并成一个运算符,复合赋值号+=将一个变量的值增加一个特定的数,或是将一个字符串合并到它自身上。下面 是一些例子说明如何使用复合赋值号:

<%

myvar=1;

myvar+=2;

%>

<%=myvar%>

3

<%

myvar=「Hello 」;

myvar+=「World!」;

%>

<%=myvar%>

Hello World!

语句myvar+=myvar2与语句myvar=myvar+myvar2的意思是一样的,复合赋值号只是让你在键盘上少敲几 个键而已。

复合加号并不是唯一的复合运算符,你也可以使用-=来减少一个变量的值,*=来将一个变量乘上一个特定值,以及/=来将一个变量 除以一个特定的值。

如果你只是想让一个变量的值增加1,你可以使用自增运算符++,如果你需要让一个变量的值减少1,你可以使用自减运算符--。下 面是一些例子:

<%

myfirstvar=2;

mysecondvar=++myfirstvar;

%>

<%

myfirstvar=2;

mysecondvar=myfirstvar++;

%>

当执行第一个脚本以后,名为mysecondvar的变量值为3,自增运算符将变量myfirstvar的值加1,但在第二个脚 本中,赋于变量mysecondvar的值为2,怎样解释这种差别呢?

当自增运算符出现在一个变量的左边时,变量的值在使用前自增1;当自增运算符出现在一个变量的右边时,变量的值在使用后再加1。 自减运算符当然也一样,只不过它是自减1:

<%

myfirstvar=2;

mysecondvar=--myfirstvar;

%>

<%

myfirstvar=2;

mysecondvar=myfirstvar--;

%>

当执行第一个脚本时,变量mysecondvar被赋予值1,在第二个脚本中,变量mysecondvar被赋予值2。

JScript还包括一些逻辑运算符,使用逻辑与运算符(&&),可使两个表达式完成与操作。使用或运算符(| |),可使两个表达式完成或操作。使用非操作符(!),可完成一个表达式的非操作。

当你使用if…else语句来实现分支或使用循环时,逻辑运算符是特别有用的,在下一节中你将学习怎样使用这些语句。

Back to Top 查看 apple's 资料 搜索其它贴子 apple 访问 apple's
 

of 2 下一页 >>
  回复发表新主题
显示可打印的页面 显示可打印的页面

论坛跳转
不能 张贴新论题在这个讨论版
不能 回应论题在这个讨论版
不能 删除你的发言在这个讨论版
不能 编辑你的发言在这个讨论版
不能 新增投票标题在这个讨论版
不能 在这个讨论版投票

Edit by doreme Forums version 2004
Welcome ©2001-2004 doreme Guide

This page was generated in 0.1719 seconds.

 
保养品
保养品, Skin Care
www.elady.tw
美材批发
美材, Cosmetic
www.elady.tw/beauty_org
保养品批发
名牌保养品、保养品批发
gb.perfume.com.tw/skincare
饰品批发
饰品、饰品批发
gb.perfume.com.tw/ornament