JavaScript 匿名函式

admin發表於2018-10-22

JavaScript函式可以分為具名函式與匿名函式。

一.具名函式建立:

具名函式通過函式宣告方式建立,函式宣告必須遵守嚴格的語法規範。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
function func(webName){
  console.log(webName);
}

上面程式碼宣告一個具名函式,函式宣告必須具有如下要素,否則報錯:

(1).起始位置的function關鍵字。

(2).function關鍵字後面用空格分隔(可以一個或者多個),然後跟著函式名稱。

(3).函式名稱後面跟著小括號(),名稱與小括號之間可以有一個或者多個空格。

(4).小括號中可以定義引數,引數與引數之間用逗號分隔。

二.匿名函式的建立:

匿名函式就是沒有名字函式,它的使用方式更為靈活。

可以通過表示式方式建立匿名函式。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
let func=function(webName){
  console.log(webName);
}

等號右側是一個匿名函式表示式,此函式沒有名字。

匿名函式建立之後,將其引用賦值給變數func,那麼就可以利用變數來使用此函式。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let func=function(webName){
  console.log(webName);
}
func("螞蟻部落");

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201810/22/002723mi6xuiztueewcu6u.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

匿名函式必須處於表示式環境中,也就是作為一個運算子的運算數。

不能讓一個匿名函式孤零零的存在,程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
function(webName){
  console.log(webName);
}

上面匿名函式孤零零存在,沒有辦法使用它,並且程式碼也會報錯。

大家知道,運算數會首先對自己求值,並返回此值,所以匿名函式才會有多種多樣的呼叫方式。

簡單舉例如下:

[JavaScript] 純文字檢視 複製程式碼
// !運算子
!function(webName){
  console.log(webName);
}("螞蟻部落")
// +運算子
+function(webName){
  console.log(webName);
}("螞蟻部落")
// 分組運算子
(function(webName){
  console.log(webName);
})("螞蟻部落")

上面三個方式都可以實現匿名函式立即執行效果。

特別說明:箭頭函式全都是匿名函式,具體參閱JavaScript 箭頭函式一章節。

三.具名函式與匿名函式的區別:

當然匿名函式的建立使用方式有多種,比如上面距離的三種自執行方式。

下面僅以最常用的方式作為例子,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
function func(){}
let func = function(){}

函式宣告具有前置效果,但是匿名函式沒有。

因為上面的匿名函式宣告本質就是宣告一個變數,然後賦值一個函式物件。

關於宣告前置可以參閱JavaScript 變數與函式宣告前置一章節。

相關文章