一.
<1.什么是函數?
: 一段定義好的代碼,並可以被反復使用的代碼塊
<2.函數的作用:
提升代碼的可復用性 將一段代碼進行預定義 ,需要使用的時候才觸發
代碼塊:形成了一個相對獨立的作用域
<3.語法:
function 函數名(參數列表){
代碼塊(函數體) ==>待執行的代碼塊
return 返回值 返回執行的一些結果, 結束函數(程序碰到return之后,return后面的代碼就不會執行了) 最多只能有一個返回值
1.函數的作用域
全局函數:一般是js寫好的一些函數, 獨立於任何function的位置處,位於JS的最外層
局部函數:在一個函數內部定義的函數
2.變量的作用域
什么是作用域?
:范圍 變量的生命周期
JS中作用域的分類:
<1.函數作用域
該變量只在當前作用域中可以訪問
只有在當前函數中能訪問,離開函數無法訪問
在函數體中使用var關鍵字定義的變量才是局部變量
<2.全局作用域
一經定義 ,在代碼中的任何位置都能訪問到
在函數體中不通過var關鍵字定義且賦值了的變量 ,就會成為全局變量
3.分支結構
程序 = 數據結構 + 算法
任何復雜的算法都有以下幾種結構:
<1、順序結構
<2、分支選擇結構
<3、循環結構
4.分支結構:滿足不同的條件執行不同的程序
if分支:當條件滿足時,運行某些語句 語句可能會執行
if...else...分支:當條件滿足時,運行某些語句 否則運行else中的語句 一定會執行一種
if() ...else if()..else if() ...else 滿足某一個條件時執行相對應的代碼塊
語法:
if(條件){
語句塊
}
if(條件1){
語句塊1
}else if(條件2){
語句塊2
}else if(條件3){
語句塊3
}...
else{
語句塊n
}
<1、條件應該是boolean類型的值或表達式
<2、如果條件不是boolean的話,會自動進行轉換
以下幾種情況會默認轉換為 false
if(0){}
if(0.0){}
if(NaN){}
if(undefined){}
if(""){}
if(null){}
if(false){}
除了以上的情況,其他都轉換為true
if(1){}
if(2){}
if("今天天氣好好呀!"){}
<3、if(條件)后面的{}可以省略的,但是不推薦 如果省略了,那么if結構只控制if下的第一條語句
5.switch-case結構
作用:為了簡化,等值判斷的條件判斷結構
語法:
switch(變量/表達式){
case 值1:
語句塊1;
break;//該語句塊結束 可以省略
case 值2:
語句塊2;
break;
. .. ...
default:
語句塊n;
break;
}
二.循環
循環:一遍又一遍的重復執行相同或相似的代碼
特點:
1、循環條件:規定循環的執行次數
2、循環的操作:要執行的相同或顯示的語句
3、while循環結構
while(條件){
循環體
}
1)判斷 循環條件
2)循環條件為真,true ,執行循環體
再判斷條件,如果條件為真 執行循環體
....
3)循環條件為假,false,則結束循環操作
循環的三要素
<1、循環變量
<2、循環條件 滿足時才執行循環體
<3、循環變量的變化 變化是趨向於條件的不滿足,趨向於循環的結束
4.For循環結構
語法:
for(達表示1;表達式2;表達式3){
循環體
}
表達式1:聲明循環變量 可以省略 循環變量需要在循環開始之前聲明好
表達式2:循環條件的判斷 可以省略 在循環體中添加結束循環的判斷 否則就會形成死循環
表達式3:更新循環變量 可以省略 在循環體中添加循環變量的更新語句
三個表達式可以省略,但是;不能省略
流程:
1、執行表達式1 申明循環變量
2、判斷循環條件是否成立 成立則執行循環體
3、執行表達式3,更新循環變量
執行表達式2 判斷循環條件是否成立 成立則執行循環體
表達式2執行的結果為false 則終止循環
適用於:固定循環次數
5.do while 結構
語法:
do{
循環體
}while(條件);
流程:
<1、先執行循環體
<2、判斷循環條件
如果循環條件成立true,則繼續執行循環操作
如果訓話條件不成立false,則退出循環
while 和 do while的區別
1、while:先判斷,后執行 可能一次都不執行循環體
2、do while:先執行,后判斷 至少會執行一次循環體