變數定義:可以使用var定義變數,變數如果沒有賦值,那變數的初始值為undefined。
全域性變數:全域性變數也稱為外部變數,定義在所有函式之外的變數,不屬於哪個函式。其作用域是整個源程式。
區域性(函式級)變數:
使用var定義在函式體內部的變數,只在函式內部有作用,他只能在定義他的函式中使用,超出函式體的範圍不能進行使用。
塊級變數:
let/const 定義變數。
let定義的是變數,即以後還可以修改變數中的值。
const定義的是常量,即一旦變數中的值被確定,則以後不能再修改。
js 變數宣告提公升和函式宣告提公升
1.變數宣告提公升
下面將以乙個例子來說明這個問題
function
test
() console.log("迴圈後:" + i);//-1
}test();
注:其實變數宣告提公升就是將所有使用 var 定義的變數宣告部分提公升到對應作用域的最頂部,變數賦值位置不變。
提公升後的**為:
function
test
() console.log("迴圈後:" + i);//-1
}test();
注:因為變數只宣告沒有賦值,所以一開始會輸出undefined。
函式宣告提公升:函式分為函式宣告方式和函式表示式兩種宣告方式。即函式也有函式宣告提公升方式和函式表示式宣告提公升兩種。
1.函式宣告提公升:
var num =
15; changenum();
function changenum()
console.
log(num); // 15
注:函式宣告方式定義的函式,將整體都提公升到對應作用域的最頂部。
2.函式表示式宣告提公升:
var changenum;
var num =
15; changenum = function ()
changenum();
console.
log(num); // 15
注:函式表示式的方式定義的函式,則只將變數宣告提公升到對應作用域的最頂部,變數賦值部分位置不動。
JS中for迴圈變數作用域
js中作用域只有函式作用域和全域性作用域,在函式體內使用var 定義的變數,會被提到函式開始處進行定義,作用域為整個函式,常見的誤區如下 1 var a 2for var i 0 i 10 i 5 6 a 0 78 其中,由於for迴圈並不是乙個函式體,所以for迴圈中定義的變數q和i是作用域for...
JS變數作用域
先明確一點 討論作用域,討論的是非物件成員的變數。在函式以及自定義物件之外宣告的變數,具有全域性作用域 1.瀏覽器會建立乙個window物件,window的所有屬性,都具有全域性作用域 2.反過來,具有全域性作用域的變數,都是window的屬性 3.具有全域性作用域的變數,任何位置都可以訪問 通過上...
js 變數 作用域
一 基本型別與引用型別 針對引用型別值時,複製的只是乙個指標,複製操作結束後,兩個變數實際上將引用同乙個物件 如果是按引用傳遞的話,那麼p就會被自動修改為指向其name屬性為 greg 的新物件,但是由下圖分析可知,引數傳遞是按值傳遞 二 執行環境和作用域 var color blue functi...