javaScript學習


        由於最近很閑,都不知道干啥,隨便看了一本書-javaScript從入門到精通!每當看到某某書有”精通“兩個字,我都very好奇的,無不對時刻對作者投以欽佩之情,總在想要是我偷偷看了的話,是不是也非常非常厲害了的,是不是也能爐火純青,登峰造極,是不是也能....等等等等.但是我又好害怕的,因為第一篇隨筆呀,怕別人看了都不關注我,我又少了好多粉絲呢,而且都說博客寫的不好的長得丑呢,怎么辦才好呢!坐立不安啊..................

 


 

因為javaScript是在瀏覽器里解釋執行的,為了早日能看到修煉成果,我不得不去偷學其他的東西了了不容易啊!清晰的記得有一天我不小心點到了網頁源碼,為此我精簡如下:

<html>
 <head>
        <style type="text/css">
                selector {property: value}
        </style>
        <script language="javascript">
                function name(){}
        </script>
 </head>    
 <body>
    hello...world
 </body>
</html>

還有如下口訣:

HTML:

    超文本標記語言(HyperText Markup Language)html元素由很多成對的標簽構成,標簽有各種莫名其妙的屬性!其實,碰到這種敵人我只能先翻下書;

 

CSS:

  指層疊樣式表(Cascading Style Sheets) 是能夠真正做到網頁表現與內容分離的一種樣式設計語言,樣式定義如何顯示 HTML 元素 樣式通常存儲在樣式表中 要是沒這的話,估計復雜的好看頁面會死人的;

 

Dom:

      文檔對象模型 (Document Object Model)  在應用程序中,基於Dom的Html分析器將html文檔轉換成一個對象模型的集合(通常稱作是Dom樹),一個html分析器,在對html文檔分析后,不管這個文檔有多簡單或復雜,其中的消息都會被轉化成一顆對象樹 ,通過Dom接口,應用程序可以在任何時候訪問Html文檔的任何一部分數據,因此利用Dom接口的機制也可以被稱為隨機訪問機制。Dom接口提供了一種通過分層對象模型來訪問html文檔的信息的方式,這些分層對象模型依據html文檔結構形成了一個節點樹。

      DOM的設計是以對象管理組織(OMG)的規約為基礎的,因此可以用於任何編程語言;要改變頁面的某個東西,JavaScript 就需要獲得對 HTML 文檔中所有元素進行訪問的入口。這個入口,連同對 HTML 元素進行添加、移動、改變或移除的方法和屬性,都是通過文檔對象模型來獲得的(DOM)。

 

JavaScript:

  是一種原型化繼承,面向對象的,動態類型的客戶端腳本語言。是因特網上最流行的腳本語言 ,主要目的是為了解決服務器端語言,比如:Perl遺留的速度問題,為客戶端提供更流暢的瀏覽效果::有 利於頁面顯示和行為的分離,瀏覽器事件作出響應 瀏覽器事件作出響應;

  ------是一種解釋性腳本語言(代碼不進行預編譯)

  什么是解釋性呢,呢呢,??????如下:

    編譯器翻譯的方式有兩種:一個是編譯,一個是解釋。兩種方式之間的區別在於翻譯時間點的不同。

      編譯型程序執行速度快,同等條件下對系統要求較低;解釋型邊解釋邊運行,,效率相對比較低但是不同系統平台間的兼容性較好。

  它的基本特點如下:

    嵌入動態文本於HTML頁面;

    對瀏覽器事件作出響應 ;

    讀寫HTML元素 ;

    在數據被提交到服務器之前驗證數據;

    檢測訪客的瀏覽器信息,控制cookies,包括創建和修改等;

額,我都覺得我很啰嗦了!

 


0 . 整體

前面我們看到了這個<script>..</script>那這個東西什么作用來的啊?我又千辛萬苦百度了下,發現如下:

<script> 標簽用於定義客戶端腳本,比如 JavaScript。

script 元素既可以包含腳本語句,也可以通過 src 屬性指向外部腳本文件(如:js文件的地址URI)

必需的 type 屬性規定腳本的 MIME 類型。例如:type="text/javascript");

