標題標題  顯示論壇會員列表名單  搜索論壇搜索  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.1875 seconds.

 
保養品
保養品, Skin Care
www.elady.tw
美材批發
美材, Cosmetic
www.elady.tw/beauty_org
保養品批發
名牌保養品、保養品批發
gb.perfume.com.tw/skincare
飾品批發
飾品、飾品批發
gb.perfume.com.tw/ornament