JS 無塊級作用域

2022-09-17 16:21:26 字數 666 閱讀 3588

js作用域為「函式級作用域」,記住最簡明的一句「函式中宣告的所有變數,無論是在**宣告的,在整個函式中它們都是有定義的。

下面是自己的筆記

(1)首先,只是在這個函式中有定義,也就是說,在輸出語句後定義和輸出語句前定義是一樣的結果,最後變數的值都是「undefined」,下面兩種寫法結果一樣;

function local()

function local()

如果涉及到變數賦值,下面兩個效果就不一樣

function local_1()

function local_2()

(2)另乙個「無塊級作用域」示例

function local()

document.write("");

document.write(i);

/*輸出

012----------3*/

}顯然,變數i在for迴圈中定義,但離開for這個程式塊,它仍舊可以使用,原因就是它還是在local這個函式中。

(3)關於全域性變數,和c等差不多了,簡單放個例子

var global = "global";

function local_1()

function local_2()

function local_3()

摘自:

js塊級作用域

首先看乙個常見的函式,該函式輸出的是什麼呢?對的,就是5個6.為什麼會這樣呢?因為settimeout是個非同步函式,每次迴圈的時候都會建立乙個定時器,任務放到佇列裡,等主線程執行完才會執行定時器,這個時候迴圈跑完了,最後一次的 i 5 1 6,所以輸出5個6.for var i 1 i 5 i 1...

js塊級作用域

在了解這兩個api前,我們先了解一下塊級作用域這個概念。定義 是乙個語句,將多個操作封裝在一起,通常是放在乙個大括號裡,沒有返回值。為何需要塊級作用域?在es6之前,函式只能在全域性作用域和函式作用域中宣告,不能在塊級作用域中宣告。沒有塊級作用域導致很多場景不合理 1 記憶體變數可能覆蓋外層變數 v...

塊級作用域

跨級作用域本身沒有宣告可以說的,就需要注意兩點 1.跨級作用域內宣告的var變數並不會存在這個塊級作用域內,而是會提公升到非塊級作用域內 2.在塊級作用域內宣告function,在不同瀏覽器會有不同結果,如果是根據條件宣告function的話,請用var func function的形象 但是為什麼...