JavaScript中的函數(shù)(二)
函數(shù)是由事件驅(qū)動的或者當它被調(diào)用時執(zhí)行的可重復使用的代碼塊。
JavaScript 函數(shù)語法
函數(shù)就是包裹在花括號中的代碼塊,前面使用了關鍵詞 function:
function functionname()
{
這里是要執(zhí)行的代碼
}
當調(diào)用該函數(shù)時,會執(zhí)行函數(shù)內(nèi)的代碼。
可以在某事件發(fā)生時直接調(diào)用函數(shù)(比如當用戶點擊按鈕時),并且可由 JavaScript 在任何位置進行調(diào)用。
提示:JavaScript 對大小寫敏感。關鍵詞 function 必須是小寫的,并且必須以與函數(shù)名稱相同的大小寫來調(diào)用函數(shù)。
1. 函數(shù)的作用域
作用域是指變量的存在的范圍。javascript中有兩種作用域,一種是全局作用域,變量在整個程序中一直存在,另一種是函數(shù)作用域,變量只存在于函數(shù)體內(nèi)部。在函數(shù)體外部聲明的變量就是全局變量,它也可以在函數(shù)體內(nèi)部讀取。
var v = 1;
function f(){
console.log(v);
}
f();
上述這就是全局變量,函數(shù)體內(nèi)部也可以使用。
function f(){
var v = 1;
}
而這個就是局部變量,函數(shù)體外部無法讀取。
2. 閉包
閉包就是定義在函數(shù)體內(nèi)部的函數(shù)。
function f() {
var c = function (){};
}
上訴代碼中c是定義在函數(shù)體f中的,c就是閉包。
閉包的特點就在于,在函數(shù)體外部可以讀取函數(shù)體內(nèi)部的變量。
function f() {
var v = 1;
var c = function (){
return v;
};
return c;
}
var o = f();
o();
// 1
上面的代碼顯示,原先在函數(shù)f外部,我們是沒有辦法讀取內(nèi)部變量v的。但是,借助閉包c,可以讀到這個變量。
閉包不僅可以讀取函數(shù)內(nèi)部變量,還可以使得內(nèi)部變量記住上一次調(diào)用時的運算結果。
function f(b) {
return function () {
return b++;
}
}
var b= f(5);
b() // 5
b() // 6
b() // 7
函數(shù)內(nèi)部的b變量,每一次調(diào)用都是在上一次調(diào)用時的值的基礎上進行計算的。
以上所述是小編給大家介紹的JavaScript中的函數(shù)(二) 的全部敘述,希望大家喜歡。
相關文章
JavaScript 實現(xiàn)類似Express的中間件系統(tǒng)(實例詳解)
在 Express 中可以給一個請求設置若干個中間件,在處理響應時會按順序執(zhí)行這些中間件,正在執(zhí)行的中間件可以控制是否執(zhí)行下一個中間件,這篇文章主要介紹了JavaScript 實現(xiàn)類似Express的中間件系統(tǒng)的相關資料,需要的朋友可以參考下2023-02-02
JS簡單獲取客戶端IP地址的方法【調(diào)用搜狐接口】
這篇文章主要介紹了JS簡單獲取客戶端IP地址的方法,通過調(diào)用搜狐接口來簡單實現(xiàn)獲取訪客IP地址的功能,非常簡便實用,需要的朋友可以參考下2016-09-09
JavaScript使用Math.random()生成簡單的驗證碼
今天小編就為大家分享一篇關于JavaScript使用Math.random()生成簡單的驗證碼,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-01-01

