1.透過function關鍵字
# function 函數名稱([參數]){
#程式碼段;
return 回傳值;
##} 注意:函數名稱不要包含特殊字元; 函數名稱最好明確含義; 函數名稱最好遵循駝峰標記法或底線法; 函數名稱嚴格區分大小寫;## # 函數可以有參數也可以沒有參數;
函數通過return返回值,如果沒有return默認返回undefined;
函數不調用不執行;
2.匿名函數
函數表達式可以儲存在變數中,變數也可以當作一個函數;
# 可以將匿名函數作為參數傳遞給其他函數,接收方函數就可以透過所傳遞進來的函數完成某些功能;
## 可以透過匿名函數來執行某些一次性的任務;3.透過Function()建構子
二、呼叫函數1.作為一個函數呼叫
在HTML中預設的全域物件是html頁面本身,所以函數是屬於html頁面,在瀏覽器中的頁面物件是瀏覽視窗(window )。所以函數會自動變成window物件的函數,也可以透過window.函數()來呼叫;
2.全域物件當函數沒有被自身的物件呼叫時,this的值就會變成全域對象,在web瀏覽器中全域物件是瀏覽器視窗對window物件;
函數作為全域物件呼叫時,會使this的值變成全域對象,使用window物件作為一個變數容易造成程式崩潰;## 3.函數作為方法呼叫
可以定義函數為物件的方法;4.使用建構函式呼叫函數
若在函數呼叫前使用了new關鍵字,則呼叫了建構子; 5.作為回掉函數呼叫call();
apply(); 三、參數 函數可以有參數,也可以沒有參數,如果可以定義了參數,在函數呼叫時沒有傳值,預設為undefined; 在呼叫函數時如果傳遞參數超過了定義時的參數,js會自動忽略多餘的參數; js中不能直接寫預設值,可以透過argument物件實現預設值效果; 可以透過arguments物件實現可變參數的函數; 透過值傳遞參數在函數體內對變數做修改不會影響變數本身; 透過物件傳遞參數在函數體內對變數對變更會影響變數本身; 四、變數作用域 1.局部變數 在函數體內宣告的變數,僅在函數體內使用; 2.全域變數 函數體外申明的變數,並在變數宣告為聲明開始到腳本結束都可用; 3.注意 盡量控制全域變數的數量、容易引發bug; # 最好總是使用 var語句來申明變數;# 最好總是使用var語句來申明變數;#of ##五、js中的全域函數 1.parseInt(string,radix) 返回轉換為整數的值; 2.parseFloat(sring) 返回轉換成浮點型的值 3.isFinite(value) 偵測某個數值是否為無窮值,若number數是nan或infinity或-infinity的數,則回傳false; 4.isNaN(value) 偵測某個數值是否為NaN,若值為nan,則傳回true,否則傳回false; 5.encodeURL(url)//encodeURIComponent()將字串編碼為url,ASCII標點符號,該函數不會進行轉義,/? :@&+=¥#,可以使用encodeURIComponent()方法分別對特殊意義的ASCII標點符號進行編碼;
6.decodeURI//decodeURIComponent()
# 解碼某個編碼的URI;
7.escape()
對字串進行編碼;
escape()函數可以對字串進行編碼,以便在所有電腦上讀取取該字串;
不會對數字和字母進行編碼,也不會對下面這些標點符號進行編碼,*@-_+./其他所有字元都會被轉義序列取代;
escape()函數不能用於編碼URI
8.unescape()
解碼有escape編碼的函數
# 9.eval()
C.
將js字串當作腳本執行 如果參數是一個表達式,eval()函數會執行表達式,如果參數是js語句,則會執行js語句; # eval()函數是一種由函數執行的動態程式碼,比直接執行腳本慢的多;慎重使用eval()函數,盡量不用,確保程式的安全性;
# 10.Number(obj)卷對象,則傳回從1970年1月1日到限制所經歷的毫秒數; # 將物件的值轉換成字串;與toString一樣;##js函數與變數的提升及閉包講解深入分析JS函數### #########js函數相關知識點總結分享#######以上是進一步了解js函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!