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...