真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

javascript作用域的含義及其作用

這篇文章將為大家詳細講解有關(guān)javascript 作用域的含義及其作用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比濮陽網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式濮陽網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋濮陽地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。

作用域理解:定義的變量、函數(shù)生效的范圍。javascript 有全局作用域和函數(shù)作用域兩種。

注:es6實現(xiàn)let 塊級作用域不是js原生的,底層同樣是通過var實現(xiàn)的。如果想了解具體細節(jié),請訪問babel官方 對es6中l(wèi)et 進行解析。

執(zhí)行上下文

范圍:一段內(nèi)或者一個函數(shù)內(nèi);
全局:函數(shù)聲明、變量聲明 。范圍:;
函數(shù):函數(shù)聲明、變量聲明、this、arguments。范圍:一個函數(shù)內(nèi)部;

函數(shù)、變量聲明提升



//實際的執(zhí)行順序為

當js引擎執(zhí)行一個 執(zhí)行上下文代碼塊時,執(zhí)行順序為:
1.函數(shù)聲明 function a(){};(函數(shù)優(yōu)先) 注:let a = function (){}; 這是變量的聲明和賦值,不是函數(shù)的聲明。
2.變量聲明 var a; 注:剛開始只對變量進行聲明,沒有進行賦值,如果 在賦值之前使用到這個變量 值為:undefined。
3.執(zhí)行上下文為函數(shù)作用域時:確定this和arguments。
4.按照js單線程和異步策略依次執(zhí)行 作用域中的代碼。

我們習慣將 var a = 2; 看作一個聲明,而實際上 JavaScript 引擎并不這么認為。它將 var a和 a = 2 當作兩個單獨的聲明,第一個是編譯階段的任務(wù),而第二個則是執(zhí)行階段的任務(wù)。這意味著無論作用域中的聲明出現(xiàn)在什么地方,都將在代碼本身被執(zhí)行前首先進行處理。可以將這個過程形象地想象成所有的聲明(變量和函數(shù))都會被“移動”到各自作用域的最頂端,這個過程被稱為提升。要注意避免重復聲明,特別是當普通的 var 聲明和函數(shù)聲明混合在一起的時候,否則會引起很多危險的問題!

作用域鏈

自由變量:當前作用域沒有定義的變量,但是上層作用域定義了,可以在此層作用域中使用的變量。
作用域鏈:當使用一個變量時候,先在自己的作用域里找,如果沒有找到,再到父級作用域找,一直找到全局作用域,如果都沒有找到即報錯。

塊級作用域

js無塊級作用域,僅有全局作用域和函數(shù)作用域兩種作用域。
ES6 通過對全局作用域的特殊實現(xiàn),實現(xiàn)了js的塊級作用域 let;
let 的生效范圍為 { };
const 為定義常量。注:定義的常量的值存儲的內(nèi)存地址不可變動,值是可變的比如常量中定義的是數(shù)組 或者對象時候,可以通過數(shù)組或?qū)ο蠓椒ú僮髟瓟?shù)據(jù),只要不重新賦值就沒問題。

關(guān)于javascript 作用域的含義及其作用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


文章標題:javascript作用域的含義及其作用
網(wǎng)頁網(wǎng)址:http://weahome.cn/article/geeipi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部