摘要:變量的作用域以及閉包變量的作用域就是你定義的變量可以使用的代碼范圍全局變量局部變量全局變量全局變量,顧名思義,就是在全局都能夠使用的變量。局部變量局部變量,只在函數(shù)執(zhí)行時(shí)生成的調(diào)用對(duì)象中存在,在函數(shù)執(zhí)行完畢時(shí)局部變量即刻銷毀。
變量的作用域以及閉包 變量的作用域
就是你定義的變量可以使用的代碼范圍
全局變量
局部變量
全局變量全局變量,顧名思義,就是在全局都能夠使用的變量。在瀏覽器解析js代碼時(shí),會(huì)在內(nèi)存中開(kāi)辟出一塊空間來(lái)存儲(chǔ)變量,在函數(shù)需要使用時(shí),可以直接從內(nèi)存中調(diào)用。
局部變量局部變量,只在函數(shù)執(zhí)行時(shí)生成的調(diào)用對(duì)象中存在,在函數(shù)執(zhí)行完畢時(shí)局部變量即刻銷毀。因此在程序設(shè)計(jì)中我們需要考慮如何合理聲明變量,這樣既減小了不必要的內(nèi)存開(kāi)銷,同時(shí)能很大程度地避免變量重復(fù)定義而覆蓋先前定義的變量所造成的Debug麻煩。
舉例說(shuō)明var a = 1; console.log(a); 打印得到1.
var a = 1; function example(){ console.log(a); } 打印得到1.
function example(){ var b = 2; console.log(b); } example(); 打印得到2.
function example(){ var b = 2; } console.log(b); example(); 打印報(bào)錯(cuò) b is not defined閉包
閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)。由于在javascript中,只有函數(shù)內(nèi)部的子函數(shù)才能讀取局部變量,所以說(shuō),閉包可以簡(jiǎn)單理解成“定義在一個(gè)函數(shù)內(nèi)部的函數(shù)。所以,在本質(zhì)上,閉包是將函數(shù)內(nèi)部和函數(shù)外部連接起來(lái)的橋梁。
function example (){ var b = 2; return function (){ b++; console.log(b); } } var example1 = example(); example1(); 打印得到3.
當(dāng)我們?cè)诖蛴onsole.log(example1)的時(shí)候,我們會(huì)發(fā)現(xiàn)打印出來(lái)的是example內(nèi)部的函數(shù)
console.log(example1); 打印得到: ? (){ b++; console.log(b); }自執(zhí)行函數(shù) 第一種格式
(function(){ })()第二種格式
(function(){ }())
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/87339.html
摘要:也就是說(shuō),普通情況下,指向調(diào)用函數(shù)時(shí)的對(duì)象。在全局執(zhí)行時(shí),則是全局對(duì)象。故而的方法因?yàn)闃?gòu)造函數(shù)閉包的關(guān)系,指向了構(gòu)造函數(shù)作用域內(nèi)的。 日常開(kāi)發(fā)中,我們經(jīng)常用到this。例如用Jquery綁定事件時(shí),this指向觸發(fā)事件的DOM元素;編寫(xiě)Vue、React組件時(shí),this指向組件本身。對(duì)于新手來(lái)說(shuō),常會(huì)用一種意會(huì)的感覺(jué)去判斷this的指向。以至于當(dāng)遇到復(fù)雜的函數(shù)調(diào)用時(shí),就分不清this的...
摘要:前言最近在學(xué)前幾天看到兩道題剛開(kāi)始看懵懵懂懂這幾天通過(guò)各種查資料慢慢的理解頓悟了對(duì)匿名函數(shù)閉包立即執(zhí)行函數(shù)的理解也更深了一點(diǎn)在此分享給大家我的理解與總結(jié)希望能幫助大家理解因?yàn)檫@篇文章是我用心總結(jié)的查閱了很多的資料所以總結(jié)的比較細(xì)篇幅較長(zhǎng)如果 前言 最近在學(xué)JS,前幾天看到兩道題,剛開(kāi)始看懵懵懂懂,這幾天通過(guò)各種查資料,慢慢的理解,頓悟了,對(duì)匿名函數(shù),閉包,立即執(zhí)行函數(shù)的理解也更深了一點(diǎn)...
摘要:是詞法作用域工作模式。使用可以將變量綁定在所在的任意作用域中通常是內(nèi)部,也就是說(shuō)為其聲明的變量隱式的劫持了所在的塊級(jí)作用域。 作用域與閉包 如何用js創(chuàng)建10個(gè)button標(biāo)簽,點(diǎn)擊每個(gè)按鈕時(shí)打印按鈕對(duì)應(yīng)的序號(hào)? 看到上述問(wèn)題,如果你能看出來(lái)這個(gè)問(wèn)題實(shí)質(zhì)上是考對(duì)作用域的理解,那么恭喜你,這篇文章你可以不用看了,說(shuō)明你對(duì)作用域已經(jīng)理解的很透徹了,但是如果你看不出來(lái)這是一道考作用域的題目,...
摘要:是詞法作用域工作模式。使用可以將變量綁定在所在的任意作用域中通常是內(nèi)部,也就是說(shuō)為其聲明的變量隱式的劫持了所在的塊級(jí)作用域。 作用域與閉包 如何用js創(chuàng)建10個(gè)button標(biāo)簽,點(diǎn)擊每個(gè)按鈕時(shí)打印按鈕對(duì)應(yīng)的序號(hào)? 看到上述問(wèn)題,如果你能看出來(lái)這個(gè)問(wèn)題實(shí)質(zhì)上是考對(duì)作用域的理解,那么恭喜你,這篇文章你可以不用看了,說(shuō)明你對(duì)作用域已經(jīng)理解的很透徹了,但是如果你看不出來(lái)這是一道考作用域的題目,...
閱讀 609·2021-10-19 11:45
閱讀 1530·2021-09-30 09:48
閱讀 1532·2021-08-16 10:56
閱讀 804·2021-07-26 23:38
閱讀 3259·2019-08-30 13:15
閱讀 2645·2019-08-30 12:45
閱讀 1902·2019-08-29 12:14
閱讀 2217·2019-08-26 18:42