深入研究JScript語法——常量和變量

          例子:

          前面的例子中:

          return?"<font?color=gray>"+hit+"</font>"


          使用了變量和常量,"<font?color=gray>"和"</font>"是文本常量,hit是變量。

          加號(hào)(+)則將三者加成一個(gè)文本:"<font?color=gray>100</font>",如果hit為100的話。

           

          數(shù)值常量

          ????這個(gè)很簡單,上過數(shù)學(xué)課的都應(yīng)該知道如何表示數(shù)字,JScript中沒有任何特別。

          123
          0
          -100
          100.123
          1E3????????(1000)

          都是合法的數(shù)字常量

          文本常量

          ????這個(gè)用的最多,因?yàn)榻?jīng)常要?jiǎng)討B(tài)的生成HTML文本。常量必須用引號(hào)括起來:

          "abc"

          "123"

          "文本常量"

          都是合法的文本常量,為什么要用引號(hào)?完全沒有編程經(jīng)驗(yàn)的人可能會(huì)有些疑惑,其實(shí)很簡單,
          計(jì)算機(jī)需要把常量和變量區(qū)別開。

          變量賦值

          ????a?=?"abc"

          變量a的值為"abc"了。為什么比較時(shí)要用==,為了和賦值區(qū)別開呀!

          ????b?=?a?+?"123"

          變量b的值為"abc123"了。如果常量不加引號(hào)如何和變量區(qū)別呢?

          ????b?=?"a"?+?"123"

          變量b的值為"a123"

           

          那么如果文本中包含引號(hào)如何?比如如何表示:

          <input?type=button?value="A?A">

          因?yàn)榘粹o的名稱里有空格,那么必須用雙引號(hào)括起來,如何表示這個(gè)文本常量?

          JScript還可以使用單引號(hào):

          '<input?type=button?value="A?A">'

          在單引號(hào)中就可以直接使用雙引號(hào)了。反過來在雙引號(hào)括起來的常量里可以直接使用單引號(hào)。

          "<input?type=button?value='A?A'>"

          那么當(dāng)常量里兩個(gè)引號(hào)都有該怎么辦?這就需要使用轉(zhuǎn)義符號(hào)反斜杠\

          "abc'def\"ghi"

          在常量中可以用“\"”來表示一個(gè)雙引號(hào)。而且還有:

          \r\n????????表示回車
          \\??????????表示一個(gè)反斜杠

           

           

          function?myname(name){

          ????if?(name=="小青"){
          ???????document.write("<input?type=button?value='隱藏小青'?onclick=\"mytext.style.display='none'\">")
          ????}
          ????else
          ???????document.write(name)

          }

          上面的函數(shù),當(dāng)輸入name為“小青”時(shí),輸出:

          <input?type=button?value='隱藏'?onclick="mytext.style.display='none'">

           

          變量定義

          ????JScript中可以不預(yù)先定義變量就直接使用,但是這樣往往會(huì)帶來潛在問題,
          所以建議大家使用變量前都先定義好。

          ????變量有兩種類型,定義在函數(shù)內(nèi)部的為局部變量。

          <script>
          function?myfunc(){

          //變量定義使用var,下面定義了變量a
          var?a

          //可以一次定義多個(gè)變量,用逗號(hào)分開
          var?i,j,k

          //定義的時(shí)候還可以給變量賦初值
          var?a="acb"

          var?a=123,b="ddd"

          }
          </script>

          局部變量只在函數(shù)內(nèi)有效,離開函數(shù)該變量就不存在了。

          如果定義在函數(shù)外則為全局變量:

          <script>
          //定義一個(gè)全局變量a
          var?a
          </script>

          該變量在所有函數(shù)內(nèi)外都將有效,除非函數(shù)內(nèi)定義了一個(gè)相同名稱的變量

          <script>
          //定義全局變量a
          var?a=100

          function?myfunc(){

          var?a="abc"

          //函數(shù)輸出的是abc,函數(shù)內(nèi)的變量屏蔽了同名全局變量
          document.write(a)

          }
          </script>

          如果不使用var來定義,那么變量是全局變量。因此如果你不明確定義變量在使用,
          就可能誤用了全局變量,比如:

          <script>
          //定義全局變量a
          var?a="dddd"

          ...

          function?myfunc(){
          ????//函數(shù)內(nèi)只想使用一個(gè)臨時(shí)的變量保存返回結(jié)果
          ????a=b+...

          ????...

          ????return?a

          }
          </script>

          那么一旦執(zhí)行過myfunc,則原先的全局變量的值就被破壞了,這就可能引起其實(shí)使用
          該全局變量的程序出錯(cuò)!因此強(qiáng)烈建議大家都明確定義變量,而且盡量少使用全局變量。
          posted on 2006-08-24 01:04 窮鬼 閱讀(184) 評(píng)論(0)  編輯  收藏 所屬分類: AJAX學(xué)習(xí)
          主站蜘蛛池模板: 丹阳市| 中山市| 皋兰县| 呼和浩特市| 奉化市| 胶州市| 达孜县| 金昌市| 图木舒克市| 南涧| 泾源县| 陵川县| 仁布县| 武威市| 青川县| 左贡县| 和政县| 武安市| 吉木乃县| 大埔县| 张家界市| 滦南县| 阳东县| 闽清县| 新营市| 高唐县| 广灵县| 蕲春县| 乌苏市| 巨野县| 沾益县| 晋中市| 长垣县| 台湾省| 河东区| 大安市| 太仆寺旗| 克山县| 运城市| 吴桥县| 兴隆县|