這時我又在想,在頁面這個關系復雜的地方,它是何時何地執行的呢?

head標簽是前於body標簽處理的,在head標簽的所有文件加載完前是沒法進行body內容的展示,且Javascript在頁面裝載時執行的順序就是其引入標記<script />的出現順序, 請看下:

<html>
 <head>
 <script language="javascript">
        alert("one");
 </script>
 </head>
 <body onload="alert('three')" >
      <script language="javascript">
        alert("two");
      </script>
 </body>
</html>

//one   two  three

 

知道了它從哪里開始了,那么着既然是一門語言,那又有和其它語言有什么不同呢?(都說了時解釋性的了,啰嗦!)

 

  1. 變量:

  不像其他語言有固定的數據類型,int,float,javaScript變量可以存放任何類型的值, 內部快速自動的進行兩種不同的類型的轉換;(特么神奇啊,是吧?是啊!),也有兩個煩人的類型,null,undefined,

如果沒有聲明,默認為undefined,如果聲明了,但是沒賦值,就是null,不知道是不是這個樣子的呢?算了,為了加快速度,我閃了!但為了回憶還是留下點啥!如下:

<html>
 <head>
        <script language="javascript">

            function  cmp(){

                alert(null===undefined); //false;
                alert(typeof null);  //Object
                alert(typeof undefined)  //undefined
            }

            cmp();
        </script>
        <script language="javascript">
            alert(tmp);   //輸出 undefined
            var   tmp = 1;  
            alert(tmp);  // 1
        //也說明是邊解釋邊執行哦
var i,j; i=5;j=7; alert(""+i+j); //57 alert(""+(i+j)); //12; alert(j/i);//1.4 alert(Math.floor(j/i)); //1 </script> </head> <body> hello..木有..world </body> </html>

 

對於上面,你也會發現:var ={int  ,bool  ,float,Object,String,undefined,null......}各種數據類型的集合,Ps:對象是一種構造數據類型;

 

2 . 語法:

  好歹我先前也練了乾坤大挪移,什么語法的小菜了,(不過也有她自身的獨特語法,,whih,,in,,等,)

  函數:function name(){......}     、、呵呵很簡單了

  還有其他兩個函數有必要說出來,這樣我們才可以看到我們程序的結果了:document.write("hello");   alert(“提示什么結果不”);請看:

 <html>
   <head>
       <script language="javascript">
              function find( ){
                  document.write("hello");    
                  //會清除原有的內容!
          //        document.getElementById("id").value="不好";
                  //沒有注釋的話,報錯,無法設置屬性value,對象為空或未定義,
              }
  //            find();
       </script>
   </head>
  
   <body>dfd
          <input  type="button"  onclick="find()">
          <input  type="text" id="id" name="id" value="你好嗎?">
 
   </body>
  </html>  看到結果后,會驚奇的發現,因為document.write()把頁面原來存在標簽按鈕的覆蓋了,為什么啊?尼瑪,趕速度啊,先這樣吧!於是你也會驚奇不,看到了吧,可以有事件哎!
因為如此,才增加了它的可練性啊,因為有了互動么!


3.事件:
  簡單理解,事件機制是一種觸發機制,要想客戶端的javaScript程序有 機會唄激活並運行,就必須有一個觸發的事件;(好比老鼠夾子,嘻嘻);
  如何綁定呢:
------1.綁定到元素屬性:即標簽中的屬性,屬性名由事件屬性有一個“on”前綴+事件類型;如:onClick OnMouseOver 這些屬性也被稱為事件處理器:

   ------2.綁定到對象屬性: Dom節點中的對象屬性, document.getElementById("myButton").onclick=myFunction;
<html>
   <head>
       <script language="javascript">
                var i=0;
              function find( ){
                    document.getElementById("myButton").onclick=find;
                  alert(i);
                    i++;
              }
       </script>
   </head>
  
   <body>
          <input  type="button"  value="先點元素"onclick="find()">
            <input  type="button"  value="后點對象" id="myButton">
   </body>
  </html>
        //結果為 alert(0),alert(1),

 


不寫了,再寫的話,本來很好的別人也會差評的呢,。但是既然學了那么多,還是留下個數字拼圖游戲吧:如下:很好玩的哦,不信算了。。
  截圖炫耀:(其實你不用羡慕了)

