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ù)名稱相同的大小寫來調(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ù)體外部無法讀取。
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外部,我們是沒有辦法讀取內(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中通過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)類似Express的中間件系統(tǒng)(實(shí)例詳解)
在 Express 中可以給一個(gè)請(qǐng)求設(shè)置若干個(gè)中間件,在處理響應(yīng)時(shí)會(huì)按順序執(zhí)行這些中間件,正在執(zhí)行的中間件可以控制是否執(zhí)行下一個(gè)中間件,這篇文章主要介紹了JavaScript 實(shí)現(xiàn)類似Express的中間件系統(tǒng)的相關(guān)資料,需要的朋友可以參考下2023-02-02
詳解javascript 正則表達(dá)式之分組與前瞻匹配
本文主要講解javascript 的正則表達(dá)式中的分組匹配與前瞻匹配的,需要對(duì)正則的有基本認(rèn)識(shí),本人一直對(duì)兩種匹配模棱不清,還有不清楚的朋友跟隨腳本之家小編一起看看吧2018-05-05
JavaScript中實(shí)現(xiàn)單體模式分享
這篇文章主要介紹了JavaScript中實(shí)現(xiàn)單體模式分享,單體模式的定義:?jiǎn)误w是一個(gè)用來劃分命名空間并將一批相關(guān)方法和屬性組織在一起的對(duì)象,如果它能夠被實(shí)例化,那么只能被實(shí)例化一次,需要的朋友可以參考下2015-01-01
JS簡(jiǎn)單獲取客戶端IP地址的方法【調(diào)用搜狐接口】
這篇文章主要介紹了JS簡(jiǎn)單獲取客戶端IP地址的方法,通過調(diào)用搜狐接口來簡(jiǎn)單實(shí)現(xiàn)獲取訪客IP地址的功能,非常簡(jiǎn)便實(shí)用,需要的朋友可以參考下2016-09-09
JavaScript使用Math.random()生成簡(jiǎn)單的驗(yàn)證碼
今天小編就為大家分享一篇關(guān)于JavaScript使用Math.random()生成簡(jiǎn)單的驗(yàn)證碼,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-01-01
小程序頁(yè)面之間數(shù)據(jù)傳遞的4種方法總結(jié)
由于經(jīng)常需要進(jìn)行頁(yè)面間傳參且各種傳參的業(yè)務(wù)場(chǎng)景也不相同,根據(jù)官方文檔和日常工作進(jìn)行了總結(jié),下面這篇文章主要給大家總結(jié)介紹了關(guān)于小程序頁(yè)面之間數(shù)據(jù)傳遞的4種方法,需要的朋友可以參考下2023-04-04

