標籤:pre 全域 調用 s函數 表達 傳回值 png 變數聲明 大寫
js函數應用 【函數的聲明及調用】:1.函式宣告: function 函數名(參數1,參數2,·····){ //函數體 return 結果; >>函數調用的格式: 函數名(參數1的值,參數2的值,·····) 事件調用 }2.函式宣告的幾點強調:①.函數名的聲明,必須符合駝峰法則(首字母小寫,之後的每個單字首大寫);②.參數列表,可以有參可以無參,分別為有參函數,無參函數;③.聲明函數時的參數列表叫形參列表(變數的名);調用函數是的參數列表叫實參列表(變數的值); 函數中實際有效參數取決於實參的賦值,未被賦值的形參,將為undefined;④函數如果需要傳回值,可用return返回結果; 調用函數時,使用var 變數名=函數名();的方式,接受返回結果; 如果函數沒有傳回值,則接受的結果為undefined;⑤函數的範圍: 在函數中,使用var生命的變數,預設為函數的局部變數,只在函數中起作用; 不用var聲明的,則為全域變數; 函數中的全域變數,必須在函數調用後才能使用; 函數的形參列表,為函數的局部變數,只在函數內部使用;⑥函式宣告與函數調用沒有先後關係,調用語句可以寫在聲明之前。 【匿名函數的聲明及調用】 1.聲明一個匿名函數,直接賦給某個事件; window.onload=function(){} 2.使用函數運算式,聲明匿名函數; 聲明函數運算式:var func3=function(){} 調用函數運算式:func3(); >>使用匿名函數運算式,則調用語句,必須在聲明語句之後,否則報錯(對比常規函式宣告與調用區別)
3.使用自執行函式宣告(重要): !function(參數1){}(參數1的值);//使用任意運算子開頭,一般使用! (function(){}());//使用()將匿名函數級之後的括弧包裹; (function(){})();//使用()只包裹匿名函數運算式; 三種寫法的特點: 1.開頭加!,結尾加();不容易亂,推薦使用; 2.可以表明匿名函數與之後的()為一個整體,推薦使用; 3.無法表明函數與之後的()為一個整體,不推薦使用;
【Arguments對象】 1.作用:用於儲存調用函數時,所賦值的實參列表。 >>當我們調用函數,並使用實參賦值時,實際上參數已經儲存到arguments數組中,即使沒有形參也可以使用arguments[n]的形式調用參數。 2.arguments數組的個數取決於實參,與形參無關,當第n個位置的形參,實參,arguments都存在時,形參與arguements是同步的(即在函數中修改其中一個值,另一個會同步變化)。 3.arguments.callee是argument的重要屬性,用於返回arguements所在函數的引用; arguement.callee()可以調用自身函數執行; 在函數內部調用函數自身的寫法,被稱為遞迴,所以arguments.callee()是遞迴調用時常用的方式。 【js中代碼執行順序】 js中代碼運行,會先進行檢查,裝載,及聲明變數,函數等操作; 然後再進行執行階段(變數的賦值屬於執行階段); 函數的聲明屬於檢查裝載階段,函數的調用屬於執行階段,函式宣告與函數調用沒有先後關係, 調用語句可以寫在聲明之前。舉例說明: console.log(num); var num=10; funN(); function funcN(){} 所以,上述代碼,執行流程: -----檢查裝載階段----- var num; //變數聲明 function funcN() //聲明函數 -----執行階段----- console.log(num); num=10; funN(); //執行函數中{}部分
js函數的使用