開頭語:變量相當於容器,值相當於容器內的數據,而變量名就是操作容器內數據的句柄。
🌲知識點
在 JavaScript 中,聲明變量使用 var 語句
🌳實例設計
在一個 var 語句中,可以聲明同一個變量,也可以反覆初始化變量的值。
未賦值的變量,初始化爲 undefin (未定義) 值。當聲明多個變量時,應使用逗號運算符進行分隔。
var a; //聲明一個變量
var a, b, c;//聲明多個變量
var b = 1;//聲明並賦值
document.write(a);//返回 undefined (未定義)
document.write(b);//返回1
在 JavaScript 中,可以重複聲明同一個變量,也可以反覆初始化變量的值。
注意:在非嚴格模式下,JavaScript 允許不聲明就直接爲變量賦值,這就是因爲 JavaScript 解釋器能夠自動隱式聲明變量。隱式聲明的變量總是作爲全局變量使用,在嚴格模式下必須先聲明,才能使用。
🌍知識點
使用等號(=) 運算符可以變量賦值,等號左側爲變量,等號右側爲被賦的值。
🌎實例設計:
JavaScript 引擎的解析方式:先解析代碼,獲取所有被聲明的變量,然後再一行行的運行。這樣所有聲明的變量,都會被提升到代碼的頭部,這稱之爲變量提升。
document.write(a); //顯示undefined
a = 1;
document.write(a); //顯示1
var a;
在上面的示例中,聲明變量放在最後,賦值操作放在前面,由於 JavaScript 在預編譯期已經對變量聲明語句進行了解析,
所第一行代碼讀取變量值時不會拋出異常,而是返回未初始化的值 undefind
第3行代碼是在賦值之後讀取,則顯示爲1.
😎知識點:
變量作用域 (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
不顯示聲明局部變量會帶嚴重後果,記得聲明!!
定義全局變量有一下三種方式:
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 函數體中,所有聲明的私有變量、參數、內部函數對外都是不可見的,如果不主動放開,
外接式無法訪問內部數據的,因此使用函數體封存應用程序是最佳實踐。
完結!!!
作者:在校生記錄博客