深入JS作用域

2021-09-05 11:28:15 字數 1089 閱讀 2216

var a = 10  

function f1()

f2();

} f1();

console.log(a); //10

console.log(c); //20

console.log(b); //error

var b = c = 20 是指 var b = c; c = 20

在f1函式中

c沒使用var宣告為全域性變數,b為區域性變數,繫結在f1函式下,外部訪問不到。

沒有塊級作用域,但有 if(),for()等塊語句,

在塊語句內部定義的變數會保留在它們已經存在的作用域內

if(true)   

console.log(word); //hello

if()語句存在全域性作用域下,所以內部定義的變數存在於全域性作用域中,無論在哪都可以訪問。

function add(num)   

console.log(num); //10

} add(11);

console.log(num); //uncaught referenceerror: num is not defined

此時if()在add函式中,內部定義的變數存在於add函式的作用域中,只有在函式和塊語句中才可以訪問到,外部無法訪問。

function add(num)   

console.log(i); //10

} add(10);

function add(num)   

})()

console.log(i); //uncaught referenceerror: i is not defined

} add(10);

此時變數i只能在for()迴圈中訪問到,在add函式和外部都無法訪問,並且在匿名函式中定義的任何變數都會在執行結束時被銷毀,所以變數i只能在for()迴圈中使用。

js 深入閉包(作用域 下)

function fn1 return fns var fs fn1 for var i 0 i 解決方案 function fn1 tf i return fns var fs fn1 for var i 0 i 塊作用域 for var i 0 i 10 i 在js中沒有塊作用域,不管是使用迴圈...

深入淺出JS 作用域

作用域是什麼呢?它是指的 在執行時,變數 函式或者物件的可訪問性?還是乙個變數和函式的作用範圍?又或是如 know js 中所說的作用域是根據名稱查詢變數的一套規則呢,又或是指的當前 的執行環境?在筆者的眼裡,作用域所指的是規則,一套用來管理變數和函式的作用範圍的規則。var userinfo a ...

JS深入理解作用域 作用域鏈,變數提公升

1 作用域 1 全域性作用域 在瀏覽器載入我們html頁面的時候,首先會開闢乙個供js 執行的環境,即全域性作用域,這是乙個棧記憶體 2 私有作用域 函式執行時,開闢乙個新的棧記憶體,形成私有作用域 2 基本資料型別與引用資料型別區別?基本資料型別 string,number,boolean,nul...