JS的三種函式宣告

2021-08-03 19:40:31 字數 1063 閱讀 2301

js有3種方法進行函式宣告。

1、function語句型別函式宣告

function test1(){}

函式的呼叫方式:test1();

2、函式的直接量形式

var test2 = function(){}

函式的呼叫方式:test2();

3、建構函式式

var test3 = new function("a","b","return a+b;");

函式的呼叫方式:test3(10,20);

3種函式宣告方式比較:

首先從性質上來說明:第一種和第二種都屬於靜態,第三種屬於動態

其次從解析順序上說明:第一種優先解析,第二種和第三種都屬於順序解析,為了更好的說明,做如下的測試。

//探測三種函式宣告的解析順序 

function f() 

alert(f()); 

var f = new function("return 2;"); 

alert(f()); 

var f = function() 

alert(f()); 

function f() //標記1

alert(f());  //標記2

var f = new function("return 5;"); 

alert(f()); 

var f = function() 

alert(f());

也許你會認為執行以上函式之後,輸出的結果為1,2,3,4,5,6,事實上,結果的執行順序為4,2,3,3,5,6,怎麼樣,很吃驚吧,讓我來給閣下解釋一下。

function語句型別函式宣告優先解析,當頁面載入之後,js解析器會首先解析該函式,語句型f函式共兩個,首先return 1,而後再解析另乙個語句型函式f,由於js中沒有過載,所以第二個f函式會覆蓋第乙個return 4,因此,在alert的時候先輸出4,其他的函式都是順序執行,故順序輸出,2,3,當函式執行到標記1的時候,發現頁面載入時該函式已解析,故不再解析,所以執行標記2的時候,f函式依然是上一次解析的f函式,故輸出3,接著再順序執行,因此最後的輸出結果為:4,2,3,3,5,6.

js的三種函式宣告

方式一 function a e,f,h 方式二 var b function 方式三 var c new function a b c alert 我是方法c.a b c 函式的呼叫 1 按照引數列表的順序賦值如 a 1,2,3 2 var testb function 這樣的方式也是可以呼叫函式...

js裡的三種宣告(常量)

一 分類 1.const 2.var 3.let 二 const 1.官方定義 常量時塊級範圍,非常類似用let語句定義的變數,但常量的值是無法 通過重新賦值 改變的,也不能被重新宣告。2.簡單理解 const定義的變數不可以修改,而且必須初始化 3.理解 4.該常量可以定義成物件和陣列 三 var...

函式指標的三種宣告方式

define crt secure no warnings include using namespace std int func int a,int b int func int a,int b,int c 方式1 宣告一種函式型別 typedef int my func int,int 方式2...