所有的程式設計工作都可以歸結對「某些資料」進行「某種操作」,而變數就是代表「資料」的存在:變數是一個臨時的儲存容器。這裡的簡單變數指的是「一次指儲存單一的資訊片段」,包含數值、字串、布林值。
var 變數名稱 =:賦值運算子 變數值
const 常數名稱 =:賦值運算子 常數值
為了建立一變數,必須給它名稱,又稱為「識別子(Identifier)」,命名方式有:
除了一般宣告之外,var 還可以一次宣告多個變數,通常合併是方便組合宣告,然而不一定要在宣告時初始化變數,有時這麼做是有意義的,可以依照不同變數需求而改變宣告方式。
型別分成數值(Number)、字串(String)、布林值(Boolean)、陣列(Array)、物件(Object)五種,沒有定義就為 Undefined,因 JavaScript 是弱型別語言,所以直接賦值即可,甚至在變數相加的情況會自動轉換型別。
變數分成區域變數、全域變數、常數
參考 MSDN 變數:https://msdn.microsoft.com/zh-tw/library/67defydd(v=vs.94).aspx
1變數宣告
變數宣告是為了正式承認它的存在,以下為變數宣告的四個部份:var 變數名稱 =:賦值運算子 變數值
const 常數名稱 =:賦值運算子 常數值
var 用來宣告一個變數,使不使用與作用域(Scope)有關;const 用來宣告一個常數
命名規則
為了建立一變數,必須給它名稱,又稱為「識別子(Identifier)」,命名方式有:
- 開頭是字母(a-z/A-Z)、底線(_)、錢符號($)
- 其餘可包含字母(a-z/A-Z)、底線(_)、數值(0-9)
- 不能使用 JavaScript 保留字、空格、標點符號或其他字元,可採用獨特和描述性的名稱,避開保留字
- 通常為「駝峰式」區分大小寫
var value = 'area'; //宣告變數
const CONST = 3.14; //宣告常數
常數通常會用「全大寫字」和「底線」命名
參考 MSDN JavaScript 保留字:https://msdn.microsoft.com/zh-tw/library/0779sbks(v=vs.94).aspx
參考 MSDN 為變數命名:https://msdn.microsoft.com/zh-tw/library/67defydd(v=vs.94).aspx
宣告方式
除了一般宣告之外,var 還可以一次宣告多個變數,通常合併是方便組合宣告,然而不一定要在宣告時初始化變數,有時這麼做是有意義的,可以依照不同變數需求而改變宣告方式。
var fullname = 'Domo Huang'; //一般宣告
var firstname = 'Domo', lastname = 'Huang'; //一次宣告並賦值多個變數
var a, b, c; //一次宣告多個變數,但不賦值
var rate;
rate = 5.25;
宣告型別
型別分成數值(Number)、字串(String)、布林值(Boolean)、陣列(Array)、物件(Object)五種,沒有定義就為 Undefined,因 JavaScript 是弱型別語言,所以直接賦值即可,甚至在變數相加的情況會自動轉換型別。
- Number 不帶引號,可以是任何位數的數值,包含數字、小數點、正負數符號、字元「e」(指數記法),不包含千分位的逗號。
- String 需包含單引號或雙引號,出現特殊字元時要在字元前面加上「\」。
- Boolean 只有 0 和 1、true 和 false,有大小寫之分。
Number、String、Boolean,三者為簡單變數類型;Array 和 Object 則是複雜變數類型。
- null 被定義為無值,最適合表示沒有結果的操作,例如運作時呼叫 Ajax 的結果可以是 null,說明沒有返回值。
- undefined 指未設定值,通常是沒有操作結果,例如宣告變數時未賦值。
//直接賦值定義型別(文字語法)
var vUndefined; //沒有賦值,輸出時就為 undefined
var vNum = -1.234; //數字 Numer
var vStr = 'string'; //字串 String
var vArr = ['元素1', '元素2', '元素3']; //陣列 Array
var vObj = { firstName:"Domo", lastName:"Huang" }; //物件 Object
var bool1 = 1, bool2 = 0, bool3 = true, bool4 = false; //布林 Boolean,Boolean(值): 轉換成布林
//正式型別宣告(物件語法)
var vNum = new Number(2);
var vStr = new String('JavaScript');
var vBool = new Boolean(false);
var vArr = new Array;
var vObj = new Object;
參考 MSDN 資料型態:https://msdn.microsoft.com/zh-tw/library/7wkd9z69(v=vs.94).aspx
宣告範圍
變數分成區域變數、全域變數、常數
- 區域變數:var 宣告的變數,只有在函數執行期間(也就是呼叫函數時)有效。
- 全域變數:在函式外宣告的變數,可以在程式中任何地方使用,但避免無意使用的原因:
- 應用程式應該堅守「僅完成必要得最少功能」的原則,不是絕對必要,就不需宣告為全域變數。
- 對程式性能不利,應用程式必須持續維護變數存在,甚至在不使用的情況下也是如此。
- 當全域變數與程式庫變數或其他變數同名,容易造成衝突及邏輯錯誤。
- 常數:分為開發者使用 const 宣告以及 JavaScript 內建預定的常數,作用類似全域變數,可以在任何地方使用。
在所有函數外部宣告的變數,即使有 var 宣告,相對於函數仍有全域變數作用。
區域變數優先於全域變數,亦即若宣告了一個與全域變數相同名稱的區域變數,函式中的程式將會使用區域變數,而非全域變數。
const 關鍵字並沒有得到所有瀏覽器支援,在某些 IE 中無法辨識,不建議在 JavaScript 中建立自己的常數。
globalValue = 'globel'; //宣告全域變數
var areaValue = 'area'; //宣告區域變數
const CONST = 3.14; //宣告常數
參考 MSDN JavaScript 常數: https://msdn.microsoft.com/zh-tw/library/ff818462(v=vs.94).aspx