Javascript基礎Day3 1、迴圈:重覆執行代碼 特征:有規律性的重覆執行相似代碼 為什麼要使用迴圈? 主要是為了減少頁面代碼 for迴圈: 語法: for(表達式1;表達式2;表達式3){ 代碼 } 表達式1:初始值,定義在for迴圈中需要用的變數 表達式2:判斷條件,判斷初始值是否滿足該 ...
Javascript基礎Day3
1、迴圈:重覆執行代碼 特征:有規律性的重覆執行相似代碼 為什麼要使用迴圈? 主要是為了減少頁面代碼 for迴圈: 語法: for(表達式1;表達式2;表達式3){ 代碼 } 表達式1:初始值,定義在for迴圈中需要用的變數 表達式2:判斷條件,判斷初始值是否滿足該條件 代碼塊:當迴圈條件滿足時,所要執行的代碼 表達式3:步長,每次迴圈之後,初始值會發生遞增或遞減的操作 初始化:var i = 0; 判斷:i<5(i的值為0,返回true) 輸出:0 更新:i++(執行後i=1) 以此類推的加下去,知道4為止,判斷為<5所以不能超過5,所以到4就停止執行跳出迴圈 例: for(var i=0;i<5;i++ )
{
document.write(i+"<br/>");
}
註:
1、使用迴圈時,必須要註意迴圈條件,如果迴圈條件得不到滿足,就會造成死迴圈
2、可以把for迴圈中的表達式寫在其他位置中,不在小括弧中書寫;但是不能省略;號
for迴圈嵌套:
語法:
for(表達式1;表達式2;表達式3){
...代碼1
for(表達式1;表達式2;表達式3){
...代碼2
}
}
註:當外層迴圈執行一次時,內層迴圈只要滿足條件都會執行,必須要等內層迴圈全部執行完畢時,才會繼續執行第二次外層迴圈...
練習題:
/*
列印99乘法表,並美化一下
*/
for(var i=1;i<=9;i++){
//內層迴圈表示列數
for(var j=1;j<=i;j++){
document.write(i+"x"+j+'='+(i*j)+' ')
}
document.write("<br/>")
}
for(var a=1,b=2;a<=15,b<=10;a++,b++){
console.log(a,b)
}
註:以上for迴圈寫法;如果表達式2中的兩個條件中間是,號時,只需要滿足第二個條件就可以執行;如果兩個條件中是||運算符時,只要任意滿足其中一個條件就可以執行;如果兩個條件中是&&運算符時,那麼必須要兩個條件同時滿足,才可以執行
while迴圈:當條件滿足時,就執行{}括弧中的代碼,一旦條件不滿足,則跳出迴圈
語法:
while(條件){
迴圈體
}
例:
var n = 1;
var sum = 0;
//如果n小於等於100,則會執行while迴圈
while (n <= 100)
{
sum=sum+n;
n=n+1;
}
document.write("1+2+3+…+100 = " + sum);
變數n用於遞增(也就是不斷加1),初始值為1。sum用於求和,初始值為0。對於while迴圈,我們一步步來給大家分析一下。
第1次執行while迴圈,sum=0+1,n=2
第2次執行while迴圈,sum=0+1+2,n=3
第3次執行while迴圈,sum=0+1+2+3,n=4
……
第100次執行while迴圈,sum=0+1+…+100,n=101
每一次執行while迴圈之前,我們都需要判斷條件是否滿足。如果滿足,則繼續執行while迴圈;如果不滿足,則退出while迴圈。
當我們第101次執行while迴圈時,由於此時n=101,而判斷條件n<=100返回false,此時while迴圈不再執行(也就是退出while迴圈)。由於退出了while迴圈,接下來就不會再迴圈執行while中的程式,而是執行while後面的 document.write()了。
do while迴圈:跟while迴圈類似,但是它是不管條件是否滿足,先執行一次迴圈體;然後在來進行條件判斷 語法: do{ 迴圈體 }while(條件) 例:
var n = 1;
var sum = 0;
do
{
sum += n;
n++;
}while (n <= 100);
document.write("1+2+3+…+100 = " + sum);
***break:終止迴圈,當條件滿足時,直接跳出迴圈,不在往下繼續執行 例:
function myFunction() {
var text = ""
var i;
for (i = 0; i < 5; i++) {
if (i == 3) {
break;
}
text += "The number is " + i + "<br>";
}
console.log(text)
}
myFunction()
註:break關鍵字只能跳出當前迴圈體,不能同時跳出多層迴圈體
continue:結束本次迴圈;當條件滿足時,直接結束本次迴圈,繼續執行下一次迴圈 例:
function myFunction() {
var text = "";
var i;
for (i = 0; i < 5; i++) {
if (i == 3) {
continue;
}
text += "The number is " + i + "<br>";
}
console.log(text)
}
myFunction()
***函數:封裝了一些重覆執行的代碼塊; 為什麼要使用函數? 1、減少頁面的代碼量 2、有利於代碼的維護 函數的作用: 1、封裝一些重覆的代碼,可以隨時隨地調用 2、避免一些代碼在非必要的情況下執行 創建函數 1、聲明式函數 語法: function 函數名(){ 封裝的代碼 } 例:
function fn(){
console.log('hello')
}
fn()
2、賦值式函數
語法:
var 變數名=function(){
封裝的代碼
}
函數調用:函數名()
例:
var fn = function(){
console.log('hello')
}
fn()
聲明式函數和賦值式函數之間的區別:
1、聲明式函數可以在創建之前調用,也可以在創建之後調用
賦值式函數只能在創建之後調用
2、聲明式函數具有函數聲明提升,可以把函數體一起提升到當前作用域的最頂端
賦值式函數具有變數聲明提升,把變數的定義提升到當前作用域的最頂端
函數中的參數:形參和實參
形參:在創建函數時,函數名後面小括弧中的參數就是形參
實參:在調用函數時,函數名後面小括弧中的參數就是實參
註:實參和形參的關係是一一對應,不能交叉賦值
參數的個數不一致時:
形參的個數多於實參,多出來的形參值為undefined
實參的個數多於形參,多出來的實參忽略
聲明提升:聲明式函數和顯示定義變數才具有聲明提升
註意:
1、所有聲明提升都是提升到當前作用域的最頂端
2、同一個變數只會聲明一次,其他的都會被忽略
3、函數聲明提升的優先順序高於變數聲明提升的優先順序
4、函數的聲明提升會同時把函數體一起提升,這樣就可以在函數創建之前調用
註:在同一個頁面中時,變數名和函數名最好不要同名