1. 程式人生 > >JavaScript踩坑筆記02---函式、函式提升

JavaScript踩坑筆記02---函式、函式提升

函式:

函式的作用就是幫助我們執行程式碼,程式通過函式的呼叫,來執行程式碼。
JavaScript中,函式通過關鍵字function宣告。
函式宣告有兩種方式,一種是函式本身的宣告方式,還有一種是函式作為字面量的宣告方式。
舉例說明。

// 1.函式式宣告
function sum1(n1, n2) {
	// n1,n2為函式的引數
	// return為函式的返回值
	// 引數和返回值可有可無,根據你的需求來定
	return n1 + n2;
}
// 2.函式表示式,又叫函式字面量
var sum2 = function (n1, n2) {
	return n1 + n2;
};
console.
log(sum1(1, 2)); // 3 console.log(sum2(1, 2)); // 3

二者都函式的宣告方式,都可以被正常的呼叫,但是二者還是有一些區別的。
函式表示式定義的函式會被當做一個變數,而變數是可以作為引數傳遞的,也就是說函式也可以作為引數傳遞

函式提升:

還有一個不同,我們舉例說明。

// 在定義函式fn1前,呼叫函式fn1
fn1(); // 函式式宣告
function fn1() {
	console.log("函式式宣告");
}
// 在定義函式fn2前,呼叫函式fn2
fn2(); // TypeError: fn2 is not a function
var
fn2 = function () { console.log("函式表示式宣告"); };

以上例子可以說明,函式式宣告的函式會在程式載入的時候就被JavaScript解析器解析,並且提升到程式碼頂端,所以可以在宣告之前呼叫,這就是函式提升。
而函式表示式宣告會被當做一個變數,只有當使用到這個變數時,才會被javaScript解析器解析,在解析器沒有解析這個函式之前呼叫它,就會報錯。


個人學習總結,歡迎批評指正