【函式的宣告格式】
1.函式的宣告格式:
function 函式名(引數1,引數2,...)
函式的呼叫:
① 直接呼叫:函式名(引數1的值,引數2的值,....);
② 時間呼叫方式:直接在html標籤中,使用事件名="函式名()"
點選按鈕,列印內容
2.函式的注意事項:
① 函式名必須符合小駝峰法則,(首字母小寫,之後每個單詞首字母大寫)
② 函式名後面的()中,可以有引數,也可以沒有引數,分別稱為 有參函式 和 無參函式;
③ 宣告函式時的引數列表,稱為形參列表,形式引數。(變數的名字)
function saysth(str,color){}
呼叫函式是的引數列表,稱為實參列表,實際引數。(變數的賦值)
saysth("hello!!!","red");
④ 函式的形參列表個數,與實參列表個數,沒有實際關聯關係。
函式引數的個數,取決於實參列表。
如果實參列表的個數《形參列表,則為賦值的形參,將為undefind。
⑤ 函式可以有返回值,使用return返回結果。
呼叫函式時,可以使用乙個變數接受函式的返回結果。如果函式沒有返回值,則接受的結果為undefined;
function fun()
var num = func(); num="哈哈"
⑥ 函式中變數的作用域:
在函式中,使用var宣告的變數,為區域性變數,只能在函式內部訪問;
不用var宣告的變數,為全部變數,在函式外面也能訪問;
函式的形參列表,預設為函式的舉區域性變數,只能在函式內部使用。
⑦ 函式的宣告與函式的呼叫,沒有先後之分。即,可以在宣告函式前,呼叫函式。
fun(); //宣告之前呼叫可以。
function fun(){}
【匿名函式的宣告使用】
1.宣告乙個匿名函式,直接賦值給某乙個事件。
window.onload= function(){}
2.使用匿名函式表示式。將匿名函式,賦值給乙個變數。
宣告:var func=function (){}
呼叫:func();
注意:使用匿名函式表示式時,函式的呼叫,必須放在函式宣告語句之後!!!
(與普通函式的區別)
3.自執函式:
① !function(){}(); 可以使用多種與運算子開頭,一般用!
!function(形參列表){}(實參列表);
② (function(){}()); 使用()將函式集函式後的括號包裹。
③ (function(){})(); 使用()值包裹函式部分;
三種寫法的特點:
① 使用!開頭結構清晰,不容易混亂,推薦使用;
② 能夠表明匿名函式與呼叫的()為乙個整體,官方推薦使用;
③ 無法表示函式與之後剖的()的整體性,不推薦使用;
【函式的內部屬性】
1.arguments物件
① 作用:用於儲存呼叫函式時的所有實參。
當我們呼叫函式,並用實參賦值時,實際上 到arguments陣列中, 可以在函式中,使用arguments[n]的形式呼叫。n從0開始。
② arguments陣列的個數,取決於實參列表,與形參無關。
但是,一旦第n個位置的形參、實參、arguments都存在時,形參將於arguments繫結,同步變化。
(即在函式中修改形參的值,arguments也會改變。反之,亦成立。)
③ arguments.callee 是arguments的重要標誌。表示arguments所在函式的引用位址;
在函式裡面,可以使用arguments.callee()呼叫函式本身。
遞迴
在函式內部,呼叫函式自身的寫法,叫做遞迴。
遞迴分為兩部分: 遞 和 歸。 以遞迴呼叫語句為界限,可以將函式分為上下兩部分。
遞:當函式執行上半部,遇到自身的語句時,繼續進入內層函式,在執行上半部分。直到執行哇按最內層函式。
歸:當內層函式執行以後面,在從最內層函式開始,逐漸執行函式的下半部分。
當最外層函式執行時,遇到自身呼叫語句,會進入內層函式執行,而外層函式的後半部分暫不執行。
直到內層函式執行完以後,在逐步向外執行。
【js**的執行順序問題】
js**在執行時,會分為兩大部分:檢查裝載和執行階段
檢查裝載階段:會先檢測**的語法錯誤,進行變數、函式的宣告。
執行階段:變數得瑟賦值、函式的呼叫等,都屬於執行階段。
以一下**為例:
console.log(num); undefine
var num=10;
func1(); 函式可以正常執行
function func1(){}
func2(); 函式不能執行,列印func2,顯示undefine
var func2= function(){}
-----------檢查裝載階段----------
var num;
var func1 = function(){};
var func2;
----------------------------------------
-----------**執行階段----------
console.log(num);
var num = 10;
func1 ();
func2 ();
func2 = function(){}
----------------------------------------
console.log(num); undefine
var num=10;
func1(); 函式可以正常執行
function func1(){}
func2(); 函式不能執行,列印func2,顯示undefine
var func2= function(){}
js學習 函式
函式宣告 function funname parameter 函式表示式,並把函式儲存在變數x中 不用給函式名,後續並不能直接用給定的函式名呼叫 var x function a x 返回的是乙個函式物件 x 呼叫函式 用函式建構函式定義乙個函式 引數,表示式 var myfunc new fun...
學習js函式 函式定義
函式的定義方法有三種 1.函式表示式 2.函式宣告 3,new function建構函式 這邊主要看下函式表示式和函式宣告 函式表示式 未省略標誌的 var alertname function namealert name alertname 博主 函式表示式 省略標誌的 var alertnam...
JS學習小結 三
怎麼建立正規表示式物件,怎麼呼叫正規表示式物件的方法?第一種建立方式 var regexp 正規表示式 flags 第二種建立方式 var regexp new regexp 正規表示式 flags 關於flags g 全域性匹配 i 忽略大小寫 m 多行搜尋 es規範制定之後才支援m 當前面是正規...