JavaScript語法

1. 變量的定義和作用域

  var a = 1;   類型爲Number

  var a = "1";   類型爲String

  Number和String都是JS內置的對象。

  作用域: 在函數外面定義--全局; 在方法內部定義--在方法體內有效。

  變量是弱類型的,整數與字符串相加得到字符串。

  不區分單引號和雙引號;

2.語句、代碼和代碼塊

  JavaScript是發出的指令。每行句尾可以加上分號,多句同一行需要用分號隔開。代碼塊是用來更好的組織代碼的。代碼塊使用花括號包裹。

3.註釋

  單行註釋://

  多行註釋:/*開頭,*/結尾

4.運算符

 1) 算術符號:+、-、*、/、%(取餘,保留整數)、++、--

  說明:/除不盡有小數,能除盡爲整數。JS不區分整數小數?

  2)賦值運算符:=、+=、-=、*=、/=、%=

  3)比較運算符:==、===(全等,值和類型)、!=、>、<、>=、<=

  4)邏輯運算符:&&、||、!

  5)條件賦值: ? :  

   variablename=(condition)?value1:value2 
5.分支語句

  1)if...else...   if...else if...else

  2)switch...case...

  switch():判讀的類型無限制。c中就只能是int型和char('a')型。

  default不匹配條件時的操作。

6.循環語句

  1)for(var a = 0; a < 10; a++)

  2)while(a < 10) { a++ } ;       do { a-- } while(a>0)

   break:退出循環; continue:跳到下次循環。

  3) for/in - 循環遍歷對象的屬性

var person={fname:"John",lname:"Doe",age:25};
for (x in person)
{
      txt=txt + person[x];
}
7.函數

<script>  
        function goToUrl(strUrl)  
        {  
            location.href = strUrl;  
        }  <pre name="code" class="html"><script>


   1) 函數需要返回值時,用return即可。

   2) 函數可以在HTML事件/ FORM / JavaScript 中被調用,如:

   a. HTML元素事件回調:       <body οnlοad="goToUrl('http://www.baidu.com')" >   b. FORM元素事件回調       <select name="somelist" οnchange="onSomeThingChanged()">

   c. 超鏈接目標

       <a href="javascript:goToUrl('www.baidu.com')" > go </a>

   d. 直接在JavaScript中調用       <script>           goToUrl(”www.baidu.com");       </script>

8. 類

     一般的JavaScript是不需要使自定義類,不會這麼複雜。難調試,不便閱讀。如果一定要寫什麼複雜的功能,如菜單樹之類的,就得寫一點類來完成了。

    1) 類定義

     a. 不帶參數

<script>  
    function SampleClass()  
    {  
        // 變量變量定義  
        this.nId = 10;  
          
        // 成員函數定義  
        this.plusId = function (nPlus)  
        {  
            return this.nId + nPlus;  
        }  
    }  
</script> 
    b. 帶參數

    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;  
        }  
    }  

   2)創建類的實例
      var item = new MenuItem("haha", "http://www.baidu.com", null);

   3)類需要注意

    a. 在成員函數裏引用成員變量,一定要加this.,不然引用不到

    b. 成員函數如果想返回值,就用return,想return什麼類型都不必事先聲明,直接return就好

    c. 對於學習C++和Java的程序員來說,要明白var  p = new SomeClass();這句中的new其實就是創建一個對象並返回其指針

    d. 考慮使用Object類

9. Object類

     大多數情況下都不需要自己聲明一個類,可以直接使用Object類來定義一個結構,而無需事先聲明這個結構的形式。

function createObject()  
{  
    var obj = new Object();  
    obj.x = 10;  
    obj.y = 11;  
    return obj;  
} 
    這個函數隨意的創建了一個object,爲其添加成員 x, y,並沒有通知任何人(無prototype聲明)。而使用者也是直接就可以調用其 o.x , o.y
<script>  
    var o = createObject();  
    document.writeln("x=" + o.x + ", y=" + o.y);      
</script> 
10. 數組Array

    <script>  
        // 創建  
        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>  
數組作爲成員變量

