JavaScript 宣告變數

admin發表於2019-01-16

通過變數可以儲存一段資料,通俗的講,就是將資料儲存在變數中。

大家知道,資料都是儲存在計算機記憶體中,怎麼可能儲存在一個變數中。

事實上,變數是一個引用記憶體地址,且名字簡短易懂的引用佔位符,方便引用修改資料。

本文將通過程式碼例項詳細介紹一下JavaScript如何宣告一個變數與其注意點。

一.變數宣告:

ES2015之前,只能通過var宣告變數,沒有其他方式。

隨著版本發展到ES2015,新增let和const宣告變數,可以認為常量是一種特殊變數。

很多教程陳述說,使用var或者不使用var都可以宣告變數,不使用var宣告的變數具有全域性性。

本文可以負責任的說,此種說法是錯誤的,ES2015之前,只有通過var宣告的才是變數。

不使用var建立是全域性物件的屬性,本文不做介紹,具體參閱變數宣告帶var與不帶var的區別一章節。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
var webName="螞蟻部落";

通過var宣告變數webName並賦值字串"螞蟻部落",字串要加引號。

當然也可以賦值其他資料型別,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
var num=5;
var b=true;
var arr=[];

上述程式碼宣告三個變數,分別賦值為數字、布林值和陣列物件。

[JavaScript] 純文字檢視 複製程式碼
var webName="螞蟻部落", num=5 , b=true;

可以同時宣告多個變數並賦值,變數之間用逗號分隔。

變數可以宣告的同時賦值,也可以先宣告後賦值,或者不賦值。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
var webName="螞蟻部落";
var num,b;
num=5;
console.log(webName);
console.log(num);
console.log(b);

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201901/16/174033m82b2l6hh0czed3n.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

如果沒有給變數賦值,那麼系統會自動為其賦值為undefined。

變數名稱區分大小寫,變數a與A是兩個不同的變數,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
var a=5;
var A=6;
console.log(a);
console.log(A);

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201901/16/174100tdfadzuzddcnqeda.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

後宣告的同名變數會覆蓋先宣告的變數,如果a與A是同一個變數,最終列印結果都是6。

關於console.log方法可以參閱console.log() 方法一章節。

let與const宣告變數或者常量可以參閱如下兩篇文章:

(1).let關鍵字參閱JavaScript let一章節。

(2).const關鍵字參閱JavaScript const一章節。

二.變數命名規則:

變數的命名需要遵循一定的規則,否則會報錯:

(1).第一個字元必須是字母、下劃線(_)或美元符號($)。

(2).第一個之外的字元可以是下劃線、美元符號或任何字母或數字。

但是變數名稱不能是保留字或者關鍵字,它們在JavaScript中具有特殊的含義或者說未來將居有特殊含義。

比如變數名稱不能是var或者let,很容易理解,更多內容參閱JavaScript 保留字與關鍵字一章節。

三.變數宣告前置:

通過var宣告的變數具有前置效果,也就是說變數可以使用在前,宣告在後。

特別強調一下,通過let和const宣告的變數或者常量並沒有前置效果。

考慮到文章的篇幅問題,本文不做介紹,具體參閱JavaScript 變數與函式宣告前置一章節。

下面通過一個程式碼例項簡單一下前置現象:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
console.log(webName);
func();
var webName="螞蟻部落";
function func(){console.log("函式")}

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201901/16/174238tda68mdk6zmfrivs.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

JavaScript程式碼是從上到下順序執行的,但是可以在變數和宣告之前列印和呼叫函式。

看起來有點不可思議,這就是所謂的變數與函式宣告前置效果,具體參閱上面推薦的文章。

相關文章