什麼是函數:函數
函數是完成某一功能的代碼段。this
函數是可重複執行的代碼段。spa
函數方便管理和維護。code
自定義一個函數:對象
經過function關鍵字來定義一個函數。blog
語法:ip
function 函數名稱([能夠帶參數,也能夠不帶參數,能夠帶一個參數,能夠帶多個參數]){io
執行的代碼段;function
return返回值;class
}
1 <script> 2 alert(demo()) //這個函數是一個全局函數,調用函數的時候能夠在函數聲明前調用,或者函數聲明後調用均可以 3 function demo(){ //經過function關鍵字來聲明一個函數 4 alert("this is a function") //alert()是執行的一個代碼段 5 return 1 //return是這個函數的返回值 6 } 7 </script>
注意:
涵數名稱不要包含特殊字符。
函數名字名稱最好含義明確。
函數名稱最好遵循駝峯標記法或者下劃線法。
函數名稱嚴格區分大小寫。
涵數名稱若是重複會產生覆蓋。此例有演示代碼:
1 <script> 2 //同名函數會被第最後一個覆蓋 3 function demo(){ 4 alert("這是第一個demo1") 5 } 6 function demo(){ 7 alert("這是第二個demo2") 8 } 9 demo() //=>輸出結果爲 這是第二個demo2 10 </script>
函數能夠有參數也能夠沒有參數,能夠有一個參數也能夠有多個參數
參數的注意:
若是定義了參數,在調用函數時候沒有傳值,默認設置爲undefined 此處有演示代碼
1 <script> 2 function demo(num1,num2){ 3 return num1+num2 //num1和num2進行了隱式轉換,undefined轉換成number類型,結果爲NaN,兩個NaN相加爲NaN 4 } 5 alert(demo()) //=>返回值爲NaN 6 </script>
若是在調 用函數時若是傳遞參數超過了定義時的參數,js將會默認忽略掉多餘的參數 此處有演示代碼塊
1 <script> 2 function demo(num1,num2){ 3 return num1+num2 4 } 5 alert(demo(1,2,3,4,5)) //=>3 由於多餘的參數將會被js自動忽略 6 </script>
js中不能直接寫默認值,能夠經過arguments對象來實現默認值效果,此處有演示代碼:
1 <script> 2 //若是在參數裏直接設置值,結果會報錯,好比(num1=1,num2=2),這種狀況下就會報錯 3 function demo(num1,num2) { 4 /* num1= num1 != undefined?num1:1; //這個是用三元運算符來設置默認參數 5 num2= num2 != undefined?num2:3;*/ 6 num1 = num1 || 1 //當若是調用函數傳參的話則使用傳參的參數,不然用後面的默認參數 7 num2 = num2 || 3 8 return num1+num2 9 } 10 alert(demo(1,4)) //=>5 這個是設置了參數 11 alert(demo()) //=>4 這個是用了默認設置的參數 12 </script>
函數經過return加返回值,若是沒有return,默認返回undefined,此處有演示代碼:
1 <script> 2 function demo(){ 3 alert("這個是一個有返回值的函數,能夠返回全部原始類型的值") 4 return "若是return後面再作什麼操做都沒起任何效果,遇到第一個return則直接返回值" 5 alert("沒有任何效果") //第一個return後面的執行語句和 6 return false //返回值都不起任何做用 7 } 8 alert(demo()) //調用時,第一個先彈出alert語句,而後再返彈出返回這個函數的值 9 </script>