JavaScript中的函數(shù)(二)
函數(shù)是由事件驅(qū)動(dòng)的或者當(dāng)它被調(diào)用時(shí)執(zhí)行的可重復(fù)使用的代碼塊。
JavaScript 函數(shù)語(yǔ)法
函數(shù)就是包裹在花括號(hào)中的代碼塊,前面使用了關(guān)鍵詞 function:
function functionname() { 這里是要執(zhí)行的代碼 }
當(dāng)調(diào)用該函數(shù)時(shí),會(huì)執(zhí)行函數(shù)內(nèi)的代碼。
可以在某事件發(fā)生時(shí)直接調(diào)用函數(shù)(比如當(dāng)用戶點(diǎn)擊按鈕時(shí)),并且可由 JavaScript 在任何位置進(jìn)行調(diào)用。
提示:JavaScript 對(duì)大小寫敏感。關(guān)鍵詞 function 必須是小寫的,并且必須以與函數(shù)名稱相同的大小寫來(lái)調(diào)用函數(shù)。
1. 函數(shù)的作用域
作用域是指變量的存在的范圍。javascript中有兩種作用域,一種是全局作用域,變量在整個(gè)程序中一直存在,另一種是函數(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; }
而這個(gè)就是局部變量,函數(shù)體外部無(wú)法讀取。
2. 閉包
閉包就是定義在函數(shù)體內(nèi)部的函數(shù)。
function f() { var c = function (){}; }
上訴代碼中c是定義在函數(shù)體f中的,c就是閉包。
閉包的特點(diǎn)就在于,在函數(shù)體外部可以讀取函數(shù)體內(nèi)部的變量。
function f() { var v = 1; var c = function (){ return v; }; return c; } var o = f(); o(); // 1
上面的代碼顯示,原先在函數(shù)f外部,我們是沒(méi)有辦法讀取內(nèi)部變量v的。但是,借助閉包c(diǎn),可以讀到這個(gè)變量。
閉包不僅可以讀取函數(shù)內(nèi)部變量,還可以使得內(nèi)部變量記住上一次調(diào)用時(shí)的運(yùn)算結(jié)果。
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)用時(shí)的值的基礎(chǔ)上進(jìn)行計(jì)算的。
以上所述是小編給大家介紹的JavaScript中的函數(shù)(二) 的全部敘述,希望大家喜歡。
- 時(shí)間戳轉(zhuǎn)換為時(shí)間 年月日時(shí)間的JS函數(shù)
- javascript使用isNaN()函數(shù)判斷變量是否為數(shù)字
- js中通過(guò)split函數(shù)分割字符串成數(shù)組小例子
- javascript 終止函數(shù)執(zhí)行操作
- PHP json_decode函數(shù)詳細(xì)解析
- js函數(shù)在frame中的相互調(diào)用詳解
- js中函數(shù)調(diào)用的兩種常用方法使用介紹
- javascript實(shí)現(xiàn)的元素拖動(dòng)函數(shù)宿主為瀏覽器
- javascript中聲明函數(shù)的方法及調(diào)用函數(shù)的返回值
相關(guān)文章
JavaScript實(shí)現(xiàn)標(biāo)簽頁(yè)切換效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)標(biāo)簽頁(yè)切換效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10原生js實(shí)現(xiàn)簡(jiǎn)單的Ripple按鈕實(shí)例代碼
本篇文章主要介紹了原生js實(shí)現(xiàn)簡(jiǎn)單的Ripple按鈕實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03JavaScript+CSS實(shí)現(xiàn)仿Mootools豎排彈性動(dòng)畫菜單效果
這篇文章主要介紹了JavaScript+CSS實(shí)現(xiàn)仿Mootools豎排彈性動(dòng)畫菜單效果,可實(shí)現(xiàn)鼠標(biāo)滑過(guò)菜單項(xiàng)呈現(xiàn)彈性移動(dòng)顯示的效果,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10JS實(shí)現(xiàn)單張或多張圖片持續(xù)無(wú)縫滾動(dòng)的示例代碼
這篇文章主要介紹了JS實(shí)現(xiàn)單張或多張圖片持續(xù)無(wú)縫滾動(dòng)效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05JS報(bào)錯(cuò)Uncaught?TypeError:?XXX?is?not?a?function的解決方法
這篇文章主要給大家介紹了關(guān)于JS報(bào)錯(cuò)Uncaught?TypeError:?XXX?is?not?a?function的解決方法,本來(lái)好好的,突然就出現(xiàn)的錯(cuò)誤,不過(guò)這并不是什么難解決的錯(cuò)誤,需要的朋友可以參考下2023-08-08微信小程序記錄用戶移動(dòng)軌跡的實(shí)戰(zhàn)記錄
最近遇到一個(gè)小程序的開發(fā)需求,直接可以通過(guò)小程序就記錄運(yùn)動(dòng)軌跡,所以這篇文章主要給大家介紹了關(guān)于微信小程序記錄用戶移動(dòng)軌跡的相關(guān)資料,需要的朋友可以參考下2021-08-08JS關(guān)閉窗口時(shí)產(chǎn)生的事件及用法示例
這篇文章主要介紹了JS關(guān)閉窗口時(shí)產(chǎn)生的事件及用法,結(jié)合關(guān)閉窗口時(shí)提交評(píng)論的實(shí)例分析了javascript事件觸發(fā)機(jī)制及遮罩層實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-08-08基于JS實(shí)現(xiàn)table導(dǎo)出Excel并保留樣式
這篇文章主要介紹了基于JS實(shí)現(xiàn)table導(dǎo)出Excel并保留樣式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05