<html>
 <head>
  <title> five </title>
<style type="text/css">
    td input {
          background-color: #00ff00 padding: 0px;
          padding-top: 0px;
          padding-right: 0px;
          padding-bottom:0px;
          padding-left: 0px;
          width: 100px;
          height: 100px;
          font-size: 80px;
    }
</style>
<script language="javascript">

    var hasvalue = new array(5);
        for(i=0;i<=4;i++)
            hasvalue[i]=new array(5);    
    var s=0,m=0,t;
    function timecount(){
        s++;
        if (s<10) 
          s="0" + s;
        else if(s>59){
          s-=60;
          m++;
          }
        document.getelementbyid('time').value=m+":"+s; 
        t=settimeout("timecount()",1000)
        
    }
    function reducerandom(){
        s=m=0;
        timecount();
        //為何不是遞歸呢????一直在此循環??
        var isok  = new array(8);
        var i,num ;
        var t=0;
        for(i=0;i<=8;i++) 
            isok[i]=false;

        for(i=0;i<=4;i++)
            for(j=0;j<=4;j++)
                hasvalue[i][j]=1;                    
        hasvalue[3][3]=0;

        while(1){
            num = math.floor(math.random()*8+1) ;
            if(isok[num])
                continue;
            isok[num]=true;
            t++;
            document.getelementbyid(""+t).value=num;
            if(t==8)
                break;    
        }    
        document.getelementbyid("9").value="";
    }

    

    function exchange(button){
        var i , j;
        if(button.value=="")
            return;
        if(button.value!=""){
            i=math.floor((button.id-1)/3+1);
            if(button.id%3==0)  j=3;
            else      j=button.id%3;
            hasvalue[i][j]=0;
            if(hasvalue[i-1][j]==0) {    hasvalue[i-1][j]=1;document.getelementbyid(""+((i-2)*3+j)).value=button.value ;button.value="";     }
            else if(hasvalue[i+1][j]==0) {     hasvalue[i+1][j]=1;document.getelementbyid(""+(i*3+j)).value=button.value ;button.value=""; }
            else if(hasvalue[i][j-1]==0) { hasvalue[i][j-1]=1;document.getelementbyid(""+((i-1)*3+j-1)).value=button.value;button.value=""; }
            else if(hasvalue[i][j+1]==0) {    hasvalue[i][j+1]=1;document.getelementbyid(""+((i-1)*3+j+1)).value=button.value;button.value="";     }
            else  hasvalue[i][j]=1;
            if(checkover())
                {
                    alert("congratulation!!");
                    cleartimeout(t);    
                }
        }        
    }
    function checkover(){
        var i;
        var target;
        for(i=1;i<=8;i++){
            target=document.getelementbyid(""+i);
            if(target.id!=target.value)    
                return false;
        }
        return true;
    }

</script>

 </head>

 <body>
<br>
<center>
<input type="button" style="color:#ff0000;" value="開始游戲" onclick="reducerandom()">
<input type="text"  id="time" style="color:#ff0000;" >
</center>
<br><h4 align="center" style="color:#ff66cc;">author:five</h4> 
<hr>
        <table align="center" border="0" width="10%" >
            <tr>
                    <td><input type="button"  id="1" onclick="exchange(this)"></td>
                    <td><input type="button" id="2" onclick="exchange(this)"></td>
                    <td><input type="button" id="3"  onclick="exchange(this)"></td>
            </tr>
            <tr>
                    <td><input type="button" id="4"  onclick="exchange(this)"></td>
                    <td><input type="button" id="5" onclick="exchange(this)"></td>
                    <td><input type="button" id="6"  onclick="exchange(this)"></td>
            </tr>
            <tr>
                    <td><input type="button" id="7"  onclick="exchange(this)"></td>
                    <td><input type="button" id="8"  onclick="exchange(this)" ></td>
                    <td><input type="button" id="9"  onclick="exchange(this)" ></td>
            </tr>
        </table>
 </body>
</html>
View Code
好了,累死我了;
不會排版,丑死了!
2013-10-22 21:57:57,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM