函數是由事件驅動的或是當它被呼叫時執行的可重複使用的程式碼區塊。
JavaScript 函數語法
函數就是包裹在花括號中的程式碼區塊,前面使用了關鍵字 function:
function functionname() { 这里是要执行的代码 }
當呼叫函數時,會執行函數內的程式碼。
可以在某事件發生時直接呼叫函數(例如當使用者點擊按鈕時),並且可由 JavaScript 在任何位置進行呼叫。
提示:JavaScript 對大小寫敏感。關鍵字 function 必須是小寫的,並且必須以與函數名稱相同的大小寫來呼叫函數。
1. 函數的作用域
作用域是指變數的存在的範圍。 javascript中有兩種作用域,一種是全域作用域,變數在整個程式中一直存在,另一種是函數作用域,變數只存在於函數體內部。在函數體外部宣告的變數就是全域變量,它也可以在函數體內部讀取。
var v = 1; function f(){ console.log(v); } f();
上述這就是全域變量,函數體內部也可以使用。
function f(){ var v = 1; }
而這個就是局部變量,函數體外部無法讀取。
2. 閉包
閉包就是定義在函數體內部的函數。
function f() { var c = function (){}; }
上訴代碼中c是定義在函數體f中的,c就是閉包。
閉包的特徵就在於,在函數體外部可以讀取函數體內部的變數。
function f() { var v = 1; var c = function (){ return v; }; return c; } var o = f(); o(); // 1
上面的程式碼顯示,原先在函數f外部,我們是沒有辦法讀取內部變數v的。但是,借助閉包c,可以讀到這個變數。
閉包不僅可以讀取函數內部變量,還可以使得內部變數記住上一次呼叫時的運算結果。
function f(b) { return function () { return b++; } } var b= f(5); b() // 5 b() // 6 b() // 7
函數內部的b變量,每一次呼叫都是在上一次呼叫時的值的基礎上進行計算的。
以上所述是小編給大家介紹的JavaScript中的函數(二) 的全部敘述,希望大家喜歡。