JavaScript 變數的作用域

2021-07-15 23:41:10 字數 1873 閱讀 7519

1.  全域性作用域(global scope)

在**中任何地方都能訪問到的物件擁有全域性作用域,一般來說以下幾種情形擁有全域性作用域:

(1)最外層函式和在最外層函式外面定義的變數擁有全域性作用域,例如:

1

2

3

4

5

6

7

8

9

10

11

12

varauthorname="山邊小溪";

functiondosomething()

innersay();

}

alert(authorname);//山邊小溪

alert(blogname);//指令碼錯誤

dosomething();//夢想天空

innersay()//指令碼錯誤

(2)所有末定義直接賦值的變數自動宣告為擁有全域性作用域,例如:

1

2

3

4

5

6

7

8

functiondosomething()

dosomething();//山邊小溪

alert(blogname);//夢想天空

alert(authorname);//指令碼錯誤

變數blogname擁有全域性作用域,而authorname在函式外部無法訪問到。

(3)所有window物件的屬性擁有全域性作用域

一般情況下,window物件的內建屬性都擁有全域性作用域,例如window.name、window.location、window.top等等。

1.  區域性作用域(local scope)  

和全域性作用域相反,區域性作用域一般只在固定的**片段內可訪問到,最常見的例如函式內部,所有在一些地方也會看到有人把這種作用域稱為函式作用域,例如下列**中的blogname和函式innersay都只擁有區域性作用域。

1

2

3

4

5

6

7

8

9

functiondosomething()

innersay();

}

alert(blogname);//指令碼錯誤

innersay();//指令碼錯誤

由於for

迴圈並不是乙個函式體,所以

for迴圈中定義變數的作用域是

for迴圈所在的函式體

Javascript變數作用域

1.變數作用域是什麼鬼?2.全域性變數 全域性變數擁有全域性作用域 作用範圍在整個頁面中 在 的任何地方都有定義。擁有全域性作用域的情形 1 宣告在函式外部的變數。eg var a 全域性變數 function b 2 宣告變數時,缺少關鍵字var。eg function b 函式引數的變數 fun...

JavaScript的變數作用域詳解

定義在所有函式之外的變數,全域性作用域的變數能夠在所有的js指令碼中使用 var num 2 全域性變數 function fn fn console.log num 列印變數num 不管在函式體裡面還是外面,num在控制台上列印結果都為2,可見全域性變數可以在指令碼任何地方呼叫並可賦與新值 但也會...

JavaScript之變數 作用域

一.變數 1.基本型別值和引用型別值 js和其他語言一樣也分值型別和引用型別。在基本概念那篇部落格也紀錄了五種常見的基本資料型別 undefined null boolean number string。這五種都是按值訪問的基本資料型別,可以操作保持在變數中的實際的值.js和其他語言c 不同的是st...