作用域 作用域鏈到底是怎麼回事?

2021-10-10 06:45:21 字數 1442 閱讀 7086

它是指對某一變數和函式具有訪問許可權的**空間

在js中只有兩種作用域

1.全域性作用域:script標籤內部的區域就是全域性作用域

2.區域性作用域:函式大括號內部的區域就是區域性作用域

在js中只有函式可以劃分作用域,因此每個函式的大括號內部都是乙個區域性作用域

因此我們稱區域性作用域為函式作用域

全域性變數 宣告在全域性的變數

全域性作用域就是全域性變數起作用的範圍

區域性變數 在函式內部宣告的變數

區域性作用域就是區域性變數起作用的範圍

//script標籤中的空間就是全域性作用域

//全域性作用域

//a變數就宣告在了全域性作用域,就是乙個全域性變數

var a;

//全域性變數

a(a)

a =10;

function

a(a)

console.

log(a)

console.

log(b)

//b is not defined

var c;

console.

log(c)

//undefined

<

/script>

不同作用域中變數和函式的訪問許可權區域性作用域中宣告的變數和函式只能在區域性作用域中訪問

全域性作用域中宣告的變數和函式可以在全域性任意訪問

兩個同級的布局作用域之間不能互相訪問對方內部的變數

全域性作用域不能訪問區域性裡面的變數

子級作用域能訪問父級作用域的變數和函式

父級作用域不能訪問子級的變數和函式

同級作用域之間不能互相訪問變數和函式

會先在當前作用域查詢變數,當前沒有向上一級查詢

1.當前有使用當前的變數。

首先,函式不呼叫不執行,所以呼叫了fun函式,在fun函式中,有乙個函式a,呼叫了函式a,列印了a,呼叫a會執行a函式,裡面var了乙個a賦值為10,所以在函式a中列印a出的結果為10,在fun函式中列印a的結果是函式a這個函式體。

2.當前沒有向上一級查詢變數,一直到全域性作用域為止,如果還是沒有會報錯,*** is not defined。

var c =

100;

//全域性作用域中有c

function

num(b)

sum()}

// num(10) //10+10+100

num(10)

//120

炒股到底是怎麼回事?

到底是怎麼回事?很久就聽說 有人賺死,有人虧死。只是聽別人說,自己沒多大興趣,因為聽說風險太大,並且虧的可能性很大,呵呵,誰願意去做八成可能虧的買賣呢?但昨天在sohu上看到一條新聞,引起我對它的興趣,所以今天了解了一下。其實我覺得道理好像很簡單,就是你拿一部分錢跟你兄弟說 兄弟,咱們合夥搞一莊生意...

作用域 作用域鏈

理解 就是一塊 地盤 乙個 段所在的區域 它是靜態的 相對於上下文物件 在編寫 時就確定了 分類全域性作用域 函式作用域 沒有塊作用域 es6有了 作用隔離變數,不同作用域下同名變數不會有衝突 區別1全域性作用域之外,每個函式都會建立自己的作用域,作用域在函式定義時就已經確定了。而不是在函式呼叫時 ...

記憶體對齊到底是怎麼回事?

記憶體對齊問題是各種開發類面試中最熱門的問題,面試管一般認為這個問題可以考察被面試者對記憶體細節的了解情況,確實這個問題對於c 初學者來說是個十足的難題因為它不僅涉及了pragma pack n 設定的記憶體對齊係數還涉及了相關記憶體分配的細節。記憶體對齊 我們知道現代計算機體系中cpu按照雙字 字...