js中變數的作用域

2021-08-25 19:32:53 字數 1234 閱讀 5743

變數定義:可以使用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...