js 經過function來定義函數

什麼是函數:函數

函數是完成某一功能的代碼段。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>
相關文章
相關標籤/搜索