函數聲明: 1.顧名思義,聲明一個函數, 用關鍵字 “function” 來告訴,這是一個函數。 2.任何地方,想用就可以拿過來使用 函數表達式: 表達式, 最先想到的賦值表達式,如 a = b; 1.表達式與聲明的區別之一, 末尾有無 分號(;) 結束。 2.表達式不同於聲明的區別之二: 函數表達 ...
函數聲明:
function add(a, b) { // ... }
1.顧名思義,聲明一個函數, 用關鍵字 “function” 來告訴,這是一個函數。
2.任何地方,想用就可以拿過來使用
函數表達式:
var add = function (){ //... };
表達式, 最先想到的賦值表達式,如 a = b;
1.表達式與聲明的區別之一, 末尾有無 分號(;) 結束。
2.表達式不同於聲明的區別之二: 函數表達式的函數並不是想用就可以調用, 他要等到程式執行到他的時候才可以使用。
在函數表達式中:
賦值運算符往後,分號之前的 叫做 匿名函數。
因為沒有名字,所以要通過表達式給他一個名字,才能調用它。
與匿名函數相似,還有一個叫做 箭頭函數 的,像這樣:
x => x * x
或是這樣:
(x,y) => { if (x > 0) { return x + y; } else { return -x + y; } }
箭頭函數 與 匿名函數的區別在於: 函數中 this 的指向 問題。
箭頭函數: 由上下文決定。
匿名函數: 自身作用域。
詳情:https://www.jb51.net/article/104352.htm
立即執行函數:
在 匿名函數 或者 箭頭函數 後面加 () 立即執行這個函數。
舉例:
var a = function(params) { console.log(params); }('i am param');
程式執行到這一句的時候,控制台就會看到 “i am param” 。