JavaScript 變量詳解

在這裏插入圖片描述

開頭語:變量相當於容器,值相當於容器內的數據,而變量名就是操作容器內數據的句柄。

1.聲明變量

🌲知識點

在 JavaScript 中,聲明變量使用 var 語句

🌳實例設計

在一個 var 語句中,可以聲明同一個變量,也可以反覆初始化變量的值。
未賦值的變量,初始化爲 undefin (未定義) 值。當聲明多個變量時,應使用逗號運算符進行分隔。

var a; //聲明一個變量
var a, b, c;//聲明多個變量
var b = 1//聲明並賦值
document.write(a);//返回 undefined (未定義)
document.write(b);//返回1

在 JavaScript 中,可以重複聲明同一個變量,也可以反覆初始化變量的值。

注意:在非嚴格模式下,JavaScript 允許不聲明就直接爲變量賦值,這就是因爲 JavaScript 解釋器能夠自動隱式聲明變量。隱式聲明的變量總是作爲全局變量使用,在嚴格模式下必須先聲明,才能使用。

2.賦值變量

🌍知識點

使用等號(=) 運算符可以變量賦值,等號左側爲變量,等號右側爲被賦的值。

🌎實例設計:

JavaScript 引擎的解析方式:先解析代碼,獲取所有被聲明的變量,然後再一行行的運行。這樣所有聲明的變量,都會被提升到代碼的頭部,這稱之爲變量提升。

document.write(a);    //顯示undefined
a = 1;
document.write(a);	//顯示1
var a;

在上面的示例中,聲明變量放在最後,賦值操作放在前面,由於 JavaScript 在預編譯期已經對變量聲明語句進行了解析,
所第一行代碼讀取變量值時不會拋出異常,而是返回未初始化的值 undefind
第3行代碼是在賦值之後讀取,則顯示爲1.

3.變量作用域

😎知識點:

變量作用域 (scope)是指變量在程序過程中可以訪問的有效範圍,也稱爲變量的可見性
JavaScript 變量可以分爲以下兩種:

♠全局變量:變量在整個頁面腳本中都是可見的,可以被自由訪問。

♠局部變量:變量僅能在聲明的函數內部可見,函數外是不允許訪問的。

😎示例設計

下面演示了全局變量和局部變量的關係。

var a = 1;                        //聲明並初始化全局變量
function f(){			  //聲明函數
	document.write(a);	  //顯示 undefined(未定義)
	var a = 2;		  //聲明並初始化局部變量
	document.write(a);	//顯示2
	}
	f ();			//調用函數

由於函數內部聲明瞭一個同名局部變量a,所以預編譯期JavaScript 使用該變量覆蓋掉全局變量在函數內部的影響。
而在執行初期,局部變量a 未賦值,所以函數內第1行代碼讀取局部變量a的值也就是undefined (未定義)

當執行函數第2行代碼時,則爲局部變量賦值2,所以在第三行顯示爲2

不顯示聲明局部變量會帶嚴重後果,記得聲明!!

4.全局變量

定義全局變量有一下三種方式:
1.在任何函數外直接使用 var 語句聲明

Var f = 'value';

2.直接添加屬性到全局對象上。在web瀏覽器中,全局作用域對象爲 window。

window.f = "value"

3.直接使用未經聲明的變量,以這種方式的全局變量被稱爲隱式的全局變量

f = ”value“

注意:全局變量在全局作用域內都是可見的,因此具有污染性,大量使用全局變量會降低程序的可靠性,用戶應該避免使用全局變量。減少使用全局變量的方法有兩種,下面示例形式演示說明。

實例設計

在腳本中創建一個全局變量,作爲當前應用的唯一接口,然後通過對象直接量的形式包含所有應用程序變量。
本例使用的是 函數體封裝應用程序,這是最常用的一種方法/

function(window){
	var Myapp = {}//定義APP訪問接口
	MyAPP.name = {//定義APP配置變量
	"id":"應用程序的ID編號"
	};
	MyAPP.work = {
	num : 123
	sub : { name : ”sub_id “}//APP計數器等內部屬性
	doing : function(){//具體方法			//APP 應用分支
	//執行代碼
	};
	window.MyAPP;				//對外開放應用程序接口
	})(window)

在JavaScript 函數體中,所有聲明的私有變量、參數、內部函數對外都是不可見的,如果不主動放開,
外接式無法訪問內部數據的,因此使用函數體封存應用程序是最佳實踐。

完結!!!
作者:在校生記錄博客

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章