1. 程式人生 > >進擊的JavaScript小白(四)——函式

進擊的JavaScript小白(四)——函式

從初中開始,函式就已經出現了,好不容易畢業了,還被函式卡著脖子,這感覺真是。。。。

一、函式的作用

讓程式碼可以複用,提高程式碼的利用率

二、函式的宣告方式

1、函式的宣告語句

function fun () {
//函式主題程式碼
}

2、函式的表示式

var fun = function () {
//函式體
}

三、函式的呼叫

函式程式碼執行需要使用函式呼叫操作

fun();//函式名為fun

四、函式的引數

1、當一個函式內的某些值不確定時可以設定引數
2、形參:書寫在函式體的小括號中,用於佔位置,多個引數使用逗號分隔
3、實參:書寫在函式呼叫的小括號中,當函式呼叫後,會將實參值賦給對應的形參

五、函式的返回值

1、原因:在函式外面無法操作函式內宣告的變數,得不到函式計算的結果
2、方式:在函式中設定return值,並通過函式呼叫進行接收
3、return :return具備結束函式的功能,即跳出函式;也可以單獨使用,即不設定返回值,僅僅進行跳出函式操作;預設值為undefined

六、作用域

1、作用域表示起作用的範圍
2、全域性作用域:不在任何函式內。宣告在全域性作用域中的變數為全域性變數,在任意位置均可訪問。隱式宣告全域性變數:任意位置不加var的變數賦值操作
3、區域性作用域:可以在任何函式內。宣告在區域性作用域中的變數為區域性變數,只能在宣告這個變數的作用域內部訪問。
4、作用域的訪問規則
在這裡插入圖片描述

七、預解析

1、每個作用域程式碼執行前都會執行與解析操作,這是js自動完成的
2、查詢當前作用域中的var變數宣告,將宣告提升到當前作用域頂端,賦值保留在原位置
3、查詢當前作用域中的函式宣告語句,將函式體整體提升到當前作用域頂端,呼叫保留在原位置
4、由於函式宣告語句是整體提升,所以在書寫位置前後呼叫均可執行
5、函式表示式只能在書寫位置之後進行呼叫

八、函式的分類

1、基本函式

function fun () {}
var fun1 = function () {};

2、匿名函式

匿名函式沒有函式名,所以不能單獨使用

var fun = function () {};

3、立即執行函式(自呼叫函式)

1、效果:在書寫位置執行一次
2、作用:進行作用域的包裹,減少全域性變數的使用
3、使用位置:在每個功能外,使用立即執行函式包裹即可
4、注意點:立即執行函式後必須新增分號;

		(function () {
			var sum = 0;
			for (var i = 1; i <= 100; i++) {
				sum += i;
			}
			console.log('這是一個立即執行函式。');
		})();

4、回撥函式(將函式作為引數使用)

1、將函式作為引數使用,需要傳入的是函式體,所以一定不能在傳參時進行呼叫
2、 使用場景:當一個函式中的某些功能程式碼不確定時,可以使用函式引數(起到對程式碼包裹傳入的作用)。

5、將函式作為返回值

6、遞迴函式

函式內呼叫當前函式

		var count = 0;
		function fun () {
			if (count >= 10) {
				return;
			}
			console.log('這是函式fun的程式碼');
			count++;
			fun();
		}
		fun();

九、arguments的使用

1、用於獲取某個函式本次呼叫時傳入的所有實參
2、具有索引和長度,是偽陣列結構,沒有陣列的方法