1. 程式人生 > >函數基礎

函數基礎

使用 語句 script 下標 作用域 fun 參數 一個 變量

函數的定義 1.函數的聲明 function 函數名(){ } 2.函數表達式 var aa=function(){ } 函數的調用 1.函數名() 函數分類:方式一: 有名函數 匿名函數(匿名函數無法直接調用,如果想要調用,需要使用匿名函數的自調用) ( function(){ alert(); })(); 方式二: 內置函數:官方提供 自定義函數 函數的參數(形參 實參) 參數是一一對應的 實參>形參 --多余實參被省去 實參<形參 --多余形參為undefined arguments 實參集合列表 類數組 有length長度 有下標 但是沒有數組方法,適合形參個數不確定的情況 全局變量:在函數外部,script下 定義的變量 局部變量: 在函數中聲明的變量,就是局部變量 不使用var聲明的變量是全局變量,不推薦使用。 變量退出作用域之後會銷毀,全局變量關閉網頁或瀏覽器才會銷毀 return 如果函數沒有顯示的使用 return語句 ,那麽函數有默認的返回值:undefined 如果函數使用 return語句,那麽跟再return後面的值,就成了函數的返回值 如果函數使用 return語句,但是return後面沒有任何值,那麽函數的返回值也是:undefined 函數使用return語句後,這個函數會在執行完 return 語句之後停止並立即退出,也就是說return後面的所有其他代碼都不會再執行。 推薦的做法是要麽讓函數始終都返回一個值,要麽永遠都不要返回值。 函數的作用域與預解析 例如:谷歌瀏覽器 html css: 渲染引擎webkit js解析器: v8引擎 js解析器內部 解讀代碼的時候分兩步:1.查找聲明的變量和函數 2.執行代碼 預解析 js解析器執行js代碼的時候,分為兩個過程: 預解析過程和代碼執行過程 預解析過程: 1. 把變量的聲明提升到當前作用域的最前面,只會提升聲明,不會提升賦值。 2. 把函數的聲明提升到當前作用域的最前面,只會提升聲明,不會提升調用。 3. 在提升的變量和函數中,如果名稱有沖突,則函數覆蓋變量,後者覆蓋前者

函數基礎