JavaScript核心語(yǔ)法總結(jié)(推薦)

字號(hào):


    本文介紹了JavaScript的基本(常用)語(yǔ)法,供大家參考。
    Overview
    先說一下Javascript該怎么寫。兩種形式,一種是直接把JavaScript寫在HTML頁(yè)面里,另一種是存在*.js文件里然后在頁(yè)面內(nèi)引用。
    直接寫時(shí),即可以放在<head> </head>內(nèi),也可以放在<body> </body>內(nèi)。一般函數(shù)是放在<head>區(qū)的,具體的執(zhí)行代碼是在<body>區(qū)里的。例如,在body里寫:
    <body>
    <script>
       document.writeln("haha <br/> ");
    </script>
    </body>
    引用方式
    <script type="text/javascript" src="js_css/menutree.js"></script>
    執(zhí)行順序與生命期
    JavaScript是從上到下依次執(zhí)行/解析的。在調(diào)用一個(gè)function或時(shí),必須保證該function已經(jīng)被解析/聲明了。這也是一般要把function定義放在<head>內(nèi)的原因。
    所有的function與變量只在本頁(yè)面內(nèi)有效,當(dāng)離開頁(yè)面后,新的頁(yè)面內(nèi)無(wú)法訪問上一頁(yè)內(nèi)聲明的變量或函數(shù)。如果一定要訪問的話,可以用Cookie也存一下,到下一頁(yè)再讀出來(lái)。
    syntax - 變量
    變量定義就以var開頭即可,就可以定義了一個(gè)變量了。放在函數(shù)體內(nèi)的就認(rèn)為局部變量,外面的就是全局變量。需要指出的是,JavaScript的語(yǔ)法是很亂的,變量也有別的定義方法。但是希望大家不要使用其他亂七八糟的語(yǔ)法,就使用這種最常見的語(yǔ)法就可以,足夠用,而且省腦筋。
    關(guān)于變量大家需要明白
    (1) 變量是弱類型的,一個(gè)整數(shù)甚至可以與字符串直接相加,得到一個(gè)字符串
    (2) 所謂全局變量,也只是在當(dāng)前頁(yè)面內(nèi)有效,當(dāng)頁(yè)面被unload跳到另一個(gè)頁(yè)面時(shí),所有的變量都被銷毀了。這些全局變量跟流覽器(也稱為User Agent)內(nèi)嵌變量有區(qū)別,每個(gè)頁(yè)面都自動(dòng)有window, document這些內(nèi)嵌對(duì)象。
    (3) 不區(qū)分單引號(hào)還是雙引號(hào)
    <script>
      // 變量定義
      var nNumOfBytes = 10;
      var fPercent = 0.32;
      var strYourName = ‘Mr.Known';
      var pRect = new Object();
    </script>
    syntax - 函數(shù)
    <script>
      function goToUrl(strUrl)
      {
        location.href = strUrl;
      }
    </script>
    函數(shù)可以在HTML事件/ FORM / JavaScript 中被調(diào)用,如:
    HTML元素事件回調(diào):
    <body onload="goToUrl('http://www.jb51.net')" >
    FORM元素事件回調(diào)
    <select name="somelist" onchange="onSomeThingChanged()">
    超鏈接目標(biāo)
    <a href="javascript:goToUrl('www.jb51.net')" > go </a>
    直接在JavaScript中調(diào)用
    <script>
        goToUrl(”www.jb51.net");
    </script>
    syntax - 類
    一般的JavaScript是不需要使自定義類的,就是說一般不會(huì)到達(dá)這么復(fù)雜的程度。因?yàn)槭悄_本語(yǔ)言嘛,隨便寫幾句就好。一是難調(diào)試,二是不便閱讀。但是如果一定要寫什么復(fù)雜的功能,如菜單樹之類的,那么就得寫一點(diǎn)類來(lái)完成了。
    同樣,類在JavaScript里也是有2種定義格式的,我們會(huì)下面的格式就好了,另一種格式很爛,還是不要知道為好。
    先來(lái)個(gè)不帶構(gòu)造參數(shù)的:
    <script>
      function SampleClass()
      {
        // 變量變量定義
        this.nId = 10;
         
        // 成員函數(shù)定義
        this.plusId = function (nPlus)
        {
          return this.nId + nPlus;
        }
      }
    </script>
    再來(lái)一個(gè)造參數(shù)的類
    function MenuItem(l, h, t)
      {
        this.label = l;
        this.href = h;
        this.target = t;
         
        this.toHtml = function()
        {
          var html = "<a href='" + this.href + "' ";
             
          if(this.target != null)
            html += (" target='" + this.target + "' ");
             
          html += " >" + this.label + "</a>";      
          return html;
        }
      }
    創(chuàng)建類的實(shí)例
    var item = new MenuItem("haha", http://www.jb51.net, null);
    關(guān)于類,注意以下幾點(diǎn):
    (1) 不要從頭寫一個(gè)類,請(qǐng)從我這里copy過去再改,這樣就不會(huì)有那些莫名其妙的麻煩了
    (2) 在成員函數(shù)里引用成員變量,一定要加this.,不然引用不到
    (3) 成員函數(shù)如果想返回值,就用return,想return什么類型都不必事先聲明,直接return就好
    (4) 對(duì)于學(xué)習(xí)C++和Java的程序員來(lái)說,要明白var p = new SomeClass();這句中的new其實(shí)就是創(chuàng)建一個(gè)對(duì)象并返回其指針
    (5) 考慮使用Object類
    syntax - Object類
    JavaScript語(yǔ)法很亂的,腳本語(yǔ)言嘛,要求不要太高。雖然可以自定義類,但大數(shù)多情況下都不需要自己聲明一個(gè)類,可以直接使用Object類來(lái)定義一個(gè)結(jié)構(gòu),而無(wú)需事先聲明這個(gè)結(jié)構(gòu)的形式。
    如:
    function createObject()
    {
      var obj = new Object();
      obj.x = 10;
      obj.y = 11;
      return obj;
    }
    看到?jīng)],這個(gè)函數(shù)隨意的創(chuàng)建了一個(gè)object,為其添加成員 x, y,并沒有通知任何人(無(wú)prototype聲明)。而使用者也是直接就可以調(diào)用其 o.x , o.y,無(wú)需要猜測(cè)。
    <script>
      var o = createObject();
      document.writeln("x=" + o.x + ", y=" + o.y);  
    </script>
    不過為了安全起見,也可以寫成這樣:
    var o = createObject();
      if(o.x != null && o.y != null)
      {
        document.writeln("x=" + o.x + ", y=" + o.y);  
      }
    syntax - 數(shù)組Array
    <script>
      // 創(chuàng)建
      var a = new Array();
      // 遍例
      for(var i=0; i<a.length; i++)
      {
        var e =   a[i];  
      }
      // 添加
      var item = new MenuItem("000");
      this.itemArray.push(item);
    </script>
    怎么刪除一個(gè)元素?記得是直接賦值為null,過后測(cè)一下再補(bǔ)充。
    數(shù)組作為成員變量
    function Menu()
    {
      this.itemArray = new Array();
      
      this.addItem = function(l, h, t)
      {
        var item = new MenuItem(l,h,t);
        this.itemArray.push(item);
      };        
    }
    以上這篇JavaScript核心語(yǔ)法總結(jié)(推薦)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考