function的英文是[功能],[數] 函數;職責;盛大的集會的意思
在js裏,就是函數的意思。在Java裏叫作方法。es6
function fun(參數){ //函數體 //return無關緊要,根據實際要求加或不加 }
//函數名() fun();
ps:在js裏,咱們的方法能夠先調用後聲明,也就是調用寒素的代碼能夠寫在定義函數的前面。數組
實參:簡單理解就是實際的參數,在調用函數的時候傳的
形參:簡單理解就是在定義函數時,用來接收調用時傳的值函數
var n1=123 , n2=456 //調用函數 fun(n1 , n2) //定義函數 function fun( a , b){ a += 100 b += 100 console.log(a , b) } console.log(n1 , n2) //運行結果:223 , 556 //123 , 456
ps:咱們能夠看出,實參和形參並非同一個變量this
先看一段代碼:es5
function fun(a , b , c){ console.log(a*10 , b+10 , c-10) } //調用 fun(1,2,3)//輸出結果10,12,-7 //這裏是沒毛病的,正常輸出 //可是下面這個調用呢??? fun(20,2) fun() fun(12,32,14,5)
ps:上面的寫法,都不會報錯...若是不信能夠本身試試。code
首先,在js裏,並無規定函數在定義的時候,必定要有返回值或者返回值類型這一說法,很活躍的,你想返回什麼結果均可以
其次,若是要返回結果或者結束函數體,就要用到return關鍵字對象
在es5裏,arguments是一個對象,用來接收全部的參數,用法和數組一致;不過目前已被廢棄,有更好的代替它
es6:(推薦使用)遞歸
function fun( n1, n2, ...args ){ //args只能接收n2後面的數 //用...接收的就是一個數組,能夠遍歷 }
ps:...後面不必定要寫args,能夠本身隨便命名,符合字符串規範就行。通常用args表示字符串
先看代碼:it
var num = 100 var res = fun(1) //定義函數 function fun(n){ console.log( num + n ) } //輸出爲101
ps:上面的代碼運行結果沒問題,可是,耦合度很高,由於在函數體內,用全局變量運算,這就很忌諱,若是項目要移植,這些用到的變量就會拖泥帶水的,耦合度高。這在之後的工做中這麼幹容易被炒魷魚...
注意:若是要使用,傳參數就行了,千萬別使用全局變量
var f = function fun(){ console.log("my name is rainbow") } console.log(f)
ps:咱們把一個函數體,賦值給了一個變量,那麼這個變量打印出來會怎麼樣呢?
結果:並不會報錯,而是直接打印出了整個函數體的內容。咱們能夠這麼想,調用函數的時候,咱們寫的是fun(),也就是 函數名() 就變成了調用了。其實,js裏面還真是這麼幹的,函數名加括號就是調用了一次函數。
在這裏,你們和我想一個問題,這個方法體賦值給了變量,那這個變量是什麼類型呢???
簡單理解就是,你要使用一個函數,可是這個函數沒有名字,這要怎麼使用呢。
很簡單,上面不是說了嗎?
var a = 10; var b = 20;**************** var f = function(){ console.log(n1+n2) }; f(a,b)//輸出結果30
(function(){ console.log('this is rainbow !') })(); 例子 var a = 10; var b = 20; (function( n1 , n2 ) { console.log( n2 + n1) })(a ,b); //輸出結果爲30
ps: