2016.3.18__ JavaScript基礎_2__第十三天

來源:互聯網
上載者:User

2016.3.18__ JavaScript基礎_2__第十三天
2016.3.18__ JavaScript基礎2_第十三天今日課程預覽

1.for迴圈

如果您希望一遍又一遍地運行相同的代碼,並且每次的值都不同,那麼使用迴圈是很方便的。

當然,我們可以一遍遍的重複代碼。

document.write(cars[0] + "");document.write(cars[1] + "");document.write(cars[2] + "");document.write(cars[3] + "");document.write(cars[4] + "");document.write(cars[5] + "");

但是我們程式猿是最討厭重複性操作的人,讓我們寫這麼多不是逼瘋我們麼。

所以我們要使用迴圈。(下面是對迴圈結構的詳細說明,有一定基礎的同學可以跳過)

for (var i=0;i
1.1 迴圈詳解

下面是對迴圈結構的詳細說明,有一定基礎的同學可以跳過。

迴圈體的結構

for(定義一個迴圈增量;迴圈條件;迴圈增量自加/自減){    迴圈體}

分析一下這個迴圈結構:

迴圈增量: 在這裡定義一個迴圈增量,並賦初值(一般是 0 或者 1) 迴圈條件: 這是一個條件運算式,用來判斷迴圈調試是不是滿足 迴圈增量自加: 在這裡,每次迴圈,之前定義的迴圈增量都會增加1次 迴圈體: 在迴圈條件成立的前提下,會不斷重複迴圈體中的內容,直至迴圈條件不成立

注意:寫迴圈的時候一定要注意給出正確的迴圈條件,否則會造成死迴圈。

        
<script> cars=["BMW","Volvo","Saab","Ford"]; for (var i=0;i"); } </script>1.2 跳出迴圈、中止迴圈1.2.1 break

那如果我們想要我們的程式當迴圈到一個特定的人的時候,不繼續進行了,該怎麼辦?

我們需要使用我們的 break,去跳出當前的迴圈。

    <script>        for (var i=0;i<10;i++)        {            alert(i);            if(i > 5){                break;            }        }    </script>

當 i <= 5 之前,每次迴圈都去列印 i 的值, 當 i > 5的時候,就直接跳出當前迴圈。繼續向後執行。

1.2.2 continue

當我們想迴圈到某一個次數之後,我們就不對當前迴圈內的某些內容執行的時候,我們就可以使用 continue 去跳出當前的迴圈,繼續下一次的迴圈。

    <script>        for (var i=0;i<10;i++)        {            alert(i);            if(i > 5){                alert("執行了continue");                continue;            }            alert("沒有執行continue");        }    </script>

前5次迴圈,都列印計數並顯示沒有執行continue,五次之後就顯示執行了continue

注意:

break是停止整個迴圈,不管你執行到第幾次,直接結束。

continue是跳出當前迴圈計數時的迴圈,就好像當我們迴圈到第5次的時候,執行了 continue,程式會直接結束當前的這次迴圈,去執行第6次迴圈。

這一點一定一定要注意!

1.3 其他類型迴圈

除了for迴圈(迴圈代碼塊一定的次數)之外,還有三種常見迴圈。

for/in - 迴圈遍曆對象的屬性

while - 當指定的條件為 true 時迴圈指定的代碼塊

do/while - 同樣當指定的條件為 true 時迴圈指定的代碼塊

因為其他迴圈方法,使用情境不多,在這裡不做更多介紹。

1.4 for..in.. 迴圈(拓展)

for..in..迴圈是 for 迴圈的一個變種,

它的作用主要是將一個對象的所有屬性依次迴圈出來。

    var o = {        name: "larra",        age:20,        sex:"girl"    };    for(var key in o){        alert(key); //'name','age','sex'    }
2. input 的 checked 屬性

我們在之前的學習過程中已經介紹過了,input 標籤設定了類型 checkbox 屬性之後,

就變成了一個複選框,選中狀態時,checked 屬性為 true , 未選中為 false。

那如果我們想要通過點擊一個按鈕就能去更改是否選中,我們該怎麼做呢?

        

可以看見我們點擊按鈕,我們複選框的屬性就發生了改變,很神奇對吧。

那我們接下來配合上面的迴圈去做個練習,我們來模仿下購物車的原理。

當然,我寫的並不嚴謹,只是為了讓大家有一個基礎的概念。更完善的就等大家回去自己嘗試了。

3. className 屬性

我們也可以通過 className 屬性給元素繫結一個class 類型的CSS樣式.

    
  <script type="text/javascript"> var button_1 = document.getElementById("button_1"); var div_1 = document.getElementById("div_1"); button_1.onclick = function(){ if(div_1.className ==""){ div_1.className = "active"; } else{ div_1.className = ""; } } </script>4. this 指標

JS 中的 this 指標使用到函數中,首先需要分析 this 所在的函數是被當做哪個對象的方法去調用的。

也就是說,this 存在哪個函數中,誰調用函數就指代誰(即指標指向原對象的地址)。

相當於 Object-C 中的 self。

樣本一:

    var obj = {};     obj.x = 100;     obj.y = function(){        alert( this.x );     };     obj.y(); //彈出 100 

這段代碼非常容易理解,當執行 obj.y() 時,函數是作為對象obj的方法調用的,因此函數體內的this指向的是obj對象,所以會彈出100。

樣本二:

    //ul1是id對應的一個ul列表對象    ul1.onmouseleave = function(){   //此處這裡面的this就指代ul1對象(this誰調用,就指代誰)   this.style.display = "none";    }

同時我們也可以將之前的代碼進行一下替換,

    <script type="text/javascript">        var button_1 = document.getElementById("button_1");        var change_1 = document.getElementById("change_1");        button_1.onclick = function(){            if(this.checked){                this.checked = false;            }            else{                this.checked = true;            }        }    </script>

我們發現我們的代碼並沒有出錯,這也證明了我們之前所說的 哪個元素繫結了某個函數,這個函數中的 this 關鍵字就指代哪個元素

5. 綜合練習

預計實現效果:

    
A B C <script type="text/javascript"> //擷取所有的切換按鈕 var inputs = document.getElementsByTagName("input"); //擷取所有的 div var divs = document.getElementsByTagName("div"); //遍曆所有的按鈕,給點擊事件綁定函數 for (var i=0; i

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.