關(guān)于 JS-函數(shù)

1. 函數(shù)聲明和函數(shù)表達(dá)式有什么區(qū)別

  • 函數(shù)聲明就是定義一個函數(shù),如以下例子

function text(){ //函數(shù)聲明 console.log(1); }

  • 函數(shù)表達(dá)式就是讓變量等于一個函數(shù),也具有聲明函數(shù)的作用(因此后面要加分號),如

var a =function text() { console.log(1); };

  • 區(qū)別在于:雖然兩者都有聲明函數(shù)的作用,但是函數(shù)聲明能使整個函數(shù)提升(就是能在全局任何時候調(diào)用函數(shù)),但是函數(shù)表達(dá)式只讓變量提前,只起到變量提升的作用,必須等到解析器執(zhí)行到他所在的代碼才會被真正執(zhí)行(就是倘若在表達(dá)式之前調(diào)用函數(shù),會發(fā)生錯誤,只能在表達(dá)式之后調(diào)用函數(shù))
函數(shù)表達(dá)式前調(diào)用函數(shù).png
函數(shù)表達(dá)式后調(diào)用函數(shù).png

2.什么是變量的聲明前置?什么是函數(shù)的聲明前置

  • 變量的聲明前置就是把變量(var a不是var a =3//a=3并沒有提升)提升到前面(最前面)
  • 函數(shù)的聲明前置把函數(shù)提升到前面(函數(shù)表達(dá)式并不可以)

3.arguments 是什么

在函數(shù)內(nèi)部,你可以使用arguments對象獲取到該函數(shù)的所有傳入?yún)?shù),能展示數(shù)組的實參是什么(形參不可以)

arguments實現(xiàn).png

參考:JavaScript arguments對象

4.函數(shù)的重載怎樣實現(xiàn)?

JavaScript并沒有重載的功能,因此可以通過arguments實現(xiàn)

arguments重載.png

5.立即執(zhí)行函數(shù)表達(dá)式是什么?有什么作用?

  • 立即執(zhí)行函數(shù)表達(dá)式(Immediately-Invoked Function Expression),是將函數(shù)定義放在一個圓括號里,讓JavaScript引擎將其理解為一個表達(dá)式,再在函數(shù)的定義后面加一個(),以達(dá)到定義函數(shù)后立即調(diào)用該函數(shù)的效果。
  • (function fn(){}())
  • 作用就是立即執(zhí)行函數(shù)表達(dá)式并不會改變?nèi)肿兞?**通常是用來立刻調(diào)用
    ![Uploading 作用域鏈展示_922803.png . . .]
    函數(shù)得出結(jié)果)
    • 定義的變量只是局部變量
  • 可以將獨立的功能封裝在自包含模塊中。

6..什么是函數(shù)的作用域鏈

  • 作用域:作用域就是變量與函數(shù)的可訪問范圍,即作用域控制著變量與函數(shù)的可見性和生命周期。在JavaScript中,變量的作用域有全局作用域和局部作用域兩種。

例子如下:

作用域鏈展示.png

JavaScript 開發(fā)進階:理解 JavaScript 作用域和作用域鏈


代碼

1


task-1.png
task-2.png
task-3.png
task-4.png
task-5.png
task-6.png
task-7.png
task-8.png
task-9.png
task10.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 函數(shù)聲明和函數(shù)表達(dá)式有什么區(qū)別 函數(shù)聲明 函數(shù)表達(dá)式 函數(shù)表達(dá)式將一個函數(shù)聲明賦值給一個變量。兩者有一個明顯的區(qū)別...
    尹薩薩閱讀 300評論 0 0
  • 之前學(xué)習(xí)JS的變量聲明前置和函數(shù)聲明的相關(guān)內(nèi)容時,忘記討論一個互相影響的問題了,這里特地補充一下。 即JavaSc...
    DHFE閱讀 1,575評論 0 2
  • 1. 函數(shù)聲明和函數(shù)表達(dá)式有什么區(qū)別 (*) 函數(shù)在JS中有三種方式來定義:函數(shù)聲明(function decla...
    進擊的阿群閱讀 483評論 0 1
  • 函數(shù)是一段可以反復(fù)調(diào)用的代碼塊。函數(shù)還能接受輸入的參數(shù),不同的參數(shù)會返回不同的值。 概述 函數(shù)的聲明 JavaSc...
    oWSQo閱讀 1,472評論 0 4
  • 參考文章:函數(shù) 1.概述 1.1函數(shù)的聲明 JavaScript 有三種聲明函數(shù)的方法。 (1)function ...
    chrisghb閱讀 1,374評論 0 0

友情鏈接更多精彩內(nèi)容