function Menu()
{  
    this.itemArray = new Array();
   
    this.addItem = function(l, h, t)
    {  
        var item = new MenuItem(l,h,t);  
        this.itemArray.push(item);  
    };                  
} 
 1) 添加元素

  push 方法將新元素添加到一個數組中,並返回數組的新長度值。
  arrayObj.push([item1 [item2 [. . . [itemN ]]]])
  參數:
           arrayObj--必選項。一個 Array 對象。  
           item, item2,. . . itemN--可選項。該 Array 的新元素。  
  說明:
        push 方法將以新元素出現的順序添加這些元素。如果參數之一爲數組,那麼該數組將作爲單個元素添加到數組中。如果要合併兩個或多個數組中的元素,請使用 concat 方法。

var arr = new Array(0,1,2,3,4); 
// 參數是一個或多個 
var len = arr.push(5,6); 
//len = arr.push(7); 
for(var i=0;i<arr.length;i++){ 
    alert(arr[i]); 
}

  2) 刪除元素

   pop 方法

    移除數組中的最後一個元素並返回該元素。
    arrayObj.pop( )
    必選的 arrayObj 引用是一個 Array 對象。
    說明
    如果該數組爲空,那麼將返回 undefined。

   shift 方法

    移除數組中的第一個元素並返回該元素。
    arrayObj.shift( )
    必選的 arrayObj 引用是一個 Array 對象。
    說明

    shift 方法可移除數組中的第一個元素並返回該元素。   

var arr = new Array(0,1,2,3,4); 
var remove = arr.pop(); 
alert(remove); 
alert(arr.length);
  splice 方法

    從一個數組中移除一個或多個元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。
    arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])
    參數:
            arrayObj--必選項。一個 Array 對象。   
            start--必選項。指定從數組中移除元素的開始位置,這個位置是從 0 開始計算的。
            deleteCount--必選項。要移除的元素的個數。
            item1, item2,. . .,itemN--必選項。要在所移除元素的位置上插入的新元素。
    說明:

            splice 方法可以移除從 start 位置開始的指定個數的元素並插入新元素,從而修改 arrayObj。返回值是一個由所移除的元素組成的新 Array 對象。

            如果你不想增加新的元素進去,那麼不要傳遞第三個參數即可!

var arr = new Array(0,1,2,3,4); 
// 刪除從2開始的兩個元素,位置從0開始 
// 返回移除元素的數組 
var reArr = arr.splice(2,2); 
// 可以在移除元素的位置替換新的元素進去 
//只是從移除開始位置進行增加新元素,如果你移除兩個元素,你完全可以增加10個新元素進去 
//var reArr = arr.splice(2,2,6,7,8,9); 
for(var i=0;i<arr.length;i++){ 
    alert(arr[i]); 
}

   concat 方法 (Array)

   返回一個新數組,這個新數組是由兩個或更多數組組合而成的。
    array1.concat([item1[, item2[, . . . [, itemN]]]])
   參數:
           array1 --必選項。其他所有數組要進行連接的 Array 對象。
           item1,. . ., itemN--可選項。要連接到 array1 末尾的其他項目。
   說明:
          concat 方法返回一個 Array 對象,其中包含了 array1 和提供的任意其他項目的連接。
          要加的項目(item1 … itemN)會按照從左到右的順序添加到數組。如果某一項爲數組,那麼添加其內容到 array1 的末尾。如果該項目不是數組,就將其作爲單個的數組元素添加到數組的末尾。

         以下爲從源數組複製元素到結果數組:

         對於從正被連接到新數組的數組中複製的對象參數,複製後仍然指向相同的對象。不論新數組和源數組中哪一個有改變,都將引起另一個的改變。
         對於連接到新數組的數值或字符串,只複製其值。一個數組中值有改變並不影響另一個數組中的值。
var arr = new Array(0,1); 
var arr2 = new  Array(3,4); 
var arr = arr.concat(arr2); 
for(var i=0;i<arr.length;i++){ 
    alert(arr[i]); 
}


執行順序與生命週期

   1) 從上到下依次執行/解析,調用一個function時,必須保證該function已經被解析/聲明瞭。這就是一般要把function定義在<head>的原因。

   2) 所有的function與變量只在本頁面內有效,當離開頁面後,新的頁面內無法訪問上一頁內聲明的變量或函數。如果一定要訪問,可以使用Cookie也存一下,到下一頁再讀出來。


 



  

發佈了66 篇原創文章 · 獲贊 16 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章