首頁  >  文章  >  後端開發  >  進一步了解js函數

進一步了解js函數

小云云
小云云原創
2018-03-19 15:47:081352瀏覽


本文主要跟大家分享進一步了解js函數,希望能幫助大家更好運用js函數。
一、自訂函數

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日到限制所經歷的毫秒數;

       

11.string

#       將物件的值轉換成字串;與toString一樣;

相關推薦:

##js函數與變數的提升及閉包講解

深入分析JS函數### #########js函數相關知識點總結分享#######

以上是進一步了解js函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn