摘要:函數(shù)的作用域也可被分為全局作用域和局部作用域函數(shù)作用域被定義在指定函數(shù)內(nèi)部的函數(shù)被稱(chēng)為局部函數(shù)或內(nèi)部函數(shù)。局部變量在函數(shù)內(nèi)部聲明的變量被成為局部變量,它只能在函數(shù)的內(nèi)部進(jìn)行訪問(wèn)。
作用域 概述
變量和函數(shù)都具有作用域 作用域就是變量和函數(shù)的可被訪問(wèn)的范圍 控制著變量和函數(shù)的可見(jiàn)性和生命周期。
變量的作用域可被分為全局作用域和局部作用域(函數(shù)作用域) 如果變量是被定義在全局作用域的話(huà) 在JavaScript代碼中的任何位置都可以訪問(wèn)該變量 如果變量被定義在指定函數(shù)內(nèi)部 在JavaScript代碼中只能在該函數(shù)內(nèi)部訪問(wèn)該變量。
函數(shù)的作用域也可被分為全局作用域和局部作用域(函數(shù)作用域) 被定義在指定函數(shù)內(nèi)部的函數(shù)被稱(chēng)為局部函數(shù)或內(nèi)部函數(shù)。
在所有函數(shù)之外聲明的變量,叫做全局變量,因?yàn)樗杀划?dāng)前文檔中的其他代碼所訪問(wèn)。
局部變量在函數(shù)內(nèi)部聲明的變量被成為局部變量,它只能在函數(shù)的內(nèi)部進(jìn)行訪問(wèn)。
聲明提前JavaScript變量的另一個(gè)特別之處是,可以小猴聲明的變量,而不會(huì)引發(fā)異常,這一概念被稱(chēng)為生命提前。
示例代碼
console.log(num);// undefined var num = 100;/* 定義全局變量 */ /* 定義函數(shù) */ function fun(){ // 全局變量與局部變量同名時(shí) - 在當(dāng)前函數(shù)作用域中只能訪問(wèn)局部變量 console.log(num);// undefined var num = 200;/* 定義局部變量 */ // 就近原則 console.log(num);// 200 } /* 調(diào)用函數(shù) */ fun(); // 局部變量在全局作用域中無(wú)法訪問(wèn) - 只能訪問(wèn)全局變量 console.log(num);// 100按置傳遞
按置傳遞就是指將實(shí)參變量的值復(fù)制一份副本給函數(shù)的形參變量。JavaScript中為函數(shù)傳遞參數(shù)時(shí),都是按值傳遞的。如果向函數(shù)傳遞的參數(shù)時(shí)原始類(lèi)型數(shù)據(jù),則在函數(shù)中修稿參數(shù)變量的值,不會(huì)影響外部實(shí)參的變量。
示例代碼
var num = 100;/* 定義一個(gè)全局變量 */ function fun(num){ num++; console.log("函數(shù)內(nèi)部的值: " + num);// 101 } fun(num);/* 實(shí)參 */ /* 調(diào)用指定全局變量 */ console.log("全局作用域的值: " + num);// 100 101 var v = 200; function fn(){ v++; } fn(); console.log(v);// 201
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/96884.html
摘要:網(wǎng)上有很多前端的學(xué)習(xí)路徑文章,大多是知識(shí)點(diǎn)羅列為主或是資料的匯總,數(shù)據(jù)量讓新人望而卻步。天了解一個(gè)前端框架。也可以關(guān)注微信公眾號(hào)曉舟報(bào)告,發(fā)送獲取資料,就能收到下載密碼,網(wǎng)盤(pán)地址在最下方,獲取教程和案例的資料。 前言 好的學(xué)習(xí)方法可以事半功倍,好的學(xué)習(xí)路徑可以指明前進(jìn)方向。這篇文章不僅要寫(xiě)學(xué)習(xí)路徑,還要寫(xiě)學(xué)習(xí)方法,還要發(fā)資料,干貨滿(mǎn)滿(mǎn),準(zhǔn)備接招。 網(wǎng)上有很多前端的學(xué)習(xí)路徑文章,大多是知...
摘要:廖雪峰老師的教程學(xué)習(xí)筆記錯(cuò)誤處理提供了像一樣的錯(cuò)誤處理機(jī)制,即例如其中不是必須的,也不是必須的,但二者必須有其一,其中是必定會(huì)被執(zhí)行的。其中其中函數(shù)將在超時(shí)后執(zhí)行。 廖雪峰老師的javascript教程學(xué)習(xí)筆記 1. 錯(cuò)誤處理 JavaScript 提供了像Java一樣的錯(cuò)誤處理機(jī)制,即try catch finally.例如: try{ var s = null; s...
摘要:實(shí)參函數(shù)調(diào)用時(shí)實(shí)際傳入的參數(shù)是函數(shù)的實(shí)際參數(shù),簡(jiǎn)稱(chēng)實(shí)參。簡(jiǎn)單來(lái)說(shuō),就是調(diào)用函數(shù)時(shí)使用的參數(shù)就是實(shí)參。函數(shù)用于執(zhí)行以字符串形式出現(xiàn)的代碼。創(chuàng)建的一個(gè)的源代碼的字符串表示。對(duì)已編碼的統(tǒng)一資源標(biāo)識(shí)符進(jìn)行解碼,并返回其非編碼形式。 函數(shù) 概述 函數(shù)是這樣一段JavaScript代碼,它只定義一次,但是可能被執(zhí)行或調(diào)用多次。簡(jiǎn)單來(lái)說(shuō),函數(shù)就是一組可重復(fù)使用的代碼。 定義函數(shù) 定義函數(shù)有兩種方式...
摘要:遞歸閉包模仿塊級(jí)作用域私有變量小結(jié)在編程中,使用函數(shù)表達(dá)式可以無(wú)需對(duì)函數(shù)命名,從而實(shí)現(xiàn)動(dòng)態(tài)編程。匿名函數(shù)也稱(chēng)為拉姆達(dá)函數(shù)。函數(shù)聲明要求有名字,但函數(shù)表達(dá)式不需要。中的函數(shù)表達(dá)式和閉包都是極其有用的特性,利用它們可以實(shí)現(xiàn)很多功能。 1、遞歸 2、閉包 3、模仿塊級(jí)作用域 4、私有變量 5、小結(jié) 在JavaScript編程中,使用函數(shù)表達(dá)式可以無(wú)需對(duì)函數(shù)命名,從而實(shí)現(xiàn)動(dòng)態(tài)編程。匿名函數(shù)也稱(chēng)...
摘要:第條盡量少使用全局對(duì)象避免聲明全局變量盡量聲明局部變量避免對(duì)全局變量增加屬性第條始終聲明局部變量第條避免使用語(yǔ)句第條熟練使用閉包的函數(shù)值包含了比調(diào)用他們時(shí)執(zhí)行所需要的代碼還要更多的信息。那些在其所涵蓋的作用域內(nèi)跟蹤變量的函數(shù)稱(chēng)為閉包。 書(shū)還沒(méi)看完。一遍看,一遍寫(xiě)讀書(shū)筆記。 這本書(shū)的序是JavaScript之父Brendan Eich寫(xiě)的,作者是JavaScript標(biāo)準(zhǔn)化委員會(huì)專(zhuān)家??上?..
閱讀 4231·2023-04-26 01:48
閱讀 3350·2021-10-13 09:40
閱讀 1812·2021-09-26 09:55
閱讀 3720·2021-08-12 13:23
閱讀 1959·2021-07-25 21:37
閱讀 3508·2019-08-30 15:53
閱讀 1457·2019-08-29 14:16
閱讀 1454·2019-08-29 12:59