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...