熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

基礎教程WML Script語法基礎

2013-11-13 10:13:20  來源: .NET編程 

  WML Script是屬於無限應用協議WAP應用層的一部分使用它可以向WML卡片組和卡片中添加客戶端的處理邏輯目前最新的版本是WML Script是在歐洲計算機制造商協議會制定的ECMAScript腳本語言的基礎上經過修改和優化而指定的它能夠更好的支持諸如移動電話類的乍帶寬通信設備在WML編程中使用WML Script可以有效的增強客戶端應用的靈活性而且我們也可以把WML Script作為一個工具使用開發出功能強大的WAP網絡應用和無限網頁本章我們將詳細講解WML Script編程的基礎預法制時如基本規則變量預數據類型操作賦予表達式等為了敘述上的簡便以後我們將WML Script簡稱WMLScript
WML 程序中調用WML Script函數

  經過前兩章的學習熟悉C語言的讀者可能會認識到WML 的函數功能邏輯運算功能等都是十分有限的而WMLScript提供了豐富的函數功能我們在WAP應用開發可以使用WMLScript來增強WML編程因此WMLScript成為擴展WML編程能力的主要開發工具

   WMLScript的主要優點及其字節碼解釋器

  WMLScript具有一套定義好的字節碼和一個解釋器參考結構無線網絡傳輸中WMLScript的數據均以二進制格式進行傳輸所以用戶可以使用乍帶寬通信信道從而能夠保持客戶端手機只需要最小限度的內存ECMAScript修改後得到的WMLScript能夠更快更小更容易的編譯程序為字節碼形式所有這些特點是WMLScript具備了WML所不能具備的很多優點和功能

   使用WMLScript的主要優點

  WMLScript的設計宗旨是為WMLScript系統提供一般的腳本處理能力使用WMLScript我們可以進一步補充基於XML的WML語言的編程功能開發針對乍帶寬的網絡應用及內容如文本圖像選擇列表等我們可以使用簡單的格式編寫出更靈活和更具可讀性的用戶界面WMLScript具備的WML所不能具備的優點和功能主要包括如下幾個方面)檢查用戶輸入的合法性

  ()擴展用戶浏覽器的功能比如允許程序員開發手機的電話呼叫發送短信息存儲電話號碼管理電話簿或SIM卡等

  ()生成用戶端的確認提示警告信息或操作對話框並使之快速顯示在浏覽器上

  ()在用戶浏覽器的更改後能夠對浏覽器端的軟件和參數進行擴展與配置

  ()最大程度克服客戶端的乍帶寬通信連接限制並提供豐富的程序功能

  ()補充WML並使之實現針對微型移動終端設備的多種服務如支持高級用戶界面增加客戶端智能型提供用戶浏覽器外圍功能的訪問能力以及在服務器與客戶端浏覽傳輸數據是減少帶寬占用等

   WMLScript的字節碼解釋器

  在WMLScript的字節碼解釋器解釋之前WMLScript語言編寫的文本格式的程序將被首先編譯為二進制格式的代碼編譯時編譯器通常先將WMLScript程序分成若干個編輯單位每個單位的程序都包含一定數量的語句行和WMLScript函數然後WMLScript的編譯器將按照這些編譯單位逐一將WMLScript程序作為輸入內容而把對應的字節碼作為輸出內容當用戶通過WAP手機調用WMLScript程序時編譯器的編碼功能即被激活執行

   WMLScript基本規則

  WMLScript在許多基本規則方面沿用了WML的做法不過由於WMLScript是以C語言為藍本而指定的所以它的語法特征和C語言非常相像如果大家對C語言比較熟悉那麼學習和掌握這部分內容應當是比較容易的

   WMLScript與URL

  與WML一樣WMLScript也沿用了WWW和HTML訪問資源的URLHTTP等規范並擴大了URL使用的范圍在WMLScript中不僅超鏈接文件路徑即文件名可以作為URL處理外部函數訪問控制信息等也可以作為URL處理

  為此WMLScript采用了WML的變通方法即改進HTML命名資源為值的方式采用程序段錨點(Fragment Anchor)的形式來處理資源定位程序段錨點根據文檔URL規則進行定義並按照程序段標識符前加井字號(#)的方式書寫使用程序段錨點WMLScript程序可以在WMLScript編譯單位內可任意指定的函數並可在調用該函數的同時傳遞所需的參數

   詞法結構

  WMLScript編程中的詞法結構並不復雜我們下面就從大小寫敏感空格換行注釋即保留字等方面講解相關的具體規則

  ()內容類型WMLScript的內容類型主要針對文件形式和二進制形式兩種情況類型結構可以在服務器端進行指定具體形式為

  文本形式text/vndwapwmlscript;

  二進制形式application/vndwapwmlscriptc

  具體指定方法我們在第章已經介紹過這裡不再重述

  ()大小寫敏感WMLScript是一種大小寫敏感的腳本語言它所設計的各種關鍵字變量和函數名都必須合理的使用大小寫

  ()空格和換行一般情況下WMLScript程序值形式將忽略所有的空格制表符合換行符等但如果把這些特殊字符通過代碼進行表述或者作為字符串進行處理時WMLScript將不再忽略它們了如字符串Oct中含有空格該空格在執行時就不會被忽略它與不含空格的字符串Oct是不同的

  ()注釋與WML編程一樣在WMLScript腳本程序中也可以加入注釋內容注釋內容不被程序執行且注釋不能嵌套WMLScript的注釋方法有兩種

  其一行注釋即使用雙斜行號(//)引導以一行內容這一行內容全部作為注釋內容

  //這是以行注釋由雙斜槓號開始到結束都是注釋

  其二塊選擇即以符號/*開始而以符號/*結束的期間所有內容都是注釋內容

  /*這就是塊注釋加在中間的內容就是注釋內容*/

  ()數據類型與直接編碼WMLScript允許將種類型的數據直接編碼並可嵌套並可嵌如在程序之中直接編碼的中數據類型為整數浮點數字符串和布爾值

  另外無效性值也可直接編碼 整數當以十進制十六進制或八進制方式使用整數時可對這類整數進行直接編碼

  編程序時十進制的數字均不以開頭只包含~的數值串十六進制的數據以OX或者Ox開頭只包含~a~f或者A~F的字符串八進制的數均以開頭只包含~的數字串

  浮點數浮點數通常定義為含有小數點的數字可以包含小數和指數部分浮點數的形式較多可以使十進制的整數或浮點數可以是分數也可以是指數但一個浮點數必須至少有一個數

  指數是以e或E開頭後面跟著一個整數指數是以為底冪例如e的零次冪例如e的另次冪e的負次冪集等於指數可以帶符號正好( )或者減號(它們分別代表是正指數和負指數

  字符串字符串是指定義在成對的雙引號()或單引號( )之間的內容

  由於WMLScript只允許使用成對的雙引號或但引號來定義字符串所以程序中使用一個單引號或一個雙引號時就會出現編譯錯誤

  考慮到有些特殊字符不能在字符串中直接顯現出來所以WMLScript提供了轉譯序列來表示這些特殊字符

  布爾型它只是ture和false兩個數值用於表示WMLScript中的真值假值布爾型數據可參與異或等運算具體規則我們後面介紹

  無效型也稱為空類型它是WMLScript支持的一個表示無效值的量以invalid表示該兩與C語言中的NULL類似

  保留字WMLScript中定義有一個保留字集合含有一些表示特殊意義的單詞這些次不能另外定義也不能最為其他標識符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還為將來的版本預留了一些保留字主要有

  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

  標識符WMLScript的標識符可以指定或命名種元素變量函數和標注標識符不能以數字開頭但能一段下劃線()開頭而且標識符不能是WMLScript的保留字例如timeOfDayspeed qualityHOME_ADDRESS_myName__varO等都是合法的標識符而以數字或非短下劃線的特殊符號開頭的字串以及保留字等都屬於不合法的標志賦如whileforifmy~name$syspiecstakethis等

  由於WMLScript是嚴格區分大小寫的所以字母相同但大小寫不同的標識符不是同一個標識例如Work和work就是不同的標識符

  名稱空間WMLScript提供了比較自由的名稱空間同一標識符可以同時用作不同的目的例如作為某一函數名稱的標識符還可以同時用作變量名函數參數程序標注等使用時他們的屬性或值等並不相互影響在下面的簡單的例程中myTest這一標識符即用作了函數名又用作了變量名函數參數名函數參數名常量名顯然WMLScript的這一特定為我們編寫程序提供了很大的方便

   WMLScript程序的基本書寫規則

  WMLScript程序的基本書本寫規則

  程序由若干語句或函數組成函數有由若干語句組成

  每個完整的語句後面必須加上分號(語句關鍵詞語操作數之間必須有空間分號()是WMLScript程序的組成部分

  函數體之間必須使用成對的花括號({ })括起來而且函數結束時在右花括號(})的後面還要加上分號(函數說明部分如函數名函數類型函數參數等要放在花括號({})的前面

  有些語句可能也需要實用花括號({ })辦含內容這類語句通常也可以放在函數中所以花括號({ })是可以嵌套的

  當然不同的語句參數變量等元素在聲明和書寫時可能還有一些更細的要求具體我們後面介紹這些元素是再專門給出

   變量與數據類型

  變量即數據類型是所有編程語言的概念和組成部分WMLScript對此也不例外它對其變量使用方法和數據類型定義方法給出了詳細的規定變量通常與某數據之相對應我們可以給變量賦值並可在程序執行中改變變量的值下面我們講解WMLScript有關變量與數據類型的詳細規定

  變量及其聲明

  變量是在WMLScript腳本程序中具有值的符號名或說標識符使用變量可以存儲和改變程序中需要的數據與C語言不同的是WMLScript僅支持函數內定義的變量或用於傳送數的參變量

  變量使用前必須進行聲明也就是定義變量即指定變量的名字聲明變量的關鍵字是var它的後面根上作為變量名的合法的標識符並於最後加上分號(即完成一個量的聲明聲明變量是可以使用var一次聲明多個變量名相鄰變量之間使用都號()間隔

  一般情況下我們在給變量命名的時候都希望能夠使用有意義的變量名例如當需要使用一個變量表示一本書的價格時雖然將變量命名為j或book都沒有什麼錯誤但若能命名為bookPrice則會是的WMLScript腳本程序具有更好的可讀性可以方便編程人員進行腳本的編寫和調試工作而且由於WMLScript在給變量命名是不能使用保留字所以考慮到避免由於一時的疏忽時變量名欲保留字發生沖突我們建議使用多個單詞組合在以其作為一個變量的名稱這是一個比較好的解決辦法例如如果要定義一個變量來存儲的一本書的價格那我們可以不妨使用bookPrice或者book_price作為變量的名稱這樣一方面可以時變量顯得更加清晰另一方面也可以避免變量與保留字的沖突問題

  以上只是我們對於變量命名的建議並不是強制性的要求用戶完全可以不按照我們的要求來做只要遵守WMLScript對於標識符命名的要求就可以了但養成良好的編程風格不論是對編程人員還是對腳本編寫人員來說都是十分有意義的

   變量的作用域與生命期

  一個變量的作用域是指在程序中能夠引用這個變量的一段代碼由於WMLScript僅支持函數內定義的變量所以WMLScript變量的作用與通常就是定義它們的那個函數在該函數之外變量不再發揮直接作用

  變量的生命起始值從變量聲明開始到失效為止變量的生命期也被稱為變量的持久期存活期一個變量在定義它的整個函數內都是有效的函數內的任何語句塊都不會削減變量的生命期或限制變量的作用域

  如果一個變量未經生命就直接使用或聲明過後再次聲明都會破壞變量的生命期前一種情況會導致變量沒有開始聲明期即沒有生命而後一種情況則導致變量聲明期沒有結束以前就重新賦予聲明期即讓它多次降生這都會導致變量無效使用下面函數中的變量使用就說明了這一問題

  function foo(){

  x=;//錯誤變量使用前沒有聲明改變量還沒有聲明

  var xyz;

  y=x ;

  var zd =invalid

  if(x){

  var(y);//錯誤這一變量已經聲明這裡是重復聲明

  }

  }

   變量的使用

  WMLScript的變量只能在定義它的函數內使用使用時需要聲明變量聲明變量是可以同時對變量賦值甚至對變量進行運算例如下面的簡單函數就說明了變量的這種靈活的使用方法

  function ourAge(){

  var myAge=;

  var yourAge=;

  var ourAge=myAge yourAge;

  return ourAge;

  };

  使用變量時可通過調用變量名字的形式來實現上面例子中的var ourAge=myAge yourAge;一句通過調用變量名變量ourAge對變量myAge和變量yourAge實行了求和操作

   變量類型與數據類型

  WMLScript是一種弱類型的語言及其變量沒有確定的類型WMLScript變量的類型有改變量所賦數據的類型決定並根據數據類型的改變而改變WMLScript只支持內部定義的數據因此我們編寫程序是無需指定WMLScript變量的類型WMLScript減根據變量而賦數據的類型自動進行匹配由於WMLScript的數據類型共有整數浮點數字符串布爾型和無效型五種類型所以WMLScript變量的類型所能匹配的也就是這五種類型

   變量值域

  由於變量類型尤其所賦數據的類型決定所以變量值與域其所賦數據的可取范圍等價的下面的我們就給出整數浮點數字符串和布爾型的區值范圍以參照確定應類型變量的值域 整數的范圍WMLScript支持的整數是位的也就是說整數的區值范圍是從我們可以在程序運行期是用Lang函數來取得這些值

  LangmaxInt(); //獲取最大的整數

  LangmaxInt(); //獲取最小的整數

  浮點數的范圍它是指WMLScript浮點數的精度所能表示的最小和最大數值WMLScript支持為的單精度浮點數其最大至時E 最小的非零的數是E或更小(按照正常的精度)

  我們可以使用浮點Float函數庫在程序運行其取得這些數值

  FloatmaxFloa(); //獲得WMLScript所支持的最大浮點值

  FloatmaxFloa(); //獲得WMLScript所支持的最小浮點值
對於運行期出現的一些特殊的浮點數WMLscript將按照下述規則處理

  其一如果操作結果是一個不能被單精度浮點數所能表示的數值那麼該結果將被認為是invalid即無效值

  其二如果操作結果發生下溢出那麼結果將作為處理

  其三負的零和正的零是完全相等的

  字符串的范圍任何由於字母數字或特殊字符組成的符號串都是WMLScript中定義的有關字符串的操作或String庫中的函數控制字符串

  布爾型數據的范圍布爾型數據只有ture和flase兩個取值這也WMLScript腳本程序中具有值的符號名或說標識符使用變量可以存儲和改變程序中需要的數據與C語言不同的是WMLScript僅支持函數內定義的變量或用於傳送數的參變量

  變量使用前必須進行聲明也就是定義變量即指定變量的名字聲明變量的關鍵字是var它的後面根上作為變量名的合法的標識符並於最後加上分號(即完成一個量的聲明聲明變量是可以使用var一次聲明多個變量名相鄰變量之間使用都號()間隔

  一般情況下我們在給變量命名的時候都希望能夠使用有意義的變量名例如當需要使用一個變量表示一本書的價格時雖然將變量命名為j或book都沒有什麼錯誤但若能命名為bookPrice則會是的WMLScript腳本程序具有更好的可讀性可以方便編程人員進行腳本的編寫和調試工作而且由於WMLScript在給變量命名是不能使用保留字所以考慮到避免由於一時的疏忽時變量名欲保留字發生沖突我們建議使用多個單詞組合在以其作為一個變量的名稱這是一個比較好的解決辦法

  例如如果要定義一個變量來存儲的一本書的價格那我們可以不妨使用bookPrice或者book_price作為變量的名稱這樣一方面可以時變量顯得更加清晰另一方面也可以避免變量與保留字的沖突問題

  以上只是我們對於變量命名的建議並不是強制性的要求用戶完全可以不按照我們的要求來做只要遵守WMLScript對於標識符命名的要求就可以了但養成良好的編程風格不論是對編程人員還是對腳本編寫人員來說都是十分有意義的

   變量的作用域與生命期

  一個變量的作用域是指在程序中能夠引用這個變量的一段代碼由於WMLScript僅支持函數內定義的變量所以WMLScript變量的作用與通常就是定義它們的那個函數在該函數之外變量不再發揮直接作用

  變量的生命起始值從變量聲明開始到失效為止變量的生命期也被稱為變量的持久期存活期一個變量在定義它的整個函數內都是有效的函數內的任何語句塊都不會削減變量的生命期或限制變量的作用域

  如果一個變量未經生命就直接使用或聲明過後再次聲明都會破壞變量的生命期前一種情況會導致變量沒有開始聲明期即沒有生命而後一種情況則導致變量聲明期沒有結束以前就重新賦予聲明期即讓它多次降生這都會導致變量無效使用下面函數中的變量使用就說明了這一問題

  function foo(){

  x=;//錯誤變量使用前沒有聲明改變量還沒有聲明

  var xyz;

  y=x ;

  var zd =invalid

  if(x){

  var(y);//錯誤這一變量已經聲明這裡是重復聲明

  }

  }

   變量的使用

  WMLScript的變量只能在定義它的函數內使用使用時需要聲明變量聲明變量是可以同時對變量賦值甚至對變量進行運算例如下面的簡單函數就說明了變量的這種靈活的使用方法

  function ourAge(){

  var myAge=;

  var yourAge=;

  var ourAge=myAge yourAge;

  return ourAge;

  };

  使用變量時可通過調用變量名字的形式來實現上面例子中的var ourAge=myAge yourAge;一句通過調用變量名變量ourAge對變量myAge和變量yourAge實行了求和操作

   變量類型與數據類型

  WMLScript是一種弱類型的語言及其變量沒有確定的類型WMLScript變量的類型有改變量所賦數據的類型決定並根據數據類型的改變而改變WMLScript只支持內部定義的數據因此我們編寫程序是無需指定WMLScript變量的類型WMLScript減根據變量而賦數據的類型自動進行匹配由於WMLScript的數據類型共有整數浮點數字符串布爾型和無效型五種類型所以WMLScript變量的類型所能匹配的也就是這五種類型

   變量值域

  由於變量類型尤其所賦數據的類型決定所以變量值與域其所賦數據的可取范圍等價的下面的我們就給出整數浮點數字符串和布爾型的區值范圍以參照確定應類型變量的值域 整數的范圍WMLScript支持的整數是位的也就是說整數的區值范圍是從我們可以在程序運行期是用Lang函數來取得這些值

  LangmaxInt(); //獲取最大的整數

  LangmaxInt(); //獲取最小的整數

  浮點數的范圍它是指WMLScript浮點數的精度所能表示的最小和最大數值WMLScript支持為的單精度浮點數其最大至時E 最小的非零的數是E或更小(按照正常的精度)

  我們可以使用浮點Float函數庫在程序運行其取得這些數值

  FloatmaxFloa(); //獲得WMLScript所支持的最大浮點值

  FloatmaxFloa(); //獲得WMLScript所支持的最小浮點值
對於運行期出現的一些特殊的浮點數WMLscript將按照下述規則處理

  其一如果操作結果是一個不能被單精度浮點數所能表示的數值那麼該結果將被認為是invalid即無效值

  其二如果操作結果發生下溢出那麼結果將作為處理

  其三負的零和正的零是完全相等的

  字符串的范圍任何由於字母數字或特殊字符組成的符號串都是WMLScript中定義的有關字符串的操作或String庫中的函數控制字符串

  布爾型數據的范圍布爾型數據只有ture和flase兩個取值這也是布爾型變量的兩種數值我們可以使用布爾型數據取初始化或指定某一變量的數值或將布爾值變量寫入一個需要布爾值作為參數的語句布爾值可以是數值運算的結果也可以是邏輯運算的結果

  下面就是定義布爾型變量並賦初值的例句

  var truth=truth;

  var lie=!truth;

   操作符與表達式

  在WMLScript中表達式可以把變量常量與操作符結合起來經過運算能夠產生一定的運算結果表達式運算後產生的結果可以是整數型浮點數型字符串型或布爾型的數據其實對於表達式我們並不陌生例如 就是一個簡單的表達式

  WMLScript的表達式主要有兩種類型一種是賦值表達式即把數據賦給變量的一種表達式例如myBook=在這個表達式中 賦給變量myBook同時這個表達式本身也有一個運算結果那就是另外一種是運算表達式它是指產生一個運算結果而不進行賦值操作的表達式例如 就是一個運算表達式在這個表達式運算產生的結果是 但這個表達式並沒有把運算結果賦給變量

  在表達式運算的過程中表達式中操作一個或這兩個數據產生運算的符號做操作符被操作符操作的數據稱作操作數在WMLScript中我們會使用到各種操作符下面就對操作符及有關的表達式進行詳細講解

   賦值操作符

  賦值操作符用於賦值操作即給變量指定所需的數值它能把有操作數的運算結果給做操作數最簡單的賦值操作符就是=例如x=就是將賦值給變量x在如以下幾行語句都是賦值操作

  var=abc;

  var b=a;

  b=def;

  賦值操作符不需要指定使用對象也不會改變賦值操作符右邊變量的數值WMLScript的賦值操作符主要包括以下幾種

  =用於賦值操作將有操作數賦給左操作

   =將有操作數與左操作數進行相見運算然後把運算結果賦值給左操作數例如假設x=那麼x =運算後的結果為x=

  =是比較特別的操作符因為它可以將兩個字符串相連所以 =操作符也可以對字符串進行操作然後將連接後的字符串賦給左操作數例如假設x=Happy那麼x =new Year運算後結果是x=Happy New Year

  =將左操作數簡取有操作數然後把運算結果賦值給左操作數例如假設x=那麼x=運算後的結果為x=

  *=將左操作屬於有操作符進行相乘運算然後把運算結果賦值給左操作數例如假設x=那麼x*=運算後的結果為x=

  /=將右操作屬於右操作符進行相乘運算然後把運算結果賦值給左操作數例如假設x=那麼x*=運算後的結果為x=

  div=擁有操作數處理左操作數然後把運算結果中的整數部分賦值給左操作數例如x=那麼xdiv=運算後的結果為x=

  %=功能是求余數並賦值用右操作數除以做操作數最後把運算得到的余數值給操作數例如假設x=那麼x%=運算後的結果為x=

  <<=功能是帶符號左位移並賦值即將左操作和右操作數進行左位移操作在將結果賦給左操作數

  >>=可將左操作和右操作進行右操作進行補零右位移操作在將結果賦給左操作數

   數學運算操作符

  數學運算操作符可以對數值類型的操作數進行運算然後返回一個數值類型的運算結果

   這是加運算操作等它對應著數學運算中的加法運算例如表達式 的運算結果為

  加操作符還可以對字符串類型的操作數進行運算然後將兩個字符串相連起來作為運算

   即檢操作符對應著速學運算中的減法運算例如表達式的運算結果為

  同時還是一個取負操作符當它作為取負操作符的是一個操作數取負操作符的功能使返回操作數的相反數

  *這是乘操作符它對應著數學運算中的乘法運算例如表達式*的運算結果為

  /即除操作符對應著數學運算中的除法運算但WMLScript中的除法運算有些特別在WMLScript中除法運算後的結果是一個浮點數而不想C語言或者Java語言那樣在整數進行除法運算式井運算結果強行轉化整數在WMLScript中/=而在Jave中/=

  div這是整除操作符對應著數學運算中的整數運算

  運算後的結果一個整數這一點與C語言或者Java語言中的情況是一樣的可以在整數進行除法運算式將運算結果強行轉換整數

  %即取模操作符它對應著數學運算中的取莫運算也就是將兩個操作相除返回相除後的余數

  取模操作符主要用於判斷一個數字是否能被另一個數字整除

  ((the Year%==))&&(the Year!=))||(the Year@==)

  其中&&代表的是邏輯運算中的與運算||代表的是邏輯運算中的或運算關於邏輯運算我們後面會詳細介紹

   這是遞增操作符它只有一個操作數操作可以在操作符的左邊也可以在操作符的右邊它所完成的運算操作是將操作數加假設操作數名稱為j值為那麼 j加然後返回j的值而j 則實現返回j的值然後將j加

  在循環中我們常常會用到遞增操作符的作用正好相反遞減操作完成的運算操作是經操作數減例如假設操作數名稱為j值為那麼j先將j減然後返回的值而j是先返回j的值然後將j減

   位操作符

  為操作符在運算實現將操作轉化位的二進制數然後對每個操作數分別按位進行運算運算後在將二進制的結果按照標准WMLScript數值類型返回運算結束

  &這是為與操作符它可以對兩個操作數按位進行於操作其運算規則是

  &=&=&=&=

  |這是位或操作符它可以對兩個操作數按位進行或操作運算規則是

  |= |=|=|=

  ^這是唯一或操作符它可以對兩個操作按位進行異或操作其運算規則是^=^=^=^=

  ~這是位非操作符它只有一個操作數可對操作數按位進行非操作運算規則是~=~=

  <<這是左移操作它可以對左操作數進行向左一位的操作由操作數給定了要移動的位數在移動過程中左操作數的最低為補充

  >>這是右移操作符它可以對左操作數進行向右移位的操作由操作數給定要移動的位數在移位的過程中丟棄向右移的位

  >>>這是填右移操作符它與右移操作符相似當對證正數進行操作時它們的效果完全相同不同之處在於當進行負整數右移操作時因為負責轉化為二進制後最高為所以在進行右移操作後最高位仍然補充而在進行填右移操作時最高為補充的是因此這是負數將轉化為正數

   邏輯操作符

  邏輯操作符可以將布爾類型的表達式組合起來完成邏輯運算操作然後返回邏輯運算的結果——真或假這樣就可以完成比較復雜的邏輯判斷工作邏輯操作共有

  &&即邏輯與操作符它只有在兩個操作數都為ture的時候返回結果為ture在其他情況下返回結果為false或者invalid

  ||這是或操作符它在兩個操作數至少有一個為ture的時候返回結果為ture在其他情況下返回結果為false或者invalid

  !即非操作符它只有一個操作數當操作數為ture時返回結果為flase返回結果為ture

   比較操作符

  比較操作符可以把操作數進行比較然後返回一個邏輯值表明這個比較操作的結果是否為真比較操作的操作數可以是數值類型或者字符串類型的數據比較操作符也常被稱為關系運算符

  WMLScript支持的比較操作符共有下面被介紹一下

   ==即等於操作符它可以比較兩個操作數是否相等如果兩個操作數相等則返回ture否則返回false

   !=即不等操作符它可以比較兩個操作數是否相等如果兩個操作數相等則返回false否則返回ture

   >即大於操作等其運算規則時如果左操作數大於右操作數則返回ture

  是布爾型變量的兩種數值我們可以使用布爾型數據取初始化或指定某一變量的數值或將布爾值變量寫入一個需要布爾值作為參數的語句布爾值可以是數值運算的結果也可以是邏輯運算的結果

  下面就是定義布爾型變量並賦初值的例句

  var truth=truth;

  var lie=!truth;

   操作符與表達式

  在WMLScript中表達式可以把變量常量與操作符結合起來經過運算能夠產生一定的運算結果表達式運算後產生的結果可以是整數型浮點數型字符串型或布爾型的數據其實對於表達式我們並不陌生例如 就是一個簡單的表達式

  WMLScript的表達式主要有兩種類型一種是賦值表達式即把數據賦給變量的一種表達式例如myBook=在這個表達式中 賦給變量myBook同時這個表達式本身也有一個運算結果那就是另外一種是運算表達式它是指產生一個運算結果而不進行賦值操作的表達式例如 就是一個運算表達式在這個表達式運算產生的結果是 但這個表達式並沒有把運算結果賦給變量

  在表達式運算的過程中表達式中操作一個或這兩個數據產生運算的符號做操作符被操作符操作的數據稱作操作數在WMLScript中我們會使用到各種操作符下面就對操作符及有關的表達式進行詳細講解

   賦值操作符

  賦值操作符用於賦值操作即給變量指定所需的數值它能把有操作數的運算結果給做操作數最簡單的賦值操作符就是=例如x=就是將賦值給變量x在如以下幾行語句都是賦值操作

  var=abc;

  var b=a;

  b=def;

  賦值操作符不需要指定使用對象也不會改變賦值操作符右邊變量的數值WMLScript的賦值操作符主要包括以下幾種

  =用於賦值操作將有操作數賦給左操作

   =將有操作數與左操作數進行相見運算然後把運算結果賦值給左操作數例如假設x=那麼x =運算後的結果為x=

  =是比較特別的操作符因為它可以將兩個字符串相連所以 =操作符也可以對字符串進行操作然後將連接後的字符串賦給左操作數例如假設x=Happy那麼x =new Year運算後結果是x=Happy New Year

  =將左操作數簡取有操作數然後把運算結果賦值給左操作數例如假設x=那麼x=運算後的結果為x=

  *=將左操作屬於有操作符進行相乘運算然後把運算結果賦值給左操作數例如假設x=那麼x*=運算後的結果為x=

  /=將右操作屬於右操作符進行相乘運算然後把運算結果賦值給左操作數例如假設x=那麼x*=運算後的結果為x=

  div=擁有操作數處理左操作數然後把運算結果中的整數部分賦值給左操作數例如x=那麼xdiv=運算後的結果為x=

  %=功能是求余數並賦值用右操作數除以做操作數最後把運算得到的余數值給操作數例如假設x=那麼x%=運算後的結果為x=

  <<=功能是帶符號左位移並賦值即將左操作和右操作數進行左位移操作在將結果賦給左操作數

  >>=可將左操作和右操作進行右操作進行補零右位移操作在將結果賦給左操作數

   數學運算操作符

  數學運算操作符可以對數值類型的操作數進行運算然後返回一個數值類型的運算結果

   這是加運算操作等它對應著數學運算中的加法運算例如表達式 的運算結果為

  加操作符還可以對字符串類型的操作數進行運算然後將兩個字符串相連起來作為運算

   即檢操作符對應著速學運算中的減法運算例如表達式的運算結果為

  同時還是一個取負操作符當它作為取負操作符的是一個操作數取負操作符的功能使返回操作數的相反數

  *這是乘操作符它對應著數學運算中的乘法運算例如表達式*的運算結果為

  /即除操作符對應著數學運算中的除法運算但WMLScript中的除法運算有些特別在WMLScript中除法運算後的結果是一個浮點數而不想C語言或者Java語言那樣在整數進行除法運算式井運算結果強行轉化整數在WMLScript中/=而在Jave中/=

  div這是整除操作符對應著數學運算中的整數運算運算後的結果一個整數這一點與C語言或者Java語言中的情況是一樣的可以在整數進行除法運算式將運算結果強行轉換整數

  %即取模操作符它對應著數學運算中的取莫運算也就是將兩個操作相除返回相除後的余數

  取模操作符主要用於判斷一個數字是否能被另一個數字整除

  ((the Year%==))&&(the Year!=))||(the Year@==)

  其中&&代表的是邏輯運算中的與運算||代表的是邏輯運算中的或運算關於邏輯運算我們後面會詳細介紹

   這是遞增操作符它只有一個操作數操作可以在操作符的左邊也可以在操作符的右邊它所完成的運算操作是將操作數加假設操作數名稱為j值為那麼 j加然後返回j的值而j 則實現返回j的值然後將j加

  在循環中我們常常會用到遞增操作符的作用正好相反遞減操作完成的運算操作是經操作數減例如假設操作數名稱為j值為那麼j先將j減然後返回的值而j是先返回j的值然後將j減

   位操作符

  為操作符在運算實現將操作轉化位的二進制數然後對每個操作數分別按位進行運算運算後在將二進制的結果按照標准WMLScript數值類型返回運算結束

  &這是為與操作符它可以對兩個操作數按位進行於操作其運算規則是

  &=&=&=&=

  |這是位或操作符它可以對兩個操作數按位進行或操作運算規則是

  |= |=|=|=

  ^這是唯一或操作符它可以對兩個操作按位進行異或操作其運算規則是^=^=^=^=

  ~這是位非操作符它只有一個操作數可對操作數按位進行非操作運算規則是~=~=

  <<這是左移操作它可以對左操作數進行向左一位的操作由操作數給定了要移動的位數在移動過程中左操作數的最低為補充

  >>這是右移操作符它可以對左操作數進行向右移位的操作由操作數給定要移動的位數在移位的過程中丟棄向右移的位

  >>>這是填右移操作符它與右移操作符相似當對證正數進行操作時

  它們的效果完全相同不同之處在於當進行負整數右移操作時因為負責轉化為二進制後最高為所以在進行右移操作後最高位仍然補充而在進行填右移操作時最高為補充的是因此這是負數將轉化為正數

   邏輯操作符

  邏輯操作符可以將布爾類型的表達式組合起來完成邏輯運算操作然後返回邏輯運算的結果——真或假這樣就可以完成比較復雜的邏輯判斷工作邏輯操作共有

  &&即邏輯與操作符它只有在兩個操作數都為ture的時候返回結果為ture在其他情況下返回結果為false或者invalid

  ||這是或操作符它在兩個操作數至少有一個為ture的時候返回結果為ture在其他情況下返回結果為false或者invalid

  !即非操作符它只有一個操作數當操作數為ture時返回結果為flase返回結果為ture

   比較操作符

  比較操作符可以把操作數進行比較然後返回一個邏輯值表明這個比較操作的結果是否為真比較操作的操作數可以是數值類型或者字符串類型的數據比較操作符也常被稱為關系運算符

  WMLScript支持的比較操作符共有下面被介紹一下

   ==即等於操作符它可以比較兩個操作數是否相等如果兩個操作數相等則返回ture否則返回false

   !=即不等操作符它可以比較兩個操作數是否相等如果兩個操作數相等則返回false否則返回ture

   >即大於操作等其運算規則時如果左操作數大於右操作數則返回ture


From:http://tw.wingwit.com/Article/program/net/201311/12960.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.