# JavaScript - 變數(Variable)與值(Value) ###### tags: `javascript` ## 變數 * 透過程式幫我們記錄資訊 / 儲存與取用值 * 宣告變數的方法:let, const, var * 基本型別(primitives types)介紹 1. 字串(String) 2. 數字(Number) 3. 布林(Boolean) 4. undefined 5. null 6. Symbol * 型別操作方法 ## 宣告 ```javascript= let a = 1; //意義解釋 // let a = 1 //宣告一個變數,變數名稱為 a,並賦予值為 1 ``` ## 變數存放的記憶體空間 * 觀念:變數設定無法跨頁面共享,每個頁面都是獨立的記憶體空間 * 重新整理頁面即清空記憶體,原先設定的變數值皆被清掉 ## number 型別 - 簡易計算機功能 (使用 chrome 的 console 面板) * 加:3+2 >5 * 減:4-2 >2 * 乘:2*3 >6 * 除:6/3 >2 * 餘數:10%2 >0 * 平方:5**2 >25 ```javascript= //賦予變數=>值的儲存 let a = 1; let b = 6; let c = 3; let d = 2*3 a*b=6 b*c=18 let e = a*b e=6 ``` ## number 型別 - 各種數字的支援程度 * 正值 * 負值 * 浮點數 ```javascript= let a = 1; let b = -3; let c = 3.14; ``` ## 檢驗代表的型別 * typeof ```javascript= a = 1; typeof a "number" ``` ## JavaScript有三種宣告方式 * let 宣告一個可隨意更改其內容的區塊區域變數 * const 宣告一個只可讀取的不可變常數 * var 宣告一個可隨意更改其內容的變數 ## let 變數 * let 宣告後 value 的值可以被覆寫 * 不可重複宣告,但變數的值可以被修改更新 ```javascript= let cokePrice = 30; cokePrice = 40; //已宣告過,覆寫新的值就不用再重複寫 let ``` ## const 常數 * const 宣告後 value 的值無法被覆寫 * 不可重複宣告,常數的值不可以被修改更新 ```javascript= let cloud = 3; //原本看到雲朵為3朵 cloud = 8; //風一吹看到變成8朵 const sunNum = 1; //太陽只會有1顆 sunNum = 2; //const宣告基本型別後無法被修改 >Uncaight //const 的值無法再重新覆寫 const sale = 0.7; //折扣數固定,較適合用不可變動的 const const hatPrice = 100; //定價固定,較適合用不可變動的 const let hatNum = 3; //顧客購買數量,較適合用可變動的 let let total = sale*hatPrice*hatNum; //總金額,較適合用可變動的 let total >210 ``` ## var 變數 * var 宣告後 value 的值可以被覆寫 * var 宣告可隨意更改其內容 * 較不嚴僅 ### 歷史的眼淚 * var 會汙染全域變數,容易造成不可預期的錯誤,主要是因為將變數宣告全域會發生幾種情況 1. 變數名稱衝突,發生預期外的程式錯誤 1. 佔用記憶體,無法回收 * 使用 var 宣告變數較容易造成奇奇怪怪的問題 ## 【補充小知識】javascript 宣告變數 * 變數命名限制: * 有區分大小寫 * 開頭第一個字元不可為數字 * 開頭第一個字元可為英文或特殊符號 * 命名可以是中文 * [保留字](https://www.w3schools.com/js/js_reserved.asp):命名不可撞名否則會出錯