JS中的作用域

作用域指運行代碼時,代碼區(qū)塊中變量,函數(shù)和對象的可訪問性。

全局作用域

在代碼中任何地方都能訪問到的對象擁有全局作用域。

函數(shù)作用域

函數(shù)作用域指聲明在函數(shù)內(nèi)部的變量。

塊級作用域

塊級作用域可通過let和const聲明,所聲明的變量在指定塊的作用域外無法被訪問,在一個函數(shù)內(nèi)部或一個代碼塊內(nèi)部被創(chuàng)建。
let和const的特點:

  1. 變量提升不會提升到代碼塊的頂部,所以需要手動放置到頂部。
  2. 禁止重復(fù)聲明。
作用域鏈?zhǔn)鞘裁?/h5>

自由變量指當(dāng)前作用域中沒有定義的變量。
作用域鏈指由子作用域?qū)訉酉蚋缸饔糜蛑姓易杂米兞康年P(guān)系。

作用域和執(zhí)行上下文的區(qū)別

javascript屬于解釋性語言,js的執(zhí)行分為兩個階段:解釋階段和執(zhí)行階段。作用域在解釋階段,在函數(shù)定義時已經(jīng)確定,但是執(zhí)行上下文在函數(shù)執(zhí)行之前才被創(chuàng)建。
執(zhí)行上下文可能隨時會變,但時作用域在定義時就被確定,不會變。同一個作用域下,不同的調(diào)用會產(chǎn)生不同的執(zhí)行上下文。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容