天天看點

黑馬程式員—Javascript基礎

---------------------- Windows Phone 7手機開發 、.NET教育訓練、期待與您交流!----------------------

1.JavaScript 

 是一種在浏覽器端執行的語言。

 JS 是解釋型語言,無需編譯就可以随時運作,即使有文法錯誤,沒有文法錯誤的部分還能正确運作。

2.JS 開發環境 

3.JS入門 

 <script type="text/javascript" >

     alert(new Date().toLocaleDateString());

 </script>

 放到<head>中的<script>在body加載之前就已經運作了。

 在<head>中和<body>中,<script>可以寫多次

 html頁面從上往下執行。

 <!--引用公共的JS檔案,就像C#中的添加引用-->

 <script src="common.js" type="text/javascript" ></script>

4.事件 

 <a href ="javascript:alert('Hello')">點選</a>

 <a href ="1.htm" οnclick="alert('Hello2')">點點</a>

 隻有在超連結的 href 中的 javascript中才需要加“javascript”,因為它不是事件,而是把“Javascript”看成像“http:”,"ftp:","thunder://","ed2k://","mailto:"一樣的網絡協定

 交由js解析引擎處理,隻有href中是一個特例。

 button的onclick事件:

 <input type="button" value="點" οnclick="alert('點我啊!')" />

5.JS 的變量 

 javascript 中即可雙引号,單引号聲明變量

 Javascript中有null,undefined兩種,null 表示變量的值為空,undefined 則表示變量還沒有指向任何對象,未初始化。

 <script  type="text/javascript">

     var i=10;//聲明一個變量,名字為i,指向10 這個整數 ,一旦指向10,i就是int 類型了。

     i="abc";//嫁雞随雞嫁狗随狗,制定類型之後,還可以再變

     alert(i);

 </script>

6.JS 排錯與調試 

 IE調試選項要打開,Internet選項/進階,去掉“禁用腳本調試”前的勾選

 以調試方式運作頁面

 設定斷點,監視變量等操作和C#一樣

7.判斷變量初始化 

 JS中判斷一個變量是否為空,是否已經初始化的三種方法:

 (1) var x;

       if(x==null);

       { alert("null");}

 (2) if(tyeof(x)=="undefined")

     { alert('undefined');}

 (3)if(!x) //推薦用這種寫法

   {alert('不 x ');}

 if(x){} 變量被初始化了或者變量不為空或者變量不為0

8.函數的聲明 

 Javascript中聲明函數的方式:(沒有傳回值類型,沒有參數類型)

 function add(i1,i2){

   return i1+i2;

  }

 注意格式

 <script type ="text/javascript" >

  function add(i1,i2){

         return i1+i2;

   }

  var i3=add(1,2);

  alert(i3);

 </script>

 注:函數的使用可以放在聲明的前後,都可以。

    沒有傳回值的話,就是undefined

9.匿名函數 

 var f1=function(i1,i2){

   return i1+i2;

 }

  alert(f1(i1,i2));

 說明:聲明一個函數,用f1委托指向它,後面在調用f1.把f1當做函數在用

 少見可行的用法:(直接聲明一個匿名函數,立即使用)

 alert(function (i1,i2){return i1+i2;} (10,10));

10.JS面向對象基礎 

 JavaScript中沒有類的文法,是用函數閉包(closure)模拟出來的。(類不是類,是對象)

    <script type="text/javascript" >

         function Person(name,age){   //聲明一個函數,當成類用

             this.Name=name;

             this.Age=age;

             this.SayHello=function(){alert("你好,我是"+this.Name +",我"+this.Age+"歲了!")};

             //動态聲明SayHello方法,指向匿名函數

         }

         var p1=new Person("tom",20);

         p1.SayHello();

     </script>

11.Array對象 

 在Javascript中,array是一個動态數組,無需預先定義大小,是動态的

 求一個數組中的最大值:

 function GetMax(arr){          

    var max=arr[0];

    for(var i=1;i<arr.length;i++){

       if(arr[i]>max){

          max=arr[i];

       }

     }

    return max;

    }

    var arr1=new Array();

    arr1[0]=3;

    arr1[1]=2;

    arr1[2]=5;

    alert (GetMax(arr1));

 字元串之間用 “|”隔開:

 function myjoin(arr){

     if(arr.length<=0){           

       return "";

     }

     var s=arr[0];

     for(var i=1;i<arr.length;i++){

     s=s+"|"+arr[i];

     }

      return s;

     }

      var arr=new Array();

      arr[0]="tom";

      arr[1]="jerry";

      arr[2]="lily";

      alert(myjoin(arr));

 數組反向輸出:

  function myReverse(arr){

             var temp;

             for(var i=0;i<arr.length/2;i++){

                 temp=arr[i];

                 arr[i]=arr[arr.length-i-1];

                 arr[arr.length-i-1]=temp;

             }         

         }

         var arr2=new Array();

         arr2[0]="3";

         arr2[1]="a";

         arr2[2]="8";

         arr2[3]="haha";

         alert(arr2);

         myReverse(arr2);

         alert(arr2);

12.JS中Dictionary 

 Array,不僅是一個數組,還是一個Dictionary,還是一個Stack。

  var dict=new Array();

  dict["人"]="ren";

  dict["口"]="kou";

  dict["手"]="shou";

  alert(dict["口"]); //根據 key ,來取value

  for(var k in dict){  //JS中沒有foreach,通過for的文法,周遊key

    alert(k);

  }

13.Array 的簡化聲明 

 1)普通數組初始化:

 var arr=[3,5,6,8,3,2];

 2)字典風格的簡化建立方式:

  var arr={"tom":30,"jim":20};

14.數組,for及其他 

 //獲得對象所有的成員,為什麼可以獲得呢?對象的成員就是以對象的key的形式出現的

 for(var e in document){

    alert(e);

 }

---------------------- Windows Phone 7手機開發 、.NET教育訓練、期待與您交流!----------------------

詳細請檢視:http://edu.csdn.net/heima/

繼續閱讀