摘要:作用域一作用域是什么就是變量和函數(shù)所被訪問(wèn)范圍,控制變量和函數(shù)的可見(jiàn)性和生命周期作用域分為全局作用域和局部作用域全局作用域是指在所有函數(shù)之外聲明的變量,因?yàn)楫?dāng)前文檔中的其他代碼可以訪問(wèn)它局部作用域是指在函數(shù)內(nèi)部聲明的變量,因?yàn)樵摵瘮?shù)只能在它
JS(JavaScript)
作用域;
一.作用域是什么;
就是變量和函數(shù)所被訪問(wèn)范圍,控制變量和函數(shù)的可見(jiàn)性和生命周期
作用域分為全局作用域和局部作用域
全局作用域;是指在所有函數(shù)之外聲明的變量,因?yàn)楫?dāng)前文檔中的其他代碼可以訪問(wèn)它
局部作用域;是指在函數(shù)內(nèi)部聲明的變量,因?yàn)樵摵瘮?shù)只能在它內(nèi)部訪問(wèn)
二.變量的作用域;
1.全局變量和局部變量;
全局變量;是指在所有函數(shù)之外聲明的變量,因?yàn)楫?dāng)前文檔中的其他代碼可以訪問(wèn)它
局部變量;是指在函數(shù)內(nèi)部聲明的變量,因?yàn)樵摵瘮?shù)只能在它內(nèi)部訪問(wèn)
/* 全局作用域(函數(shù)作用域之外的范圍) - 全局變量 * 全局變量的作用域 - 全局作用域 + 函數(shù)作用域 */ var v1 = 100; console.log(v1); function fun(){ /* 函數(shù)作用域 - 局部變量 * 局部變量的作用域 - 當(dāng)前函數(shù)作用域 */ var v2 = 200; console.log(v1); console.log(v2); } console.log(v1); fun(); // 全局作用域不能訪問(wèn)局部變量 // console.log(v2); function fn(){ console.log(v2); } fn();
2.聲明提前;
先調(diào)用變量而結(jié)果不會(huì)出錯(cuò)同時(shí)變量會(huì)返回(undefinen)值
console.log(v);// undefined var v = 100; console.log(v);// 100 // 當(dāng)全局變量與局部變量同名時(shí) - 在函數(shù)作用域中只能訪問(wèn)局部變量 function fn(){ console.log(v);// undefined var v = 200; console.log(v);// 200 } fn(); console.log(v);// 100
3.按值傳遞;
是值實(shí)參變量的值同樣的值給函數(shù)的形參變量,表示相同的變量
var q = 100;/* 全局變量 */ function fn(q){ // 參數(shù)與局部變量的用法類(lèi)似 - 只能作用于當(dāng)前函數(shù)的內(nèi)部 q++; return q; } var result = fn(q); console.log(result);// 101 console.logq);// 100
三.函數(shù)的作用域;
全局函數(shù)和內(nèi)部函數(shù);
全局函數(shù);被定義在任何位置都可以訪問(wèn)和調(diào)用函數(shù)
局部函數(shù);將一個(gè)函數(shù)定義在另一個(gè)函數(shù)之內(nèi),只可在函數(shù)的內(nèi)部訪問(wèn),而不能訪問(wèn)全局作用域中訪問(wèn)
function fn(){ console.log("this is fn"); /* 函數(shù)作用域 - 內(nèi)部/私有函數(shù) */ function n(){ console.log("this is n"); } n(); } /* 全局作用域 */ fn(); // n();// n is not defined function fun(){ /* 另一個(gè)函數(shù)作用域 */ fn(); n();// n is not defined } fun();
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/97103.html
摘要:函數(shù)描述表示定義一段代碼,并且可重復(fù)使用函數(shù)的定義函數(shù)聲明方式字面量表達(dá)方式函數(shù)聲明方式語(yǔ)法函數(shù)名稱(chēng)小括號(hào)不可省去函數(shù)體函數(shù)聲明方式在定義函數(shù)時(shí),函數(shù)體中的內(nèi)容不會(huì)被執(zhí)行啞吼吼調(diào)用函數(shù)使用函數(shù)名稱(chēng)調(diào)用函數(shù)的時(shí)候會(huì)執(zhí)行函數(shù)體中的內(nèi)容字面量方 函數(shù) 描述 表示定義一段JavaScript代碼,并且可重復(fù)使用 函數(shù)的定義 函數(shù)聲明方式 字面量表達(dá)方式 函數(shù)聲明方式 語(yǔ)法 function...
摘要:對(duì)象數(shù)組初始化表達(dá)式,闖關(guān)記之上文檔對(duì)象模型是針對(duì)和文檔的一個(gè)。闖關(guān)記之?dāng)?shù)組數(shù)組是值的有序集合。數(shù)組是動(dòng)態(tài)的,根闖關(guān)記之語(yǔ)法的語(yǔ)法大量借鑒了及其他類(lèi)語(yǔ)言如和的語(yǔ)法。 《JavaScript 闖關(guān)記》之 DOM(下) Element 類(lèi)型 除了 Document 類(lèi)型之外,Element 類(lèi)型就要算是 Web 編程中最常用的類(lèi)型了。Element 類(lèi)型用于表現(xiàn) XML 或 HTML 元素...
摘要:操作符或調(diào)用函數(shù)時(shí)傳入?yún)?shù)的操作都會(huì)導(dǎo)致關(guān)聯(lián)作用域的賦值操作。此外可以使用和來(lái)設(shè)置對(duì)象及其屬性的不可變性級(jí)別。忽視這一點(diǎn)會(huì)導(dǎo)致許多問(wèn)題。使用調(diào)用函數(shù)時(shí)會(huì)把新對(duì)象的屬性關(guān)聯(lián)到其他對(duì)象。 前言 《你不知道的 javascript》是一個(gè)前端學(xué)習(xí)必讀的系列,讓不求甚解的JavaScript開(kāi)發(fā)者迎難而上,深入語(yǔ)言?xún)?nèi)部,弄清楚JavaScript每一個(gè)零部件的用途。本書(shū)介紹了該系列的兩個(gè)主題:...
摘要:引子前不久我建立的技術(shù)群里一位問(wèn)了一個(gè)這樣的問(wèn)題,她貼出的代碼如下所示執(zhí)行結(jié)果如下所示第一個(gè)第二個(gè)這是一個(gè)令人詫異的結(jié)果,為什么第一個(gè)彈出框顯示的是,而不是呢這種疑惑的原理我描述如下一個(gè)頁(yè)面里直接定義在標(biāo)簽下的變量是全局變量即屬于對(duì)象的變量 1) 引子 前不久我建立的技術(shù)群里一位MM問(wèn)了一個(gè)這樣的問(wèn)題,她貼出的代碼如下所示: var a = 1; function hehe...
摘要:作用域鏈在執(zhí)行上下文創(chuàng)建的時(shí)候,在變量對(duì)象之后創(chuàng)建作用域鏈,作用域鏈本身就包含變量對(duì)象,當(dāng)函數(shù)被調(diào)用的時(shí)候,作用域鏈包含的是激活對(duì)象。我們可以用這個(gè)屬性來(lái)假定作用域鏈的連接,它指的是鏈中的下一個(gè)對(duì)象。 什么是作用域 作用域是運(yùn)行代碼中某些特定部分的變量,函數(shù)和對(duì)象的可訪問(wèn)性及生命周期 javascript中的作用域 在javascript中有兩種類(lèi)型的作用域1.全局作用域2.局部作用域...
閱讀 3326·2023-04-26 00:58
閱讀 1277·2021-09-22 16:04
閱讀 3323·2021-09-02 15:11
閱讀 1568·2019-08-30 15:55
閱讀 2348·2019-08-30 15:55
閱讀 3277·2019-08-23 18:41
閱讀 3470·2019-08-23 18:18
閱讀 2760·2019-08-23 17:53