函式宣告與表示式 匿名函式與具名函式 立即執行函式

2022-07-27 10:06:14 字數 1490 閱讀 4917

定義函式的三種方式:

一、函式宣告

函式宣告是以關鍵字開頭的,它有乙個明顯的特徵:

函式宣告的提公升

,js在解析**時將函式宣告提公升到當前作用域的頂部,所以把函式宣告放在呼叫他的語句後面

foo("

hello

"); //

輸出 hello

function foo(name)

函式宣告與表示式的區分

就是看關鍵字function在宣告中的位置,他的位置是整個函式中的位置,如果function是宣告中的第乙個位置,那就是函式宣告,否則就是表示式

1  (function()());//

函式表示式

23 +function test()//

函式表示式

45 (function(),1000);

2.差異

名稱和識別符號的繫結位置

1

var a = 2;2

function foo()

6foo();

7 console.log( a ); //28

9/*---------

*/10

11(function foo())();

15 console.log( a ); //

2

第乙個片段中的foo被繫結在所在作用域中,可以通過foo()來呼叫,第二個片段中foo被繫結在函式表示式自身的的函式中而不是作用域中

也就是說匿名函式作為函式表示式意味著foo只能在它所代表的位置訪問,也就是指區域性作用域,優點就是不會被全域性汙染

二、匿名與具名函式

1     setinterval(function(),1000);4

589var funa = function()

1213

var funb =function test()

三、立即執行函式

1

var express=function () (); //

執行,發現函式直接執行,結果輸出了"hello word!"67

89function () (); //

報錯 uncaught syntaxerror: unexpected token )

1415

//因為以function開頭,認為是函式宣告,結果沒有函式名,就報錯了

1617

1819

function foo() (); //

報錯 uncaught syntaxerror: unexpected token )

在函式表示式後面緊跟一小括號(),函式就會立即執行,兩大要點:表示式、括號()

(function 函式名稱(可寫可不寫) (引數)  ());

立即執行函式只要知道只有表示式才能執行,函式表示式也會被執行,其他除外

函式宣告與表示式

1.函式的呼叫方式 2.函式的建立有兩種常用的方式 函式宣告和函式表示式,還有一種不常見的叫函式構造器 2.1.函式宣告 2.2.函式表示式 有以下幾種定義方式。最後一種叫命名函式表示式,不常用,遞迴時可能用到。函式宣告和函式表示式最大的區別是函式宣告會被前置。左側的函式宣告可以執行,右側的函式表示...

函式宣告與函式表示式

對函式宣告和表示式加以區別 在解析器向執行環境中載入資料時,對函式宣告和函式表示式並非一視同仁。解析器會先率先讀取函式宣告,並使其在執行任何 之前可以呼叫 至於函式表示式,則必須等到解析器執行到它所在的 行,才會真正被解釋執行。函式宣告 alert hello 返加值 hello function ...

函式宣告與函式表示式

1 function sum num1,num2 1 function sum num1,num2 解析器在向執行環境中載入資料時,會率先讀取函式宣告,並使其在執行任何 前可用 可以訪問 而函式表示式,必須等到解析器執行到他所在的 行,才會被真正解析執行。其它情況都是相同的。1 正常執行 2 ale...