WML Script語法基礎(chǔ)_Xml教程
推薦:詳談WML Script標(biāo)準(zhǔn)函數(shù)庫這節(jié)會討論標(biāo)準(zhǔn)的WML Script函數(shù)庫。 6.1 WML Script規(guī)則 這些標(biāo)準(zhǔn)函數(shù)庫提供一個擴展WML Script語言的機制,這些特定的函數(shù)庫必須遵循WML Script的規(guī)則。 支持的數(shù)據(jù)格式 下面的WML Script格式使用于程序的定義之中,這樣能記錄程序參數(shù)與回轉(zhuǎn)值的格式。 Bo
WML Script是屬于無限應(yīng)用協(xié)議WAP應(yīng)用層的一部分,使用它可以向WML卡片組和卡片中添加客戶端的處理邏輯,目前最新的版本是1.1版。WML Script1.1是在歐洲計算機制造商協(xié)議會制定的ECMAScript腳本語言的基礎(chǔ)上,經(jīng)過修改和優(yōu)化而指定的。它能夠更好的支持諸如移動電話類的乍帶寬通信設(shè)備,在WML編程中使用WML Script可以有效的增強客戶端應(yīng)用的靈活性,而且,我們也可以把WML Script作為一個工具使用,開發(fā)出功能強大的WAP網(wǎng)絡(luò)應(yīng)用和無限網(wǎng)頁。本章我們將詳細(xì)講解WML Script1.1編程的基礎(chǔ)預(yù)法制時,如基本規(guī)則、變量預(yù)數(shù)據(jù)類型、操作賦予表達式等。為了敘述上的簡便,以后我們將“WML Script1.1”簡稱“WMLScript ”。
4.1 WML 程序中調(diào)用WML Script函數(shù)
經(jīng)過前兩章的學(xué)習(xí),熟悉C語言的讀者可能會認(rèn)識到,WML 的函數(shù)功能、邏輯運算功能等都是十分有限的。而WMLScript提供了豐富的函數(shù)功能,我們在WAP應(yīng)用開發(fā)可以使用WMLScript來增強WML編程。因此,WMLScript成為擴展WML編程能力的主要開發(fā)工具。
4.2 WMLScript的主要優(yōu)點及其字節(jié)碼解釋器
WMLScript具有一套定義好的字節(jié)碼和一個解釋器參考結(jié)構(gòu)。無線網(wǎng)絡(luò)傳輸中WMLScript的數(shù)據(jù)均以二進制格式進行傳輸,所以,用戶可以使用乍帶寬通信信道,從而能夠保持客戶端手機只需要最小限度的內(nèi)存。ECMAScript修改后得到的WMLScript能夠更快、更小、更容易的編譯程序為字節(jié)碼形式。所有這些特點,是WMLScript具備了WML所不能具備的很多優(yōu)點和功能。
4.2.1 使用WMLScript的主要優(yōu)點
WMLScript的設(shè)計宗旨是為WMLScript系統(tǒng)提供一般的腳本處理能力,使用WMLScript我們可以進一步補充基于XML的WML語言的編程功能,開發(fā)針對乍帶寬的網(wǎng)絡(luò)應(yīng)用及內(nèi)容,如文本、圖像、選擇列表等,我們可以使用簡單的格式編寫出更靈活和更具可讀性的用戶界面。WMLScript具備的WML所不能具備的優(yōu)點和功能,主要包括如下幾個方面: (1)檢查用戶輸入的合法性:
(2)擴展用戶瀏覽器的功能,比如允許程序員開發(fā)手機的電話呼叫、發(fā)送短信息、存儲電話號碼、管理電話簿或SIM卡等;
(3)生成用戶端的確認(rèn)、提示、警告信息或操作對話框,并使之快速顯示在瀏覽器上;
(4)在用戶瀏覽器的更改后,能夠?qū)g覽器端的軟件和參數(shù)進行擴展與配置;
(5)最大程度克服客戶端的乍帶寬通信連接限制,并提供豐富的程序功能;
(6)補充WML并使之實現(xiàn)針對微型移動終端設(shè)備的多種服務(wù),如支持高級用戶界面、增加客戶端智能型、提供用戶瀏覽器外圍功能的訪問能力,以及在服務(wù)器與客戶端瀏覽傳輸數(shù)據(jù)是減少帶寬占用等。
4.2.2 WMLScript的字節(jié)碼解釋器
在WMLScript的字節(jié)碼解釋器解釋之前,WMLScript語言編寫的文本格式的程序?qū)⒈皇紫染幾g為二進制格式的代碼。編譯時,編譯器通常先將WMLScript程序分成若干個編輯單位,每個單位的程序都包含一定數(shù)量的語句行和WMLScript函數(shù),然后,WMLScript的編譯器將按照這些編譯單位,逐一將WMLScript程序作為輸入內(nèi)容,而把對應(yīng)的字節(jié)碼作為輸出內(nèi)容。當(dāng)用戶通過WAP手機調(diào)用WMLScript程序時,編譯器的編碼功能即被激活、執(zhí)行。
4.3 WMLScript基本規(guī)則
WMLScript在許多基本規(guī)則方面沿用了WML的做法。不過,由于WMLScript是以C語言為藍本而指定的,所以它的語法特征和C語言非常相像。如果大家對C語言比較熟悉,那么學(xué)習(xí)和掌握這部分內(nèi)容應(yīng)當(dāng)是比較容易的。
4.3.1 WMLScript與URL
與WML一樣,WMLScript也沿用了WWW和HTML訪問資源的URL、HTTP等規(guī)范,并擴大了URL使用的范圍。在WMLScript中,不僅超鏈接、文件路徑即文件名可以作為URL處理,外部函數(shù)、訪問控制信息等也可以作為URL處理。
為此,WMLScript采用了WML的變通方法,即改進HTML命名資源為值的方式,采用程序段錨點(Fragment Anchor)的形式來處理資源定位。程序段錨點根據(jù)文檔URL規(guī)則進行定義,并按照程序段標(biāo)識符前加井字號(#)的方式書寫。使用程序段錨點,WMLScript程序可以在WMLScript編譯單位內(nèi)可任意指定的函數(shù),并可在調(diào)用該函數(shù)的同時傳遞所需的參數(shù)。
4.3.2 詞法結(jié)構(gòu)
WMLScript編程中的詞法結(jié)構(gòu)并不復(fù)雜,我們下面就從大小寫敏感、空格、換行、注釋即保留字等方面講解相關(guān)的具體規(guī)則。
(1)內(nèi)容類型。WMLScript的內(nèi)容類型主要針對文件形式和二進制形式兩種情況,類型結(jié)構(gòu)可以在服務(wù)器端進行指定,具體形式為:
文本形式:text/vnd.wap.wmlscript;
二進制形式:application/vnd.wap.wmlscriptc。
具體指定方法我們在第4章已經(jīng)介紹過,這里不再重述。
(2)大小寫敏感。WMLScript1.1是一種大小寫敏感的腳本語言。它所設(shè)計的各種關(guān)鍵字、變量和函數(shù)名都必須合理的使用大小寫。
(3)空格和換行。一般情況下,WMLScript程序值形式將忽略所有的空格、制表符合換行符等。但如果把這些特殊字符通過代碼進行表述,或者作為字符串進行處理時,WMLScript將不再忽略它們。了如,字符串"Oct 28,2001"中含有空格,該空格在執(zhí)行時就不會被忽略,它與不含空格的字符串"Oct28,2001"是不同的。
(4)注釋。與WML編程一樣,在WMLScript腳本程序中也可以加入注釋內(nèi)容。注釋內(nèi)容不被程序執(zhí)行,且注釋不能嵌套。WMLScript的注釋方法有兩種:
其一,行注釋。即使用雙斜行號(//)引導(dǎo)以一行內(nèi)容,這一行內(nèi)容全部作為注釋內(nèi)容。如:
//這是以行注釋,由雙斜杠號開始到結(jié)束都是注釋。
其二,塊選擇。即以符號“/*”開始,而以符號“/*”結(jié)束的期間所有內(nèi)容都是注釋內(nèi)容。如:
/*這就是塊注釋,加在中間的內(nèi)容就是注釋內(nèi)容*/
(5)數(shù)據(jù)類型與直接編碼。WMLScript允許將4種類型的數(shù)據(jù)直接編碼并可嵌套并可嵌如在程序之中。直接編碼的4中數(shù)據(jù)類型為:整數(shù)、浮點數(shù)、字符串和布爾值。另外,“無效性”值也可直接編碼” 1. 整數(shù)。當(dāng)以十進制、十六進制或八進制方式使用整數(shù)時,可對這類整數(shù)進行直接編碼。
編程序時,十進制的數(shù)字均不以0開頭,只包含0~9的數(shù)值串;十六進制的數(shù)據(jù)以O(shè)X或者Ox開頭,只包含0~9、a~f或者A~F的字符串;八進制的數(shù)均以0開頭,只包含0~7的數(shù)字串。
2.浮點數(shù)。浮點數(shù)通常定義為含有小數(shù)點的數(shù)字,可以包含小數(shù)和指數(shù)部分。浮點數(shù)的形式較多,可以使十進制的整數(shù)或浮點數(shù),可以是分?jǐn)?shù),也可以是指數(shù);但一個浮點數(shù)必須至少有一個數(shù)。
指數(shù)是以e或E開頭,后面跟著一個整數(shù)。指數(shù)是以10為底冪。例如:e0時10的零次冪,例如:e0時10的另次冪,e-2時10的負(fù)2次冪集等于0.01。指數(shù)可以帶符號,正好(+)或者減號(-),它們分別代表是正指數(shù)和負(fù)指數(shù)。
3.字符串。字符串是指定義在成對的雙引號("")或單引號(‘ ’)之間的內(nèi)容。
由于WMLScript只允許使用成對的雙引號或但引號來定義字符串,所以程序中使用一個單引號或一個雙引號時就會出現(xiàn)編譯錯誤。
考慮到有些特殊字符不能在字符串中直接顯現(xiàn)出來,所以WMLScript提供了轉(zhuǎn)譯序列來表示這些特殊字符。
4.布爾型。它只是ture和false兩個數(shù)值,用于表示W(wǎng)MLScript中的“真值”或“假值”。布爾型數(shù)據(jù)可參與異、或等運算,具體規(guī)則我們后面介紹。
5.無效型。也稱為“空類型”,它是WMLScript支持的一個表示無效值的量,以invalid表示。該兩與C語言中的NULL類似。
4.保留字。WMLScript中定義有一個保留字集合,含有一些表示特殊意義的單詞這些次不能另外定義,也不能最為其他標(biāo)識符。WMLScript中的保留字如下:
acces http agent if break isvalid continue meta header
div name div= path domain return else typeof while
equiv url extern use for user function var
另外,WMLScript還為將來的版本預(yù)留了一些保留字,主要有:
case finally catch import class private const public debugger
sizeof default struct do super enum switch export throw
extends try
WMLScript還有一些沒有使用的保留字:
delete null in this lib void new with
7.標(biāo)識符。WMLScript的標(biāo)識符可以指定或命名3種元素:變量、函數(shù)和標(biāo)注。標(biāo)識符不能以數(shù)字開頭,但能一段下劃線(-)開頭,而且,標(biāo)識符不能是WMLScript的保留字。例如,timeOfDay、speed 、quality、HOME_ADDRESS、_myName、__、varO等都是合法的標(biāo)識符;而以數(shù)字或非短下劃線的特殊符號開頭的字串,以及保留字等都屬于不合法的標(biāo)志賦,如while、for、if、my~name、sys、123、3piecs、take.this等。
由于WMLScript是嚴(yán)格區(qū)分大小寫的,所以字母相同但大小寫不同的標(biāo)識符不是同一個標(biāo)識,例如,Work和work就是不同的標(biāo)識符。
8.名稱空間。WMLScript提供了比較自由的名稱空間,同一標(biāo)識符可以同時用作不同的目的。例如,作為某一函數(shù)名稱的標(biāo)識符,還可以同時用作變量名、函數(shù)參數(shù)、程序標(biāo)注等,使用時他們的屬性或值等并不相互影響。在下面的簡單的例程中,myTest這一標(biāo)識符即用作了函數(shù)名,又用作了變量名、函數(shù)參數(shù)名、函數(shù)參數(shù)名、常量名。顯然,WMLScript的這一特定為我們編寫程序提供了很大的方便。
4.3.3 WMLScript程序的基本書寫規(guī)則
WMLScript程序的基本書本寫規(guī)則:
1.程序由若干語句或函數(shù)組成,函數(shù)有由若干語句組成;
2.每個完整的語句后面必須加上分號(;),語句關(guān)鍵詞語操作數(shù)之間必須有空間;分號(;)是WMLScript程序的組成部分;
3.函數(shù)體之間必須使用成對的花括號({ })括起來,而且函數(shù)結(jié)束時在右花括號(})的后面還要加上分號(;);函數(shù)說明部分,如函數(shù)名、函數(shù)類型、函數(shù)參數(shù)等要放在花括號({})的前面;
4.有些語句可能也需要實用花括號({ })辦含內(nèi)容,這類語句通常也可以放在函數(shù)中,所以花括號({ })是可以嵌套的。
當(dāng)然,不同的語句、參數(shù)、變量等元素在聲明和書寫時可能還有一些更細(xì)的要求,具體我們后面介紹這些元素是再專門給出,
4.4 變量與數(shù)據(jù)類型
變量即數(shù)據(jù)類型是所有編程語言的概念和組成部分,WMLScript對此也不例外。它對其變量使用方法和數(shù)據(jù)類型定義方法給出了詳細(xì)的規(guī)定。變量通常與某數(shù)據(jù)之相對應(yīng),我們可以給變量賦值,并可在程序執(zhí)行中改變變量的值。下面我們講解WMLScript有關(guān)變量與數(shù)據(jù)類型的詳細(xì)規(guī)定。
4.4.1變量及其聲明
變量是在WMLScript腳本程序中具有值的符號名,或說標(biāo)識符。使用變量可以存儲和改變程序中需要的數(shù)據(jù)。與C語言不同的是,WMLScript僅支持函數(shù)內(nèi)定義的變量或用于傳送數(shù)的參變量。
變量使用前必須進行聲明,也就是定義變量,即指定變量的名字。聲明變量的關(guān)鍵字是var,它的后面根上作為變量名的合法的標(biāo)識符,并于最后加上分號(;),即完成一個量的聲明。聲明變量是可以使用var一次聲明多個變量名,相鄰變量之間使用都號(,)間隔。
一般情況下,我們在給變量命名的時候,都希望能夠使用有意義的變量名。例如,當(dāng)需要使用一個變量表示一本書的價格時,雖然將變量命名為j或book都沒有什么錯誤,但若能命名為bookPrice則會是的WMLScript腳本程序具有更好的可讀性,可以方便編程人員進行腳本的編寫和調(diào)試工作。而且,由于WMLScript在給變量命名是不能使用保留字,所以考慮到避免由于一時的疏忽時變量名欲保留字發(fā)生沖突,我們建議使用多個單詞組合在以其作為一個變量的名稱,這是一個比較好的解決辦法。例如,如果要定義一個變量來存儲的、一本書的價格,那我們可以不妨使用bookPrice或者book_price作為變量的名稱,這樣,一方面可以時變量顯得更加清晰,另一方面也可以避免變量與保留字的沖突問題。
以上只是我們對于變量命名的建議,并不是強制性的要求,用戶完全可以不按照我們的要求來做,只要遵守WMLScript對于標(biāo)識符命名的要求就可以了,但養(yǎng)成良好的編程風(fēng)格不論是對編程人員還是對腳本編寫人員來說,都是十分有意義的。
4.4.2 變量的作用域與生命期
一個變量的作用域是指在程序中能夠引用這個變量的一段代碼。由于WMLScript僅支持函數(shù)內(nèi)定義的變量,所以WMLScript變量的作用與通常就是定義它們的那個函數(shù)。在該函數(shù)之外,變量不再發(fā)揮直接作用。
變量的生命起始值從變量聲明開始到失效為止。變量的生命期也被稱為變量的持久期、存活期。一個變量在定義它的整個函數(shù)內(nèi)都是有效的,函數(shù)內(nèi)的任何語句塊都不會削減變量的生命期或限制變量的作用域。
如果一個變量未經(jīng)生命就直接使用,或聲明過后再次聲明,都會破壞變量的生命期。前一種情況會導(dǎo)致變量沒有開始聲明期,即沒有“生命”;而后一種情況則導(dǎo)致變量聲明期沒有結(jié)束以前就重新賦予聲明期,即讓它多次“降生”。這都會導(dǎo)致變量無效使用。下面函數(shù)中的變量使用就說明了這一問題:
function foo(){
x=1;//錯誤:變量使用前沒有聲明,改變量還沒有“聲明”。
var x,y,z;
y=x+3;
var zd =invalid
if(x){
var(y);//錯誤:這一變量已經(jīng)聲明,這里是重復(fù)聲明。
};
};
4.4.3 變量的使用
WMLScript的變量只能在定義它的函數(shù)內(nèi)使用。使用時需要聲明變量,聲明變量是可以同時對變量賦值,甚至對變量進行運算。例如,下面的簡單函數(shù)就說明了變量的這種靈活的使用方法:
function ourAge(){
var myAge=38;
var yourAge=26;
var ourAge=myAge+yourAge;
return ourAge;
};
使用變量時可通過調(diào)用變量名字的形式來實現(xiàn)。上面例子中的“var ourAge=myAge+yourAge;”一句,通過調(diào)用變量名,變量ourAge對變量myAge和變量yourAge實行了求和操作。
4.4.4 變量類型與數(shù)據(jù)類型
WMLScript是一種“弱類型”的語言,及其變量沒有確定的類型。WMLScript變量的類型有改變量所賦數(shù)據(jù)的類型決定,并根據(jù)數(shù)據(jù)類型的改變而改變。WMLScript只支持內(nèi)部定義的數(shù)據(jù),因此我們編寫程序是無需指定WMLScript變量的類型,WMLScript減根據(jù)變量而賦數(shù)據(jù)的類型自動進行匹配。由于WMLScript的數(shù)據(jù)類型共有整數(shù)、浮點數(shù)、字符串、布爾型和“無效型”五種類型,所以WMLScript變量的類型所能匹配的也就是這五種類型。
4.4.5 變量值域
由于變量類型尤其所賦數(shù)據(jù)的類型決定,所以變量值與域其所賦數(shù)據(jù)的可取范圍等價的。下面的我們就給出整數(shù)、浮點數(shù)、字符串和布爾型的區(qū)值范圍,以參照確定應(yīng)類型變量的值域。 1.整數(shù)的范圍。WMLScript支持的整數(shù)是32位的,也就是說整數(shù)的區(qū)值范圍是從2147483648到+2147483647。我們可以在程序運行期是用Lang函數(shù)來取得這些值,如:
Lang.maxInt(); //獲取最大的整數(shù)
Lang.maxInt(); //獲取最小的整數(shù)
2.浮點數(shù)的范圍。它是指WMLScript浮點數(shù)的精度所能表示的最小和最大數(shù)值WMLScript支持32為的單精度浮點數(shù),其最大至?xí)r3.40282347E+38,最小的非零的數(shù)是1.17549435E-38或更小(按照正常的精度)。
我們可以使用浮點Float函數(shù)庫在程序運行其取得這些數(shù)值:
Float.maxFloa(); //獲得WMLScript所支持的最大浮點值
Float.maxFloa(); //獲得WMLScript所支持的最小浮點值
對于運行期出現(xiàn)的一些特殊的浮點數(shù),WMLscript將按照下述規(guī)則處理:
其一,如果操作結(jié)果是一個不能被單精度浮點數(shù)所能表示的數(shù)值,那么該結(jié)果將被認(rèn)為是invalid,即無效值;
其二,如果操作結(jié)果發(fā)生下溢出,那么結(jié)果將作為0.0處理:
其三,負(fù)的零和正的零是完全相等的。
3.字符串的范圍。任何由于字母、數(shù)字或特殊字符組成的符號串都是WMLScript中定義的有關(guān)字符串的操作或String庫中的函數(shù)控制字符串。
4.布爾型數(shù)據(jù)的范圍。布爾型數(shù)據(jù)只有ture和flase兩個取值,這也是布爾型變量的兩種數(shù)值。我們可以使用布爾型數(shù)據(jù)取初始化或指定某一變量的數(shù)值,或?qū)⒉紶栔底兞繉懭胍粋需要布爾值作為參數(shù)的語句。布爾值可以是數(shù)值運算的結(jié)果,也可以是邏輯運算的結(jié)果。
下面就是定義布爾型變量并賦初值的例句:
var truth=truth;
var lie=!truth;
4.5 操作符與表達式
在WMLScript中,表達式可以把變量、常量與操作符結(jié)合起來,經(jīng)過運算能夠產(chǎn)生一定的運算結(jié)果。表達式運算后產(chǎn)生的結(jié)果可以是整數(shù)型、浮點數(shù)型、字符串型或布爾型的數(shù)據(jù)。其實,對于表達式我們并不陌生,例如,1+2就是一個簡單的表達式。
WMLScript的表達式主要有兩種類型。一種是賦值表達式,即把數(shù)據(jù)賦給變量的一種表達式,例如,myBook=3,在這個表達式中,將3 賦給變量myBook,同時,這個表達式本身也有一個運算結(jié)果,那就是3。另外一種是運算表達式,它是指產(chǎn)生一個運算結(jié)果而不進行賦值操作的表達式,例如1+2就是一個運算表達式,在這個表達式運算產(chǎn)生的結(jié)果是3, 但這個表達式并沒有把運算結(jié)果賦給變量。
在表達式運算的過程中,表達式中操作一個或這兩個數(shù)據(jù)產(chǎn)生運算的符號做操作符,被操作符操作的數(shù)據(jù)稱作操作數(shù),在WMLScript中我們會使用到各種操作符,下面就對操作符及有關(guān)的表達式進行詳細(xì)講解。
4.5.1 賦值操作符
賦值操作符用于賦值操作,即給變量指定所需的數(shù)值,它能把有操作數(shù)的運算結(jié)果給做操作數(shù),最簡單的賦值操作符就是“=”,例如x=2,就是將2賦值給變量x。在如以下幾行語句都是賦值操作:
var="abc";
var b=a;
b="def";
賦值操作符不需要指定使用對象,也不會改變賦值操作符右邊變量的數(shù)值。WMLScript的賦值操作符主要包括以下幾種:
1.=。用于賦值操作,將有操作數(shù)賦給左操作。
2 +=。將有操作數(shù)與左操作數(shù)進行相見運算,然后把運算結(jié)果賦值給左操作數(shù)。例如,假設(shè)x=3,那么x+=2運算后的結(jié)果為x=5。
+=是比較特別的操作符,因為它可以將兩個字符串相連,所以+=操作符也可以對字符串進行操作,然后將連接后的字符串賦給左操作數(shù)。例如,假設(shè)x="Happy",那么x+="new Year"運算后結(jié)果是x="Happy New Year"。
3.-=。將左操作數(shù)簡取有操作數(shù),然后把運算結(jié)果賦值給左操作數(shù)。例如,假設(shè)x=3那么x-=運算后的結(jié)果為x=1。
4*=。將左操作屬于有操作符進行相乘運算,然后把運算結(jié)果賦值給左操作數(shù)。例如,假設(shè)x=6,那么x*=2運算后的結(jié)果為x=6。
5/=。將右操作屬于右操作符進行相乘運算,然后把運算結(jié)果賦值給左操作數(shù)。例如,假設(shè)x=6,那么x*=2運算后的結(jié)果為x=6。
6div=。擁有操作數(shù)處理左操作數(shù),然后把運算結(jié)果中的整數(shù)部分賦值給左操作數(shù),例如x=7,那么xdiv=2運算后的結(jié)果為x=3。
7%=。功能是求余數(shù)并賦值,用右操作數(shù)除以做操作數(shù),最后把運算得到的余數(shù)值給操作數(shù)。例如,假設(shè)x=7,那么x%=3運算后的結(jié)果為x=1。
8<<=。功能是帶符號左位移并賦值,即將左操作和右操作數(shù)進行左位移操作,在將結(jié)果賦給左操作數(shù)。
9>>=?蓪⒆蟛僮骱陀也僮鬟M行右操作進行補零右位移操作,在將結(jié)果賦給左操作數(shù)。
4.5.2 數(shù)學(xué)運算操作符
數(shù)學(xué)運算操作符可以對數(shù)值類型的操作數(shù)進行運算,然后返回一個數(shù)值類型的運算結(jié)果。
1+。這是加運算操作等,它對應(yīng)著數(shù)學(xué)運算中的加法運算,例如表達式1+2的運算結(jié)果為3。
加操作符還可以對字符串類型的操作數(shù)進行運算,然后將兩個字符串相連起來作為運算
2- 。即檢操作符,對應(yīng)著速學(xué)運算中的減法運算,例如表達式2-1的運算結(jié)果為1。
同時,“-”還是一個取負(fù)操作符,當(dāng)它作為取負(fù)操作符的是一個操作數(shù),取負(fù)操作符的功能使返回操作數(shù)的相反數(shù)。
3*。這是乘操作符,它對應(yīng)著數(shù)學(xué)運算中的乘法運算,例如表達式2*3的運算結(jié)果為6。
4/。即除操作符,對應(yīng)著數(shù)學(xué)運算中的除法運算,但WMLScript中的除法運算有些特別,在WMLScript中,除法運算后的結(jié)果是一個浮點數(shù),而不想C語言或者Java語言那樣在整數(shù)進行除法運算式井運算結(jié)果強行轉(zhuǎn)化整數(shù)。在WMLScript中,1/2=0.5,而在Jave中,1/2=0。
5div。這是整除操作符,對應(yīng)著數(shù)學(xué)運算中的整數(shù)運算,運算后的結(jié)果一個整數(shù),這一點與C語言或者Java語言中的情況是一樣的,可以在整數(shù)進行除法運算式將運算結(jié)果強行轉(zhuǎn)換整數(shù)。
6%。即取模操作符,它對應(yīng)著數(shù)學(xué)運算中的取莫運算,也就是將兩個操作相除,返回相除后的余數(shù)。
取模操作符主要用于判斷一個數(shù)字是否能被另一個數(shù)字整除。
((the Year%3==0))&&(the Year%100!=0))||(the Year%400==0)
其中&&代表的是邏輯運算中的與運算,||代表的是邏輯運算中的或運算,關(guān)于邏輯運算,我們后面會詳細(xì)介紹。
7++。這是遞增操作符,它只有一個操作數(shù),操作可以在操作符的左邊,也可以在操作符的右邊,它所完成的運算操作是將操作數(shù)加1。假設(shè)操作數(shù)名稱為j,值為2,那么++j加1,然后返回j的值3;而j++則實現(xiàn)返回j的值2,然后將j加1。
在循環(huán)中,我們常常會用到遞增操作符的作用正好相反。遞減操作完成的運算操作是經(jīng)操作數(shù)減1。例如,假設(shè)操作數(shù)名稱為j,值為2,那么--j先將j減1,然后返回的值1;而j--是先返回j的值2,然后將j減1。
4.5.3 位操作符
為操作符在運算實現(xiàn)將操作轉(zhuǎn)化32位的二進制數(shù),然后對每個操作數(shù)分別按位進行運算,運算后在將二進制的結(jié)果按照標(biāo)準(zhǔn)WMLScript數(shù)值類型返回運算結(jié)束。
1&。這是為與操作符,它可以對兩個操作數(shù)按位進行于操作,其運算規(guī)則是:
0&0=0,0&1=0,1&0=0,1&1=1
2|。這是位或操作符,它可以對兩個操作數(shù)按位進行或操作,運算規(guī)則是:
0|0=0 ,0|1=1,1|0=1,1|1=1
3^。這是唯一或操作符,它可以對兩個操作按位進行異或操作,其運算規(guī)則是:0^0=0,0^1=1,1^0=1,1^1=0
4~。這是位非操作符,它只有一個操作數(shù),可對操作數(shù)按位進行非操作,運算規(guī)則是:~0=1,~=0
5<<。這是左移操作,它可以對左操作數(shù)進行向左一位的操作,由操作數(shù)給定了要移動的位數(shù),在移動過程中,左操作數(shù)的最低為補充0。
6>>。這是右移操作符,它可以對左操作數(shù)進行向右移位的操作,由操作數(shù)給定要移動的位數(shù),在移位的過程中,丟棄向右移的位。
7>>>。這是填0右移操作符,它與右移操作符相似。當(dāng)對證正數(shù)進行操作時,它們的效果完全相同;不同之處在于,當(dāng)進行負(fù)整數(shù)右移操作時,因為負(fù)責(zé)轉(zhuǎn)化為二進制后,最高為1,所以在進行右移操作后,最高位仍然補充1,而在進行填0右移操作時,最高為補充的是0,因此,這是負(fù)數(shù)將轉(zhuǎn)化為正數(shù)。
4.5.4 邏輯操作符
邏輯操作符可以將布爾類型的表達式組合起來,完成邏輯運算操作,然后返回邏輯運算的結(jié)果——真或假,這樣就可以完成比較復(fù)雜的邏輯判斷工作。邏輯操作共有3種;
1&&。即邏輯與操作符它只有在兩個操作數(shù)都為ture的時候,返回結(jié)果為ture,在其他情況下,返回結(jié)果為false或者invalid。
2||。這是或操作符,它在兩個操作數(shù)至少有一個為ture的時候,返回結(jié)果為ture,在其他情況下,返回結(jié)果為false或者invalid。
3!。即非操作符,它只有一個操作數(shù)。當(dāng)操作數(shù)為ture時,返回結(jié)果為flase;返回結(jié)果為ture.
4.5.5 比較操作符
比較操作符可以把操作數(shù)進行比較,然后返回一個邏輯值,表明這個比較操作的結(jié)果是否為真。比較操作的操作數(shù)可以是數(shù)值類型或者字符串類型的數(shù)據(jù)。比較操作符也常被稱為關(guān)系運算符。
WMLScript支持的比較操作符共有6種,下面被介紹一下。
1. ==。即等于操作符,它可以比較兩個操作數(shù)是否相等。如果兩個操作數(shù)相等,則返回ture,否則返回false
2. !=。即不等操作符。它可以比較兩個操作數(shù)是否相等。如果兩個操作數(shù)相等,則返回false,否則返回ture。
3. >。即大于操作等。其運算規(guī)則時,如果左操作數(shù)大于右操作數(shù),則返回ture。
分享:Xml教程之WML的簡單例子及編輯、測試方法完成WAP服務(wù)器的建立和WAP瀏覽器的安裝之后,我們接下來就可以使用WML語言來編寫WAP網(wǎng)頁或應(yīng)用,并通過WAP服務(wù)器及瀏覽器進行調(diào)試。從本章開始我們將系統(tǒng)地學(xué)習(xí)WML語言,本章主要講解WML語言的基礎(chǔ)知識,下一章全面講解WML的語法、標(biāo)簽和規(guī)則。 2.1 WML的簡
- xml創(chuàng)建節(jié)點(根節(jié)點、子節(jié)點)
- WML開發(fā)教程之 WAP網(wǎng)站服務(wù)器配置方法
- WMLScript的語法基礎(chǔ)
- 收集的WML Script標(biāo)準(zhǔn)函數(shù)庫
- WML教程之文本框控件Input
- 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)
- xml文件的結(jié)構(gòu)解讀
- 關(guān)于XSL - XSL教程
- 選擇模式 - XSL教程 - 2
- XPath入門 - XSL教程 - 3
- 匹配模式 - XSL教程 - 4
- 測試模式 - XSL教程 - 5
- 相關(guān)鏈接:
- 教程說明:
Xml教程-WML Script語法基礎(chǔ)
。