第一篇回顧學習,變數
什麼是變數
變數就是在記憶體中刨一個坑存“一個”資料,再給這個坑起個名。
為什麼要給“一個”加引號呢,因為JavaScript是鬆散型別的,即一個變數可以用來儲存任何型別的資料。
變數的分類:
全域性變數
:可以在任何地方使用的變數;
區域性變數
:在函式內宣告的變數只在函式內有定義,作用域是區域性性的
什麼時候使用
當一個資料需要被反覆使用時,就要先儲存在變數中。
怎麼用
宣告變數
var 變數名
;
例:var keng
這樣我就宣告瞭一個叫keng的變數;變數名有一定的要求大概總結為一下幾點
- 不能以數字開頭
- 語義化
- 不能用保留字
在es6中還有兩種宣告變數的方式(IE11)
let
:宣告塊級作用域的變數,通俗的理解就是花括號就是它的作用域const
:宣告常量:需在宣告時直接賦值,宣告為基礎型別不可改變。宣告為引用型別不可重寫。
賦值
keng = '坑'
將上文中宣告的keng
賦值為字串'坑'
;
也可以在宣告時直接賦值變數,如:var keng2 = '第二個坑'
不經過宣告也可以直接賦值變數,但不推薦這麼做,因為這樣的變數會預設為全域性變數(在嚴格模式下會報錯)
如 keng3 = '沒有宣告就賦值的第三個坑是沒有靈魂的坑'
如果僅宣告而沒有賦值的變數,預設值為:undefined
在後面資料型別會詳細說~。~
可以同時宣告多個變數,並直接賦值,用逗號隔開即可。如上文中的三個坑可以這樣寫
var keng = '坑',
keng2 = '第二個坑',
keng3 = '沒有宣告就賦值的第三個坑是沒有靈魂的坑'
複製程式碼
可以寫成一行,這樣寫是為了提高可讀性
變數作用域
上文中說到的全域性變數和區域性變數即為變數作用域的基本概念 需要注意的是
-
區域性變數的優先順序高於同名的全域性變數,即如果在函式內宣告一個區域性變數或者函式引數中帶有的變數和全域性變數重名,那麼全域性變數會被區域性變數所遮蓋。
var keng = '坑是個好坑,能不能用就不知道了'; function changeKeng(){ var keng = '好坑也不用你'; return keng; } changeKeng(); // '好坑也不用你' 複製程式碼
-
宣告提前 在區域性作用域宣告變數的時候會將變數提升至當前作用域的頂部。 敲個栗子:
var keng = '這是個全域性的坑'; function quanyikuaidi(){ console.log(keng); // 輸出 'undefine' 而不是 '這是一個全域性的坑' var keng = '圈一塊地裡的坑'; console.log(keng); // 輸出 '圈一塊地裡的坑' } 複製程式碼
以上程式碼等同於
var keng = '這是個全域性的坑'; function quanyikuaidi(){ var keng; // 在函式頂部宣告變數 keng console.log(keng); // 變數存在還沒有賦值,預設值為undefined keng = '圈一塊地裡的坑'; // 給變數 keng 賦值 console.log(keng); // 輸出 '圈一塊地裡的坑' } 複製程式碼
結語
到這裡變數的部分就OK了,其他的部分敬請期待了,目錄傳送門 ,沒有連線的證明本寶寶還沒寫,哈哈哈哈哈