溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript匿名函數(shù)知識點有哪些

發(fā)布時間:2022-04-07 13:33:27 來源:億速云 閱讀:178 作者:iii 欄目:web開發(fā)

這篇文章主要介紹了JavaScript匿名函數(shù)知識點有哪些的相關知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇JavaScript匿名函數(shù)知識點有哪些文章都會有所收獲,下面我們一起來看看吧。

JavaScript匿名函數(shù)知識點有哪些

一、變量的作用域

思考:聲明變量后就可以在任意位置使用該變量嘛?

回答:不是。

舉例:函數(shù)內(nèi)var關鍵字聲明的變量,不能在函數(shù)外訪問。

JavaScript匿名函數(shù)知識點有哪些

總結(jié):變量的使用是有作用域范圍的。

作用域劃分:全局作用域、函數(shù)作用域和塊級作用域(ES6提供的)。

不同作用域?qū)淖兞浚喝肿兞?、局部變量、塊級變量(ES6提供的)。

JavaScript匿名函數(shù)知識點有哪些

全局變量:不在任何函數(shù)內(nèi)聲明的變量(顯示定義)或在函數(shù)內(nèi)省略var聲明變量(隱式定義)都稱為全局變量。

作用范圍:它在同一個頁面文件中的所有腳本內(nèi)都可以使用。
JavaScript匿名函數(shù)知識點有哪些

局部變量:在函數(shù)體內(nèi)利用var關鍵字定義的變量稱為局部變量,它僅在該函數(shù)體內(nèi)有效。
JavaScript匿名函數(shù)知識點有哪些

塊級變量:ES6提供的let關鍵字聲明的變量稱為塊級變量,僅在“{}”中間有效,如if、for或while語句等。

垃圾回收機制

在JavaScript中,局部變量只有在函數(shù)的執(zhí)行過程中存在,而在這個過程中會為局部變量在(棧或堆)內(nèi)存上分配相應的空間,以存儲它們的值,然后在函數(shù)中使用這些變量,直到函數(shù)結(jié)束。而一旦函數(shù)執(zhí)行結(jié)束,局部變量就沒有存在必要了,此時JavaScript就會通過垃圾回收機制自動釋放它們所占用的內(nèi)存空間。

在開發(fā)中若要保留局部變量的值,可以通過以下兩種方式實現(xiàn):

JavaScript匿名函數(shù)知識點有哪些

二、匿名函數(shù)

概念:所謂函數(shù)表達式指的是將聲明的函數(shù)賦值給一個變量,通過變量完成函數(shù)的調(diào)用和參數(shù)的傳遞,它也是JavaScript中另一種實現(xiàn)自定義函數(shù)的方式。

函數(shù)表達式

JavaScript匿名函數(shù)知識點有哪些

匿名函數(shù)

概念:匿名函數(shù)指的是沒有函數(shù)名稱的函數(shù)。

作用:可以有效的避免全局變量的污染以及函數(shù)名的沖突問題。

說明:既是函數(shù)表達式的另一種表示形式,又可通過函數(shù)聲明的方式實現(xiàn)調(diào)用。

JavaScript匿名函數(shù)知識點有哪些

箭頭函數(shù)

概念: ES6中引入了一種新的語法編寫匿名函數(shù),我們稱之為箭頭函數(shù)。

特點:一個箭頭函數(shù)表達式的語法比一個函數(shù)表達式更短。

JavaScript匿名函數(shù)知識點有哪些

JavaScript匿名函數(shù)知識點有哪些

三、嵌套與遞歸

函數(shù)嵌套與作用域鏈

什么是嵌套函數(shù):是在一個函數(shù)內(nèi)部存在另一個函數(shù)的聲明。

特點:內(nèi)層函數(shù)只能在外層函數(shù)作用域內(nèi)執(zhí)行,在內(nèi)層函數(shù)執(zhí)行的過程中,若需要引入某個變量,首先會在當前作用域中尋找,若未找到,則繼續(xù)向上一層級的作用域中尋找,直到全局作用域,我們稱這種鏈式的查詢關系為作用域鏈。

JavaScript匿名函數(shù)知識點有哪些

遞歸調(diào)用

概念:遞歸調(diào)用是函數(shù)嵌套調(diào)用中一種特殊的調(diào)用。它指的是一個函數(shù)在其函數(shù)體內(nèi)調(diào)用自身的過程,這種函數(shù)稱為遞歸函數(shù)。

下面以計算階乘為例進行演示。

JavaScript匿名函數(shù)知識點有哪些

注意

遞歸調(diào)用雖然在遍歷維數(shù)不固定的多維數(shù)組時非常合適,但它占用的內(nèi)存和資源比較多,同時難以實現(xiàn)和維護,因此在開發(fā)中要慎重使用函數(shù)的遞歸調(diào)用。

案例

求斐波那契數(shù)列第N項的值

了解什么是斐波那契數(shù)列

斐波那契數(shù)列又稱黃金分割數(shù)列,如 “1, 1, 2, 3, 5, 8, 13, 21……”。

找規(guī)律: 這個數(shù)列從第3項開始,每一項都等于前兩項之和。

代碼實現(xiàn)思路

  • 小于0,給出錯誤提示信息。

  • 等于0,返回0。

  • 等于1,返回1。

  • 大于1,按找到的規(guī)律并利用函數(shù)遞歸調(diào)用實現(xiàn)。

關于“JavaScript匿名函數(shù)知識點有哪些”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“JavaScript匿名函數(shù)知識點有哪些”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI