js的變數宣告存在變數提公升
對js指令碼執行的時候,函式的宣告會被提取到頂端執行。所以
如 : add(1,2);
function add(a,b)
是可以執行列印3的。
對於變數而言,宣告也會被提前。但是賦值的位置是不變的
如 :console.log(a);
var a = 12;
console.log(a);
第乙個a 為undefined 第二個為12。它相當於
var a;
console.log(a);
a = 12;
console.log(a);
變數的作用域是程式源**中定義這個變數的區域。
全域性變數擁有全域性作用域,函式內部宣告的變數只在函式內有定義,它是區域性變數,作用域是區域性性的。
在函式體內,區域性變數的優先順序高於全域性變數。如果在函式內宣告乙個區域性變數或者函式引數中帶有的變數和全域性重名,那麼全域性變數就會被區域性變數所遮蓋。
如: var a = "哈哈";
function speak()
speak(); // "哭泣"
js變數宣告作用域問題
1.先來看兩個題 1 var a 1 2foo1 3function foo1 67 8foo2 9var a 1 10function foo2 首先這兩題中應該要注意的是函式宣告的提公升,也就是function foo1 會自動被提公升到頂部,所以foo1 的 呼叫是可以的。第乙個輸出1是毫無疑...
JS變數作用域
先明確一點 討論作用域,討論的是非物件成員的變數。在函式以及自定義物件之外宣告的變數,具有全域性作用域 1.瀏覽器會建立乙個window物件,window的所有屬性,都具有全域性作用域 2.反過來,具有全域性作用域的變數,都是window的屬性 3.具有全域性作用域的變數,任何位置都可以訪問 通過上...
js 變數 作用域
一 基本型別與引用型別 針對引用型別值時,複製的只是乙個指標,複製操作結束後,兩個變數實際上將引用同乙個物件 如果是按引用傳遞的話,那麼p就會被自動修改為指向其name屬性為 greg 的新物件,但是由下圖分析可知,引數傳遞是按值傳遞 二 執行環境和作用域 var color blue functi...