老徐WEB:js入門學習 - javascript變量

javascript變量是最基礎的知識,也是學習任何編程語言都會接觸,並且要學習的知識。

如果你在編程過程中需要存放一個數字,比如100,那麼你首先要聲明一個變量,然後把數字100賦值給變量,這樣在程序中就有了100這個數字了,程序後面相關的計算操作都會通過這個變量來完成。再比如,你想存放一個hello的字符串,也是要聲明一個變量,然後把hello賦值給變量。或者從後臺數據庫獲取的數據,也是要存放給變量的,然後才能進行繼續的操作。

下面就說一說變量相關的內容。
老徐在學習javascript的過程,也是從簡單開始一步一步學習的。

變量的聲明和初始化
變量的聲明需要知道兩個javascrip關鍵字就行了,分別是var和let(ES6新增)。這兩個關鍵字都可以聲明和初始化變量,當然兩者聲明的變量在作用域方面有所不同,接下來會說到。舉例說明怎麼聲明和初始化變量,非常簡單。
var x = 'hello'; // 聲明一個變量,名字叫x,初始化值是一個字符串叫hello。
var y; // 聲明一個變量,沒有初始化,此時它的數據類型是undefined。
y = 3; // 給上面剛聲明的變量賦值,值是一個數字3。
let a; // 聲明瞭一個沒有初始值的變量。
let b = '哈哈'; // 聲明並初始化了一個變量,
上面簡單列舉了幾個變量聲明的例子,非常簡單,給變量賦的值也不只是字符串或者數字,還有null、布爾值、數組、對象、函數等,後面在數據類型的時候再細講。
可能有人會問了,var和let聲明的變量好像沒有區別呀。下面老徐說一下他們有什麼區別,區別在於作用域的不同。

變量的作用域 - 全局、局部和塊級作用域
由var聲明的在函數體外的變量,叫全局變量,是全局作用域。
由var聲明的在函數體內的變量,叫局部變量,是局部作用域。
由let聲明的在代碼塊外的變量,叫全局變量,是全局作用域。
由let聲明的在代碼塊內的變量,叫局部變量,是塊級作用域。

看到上面4句話,有點暈,那麼咱們先說var。
簡單說就是由var聲明的變量,在函數體外是全局變量,在函數體內是局部變量。
var x = 1; // 在函數體外聲明的變量,是全局變量
function y(){
    // 函數體,而且x變量在函數體是可以用的。
}
function z(){
    var z1 = 0; // 在函數體內聲明的變量,是局部變量,在函數體外是不能用的。
}
function a(){
    z2 = 1; // 此時這個變量是全局變量,沒有用var聲明。
}
看到這裏,老徐相信大家應該明白什麼是全局變量和局部變量了,區別就是在函數有內外,而且沒有var的變量是全局變量。

接下來再說說let關鍵字。
簡單說就是由let聲明的變量在代碼塊外的是全局變量,在代碼塊內的是局部變量。
let x = 1; // 在代碼塊外聲明的變量是全局變量
for(let i = 0; i < 5; i++){ // 在代碼塊內聲明的變量是局部變量
    // 代碼塊
}
function z(){
    let y = 3; // 在代碼塊內聲明的變量是局部變量
}
這就是var,let的區別,各位看明白了麼。

 

另外還有幾點需要注意。
由var聲明的變量,可以有任何地方(函數內外、代碼塊內外)被再次聲明。
由let聲明的變量,在相同作用域裏,不能被再次聲明。
由let聲明的變量,在相同作用域裏,不能再被var聲明。
由var聲明的變量,在相同作用域裏,不能再被let聲明。

勤學苦練,笨鳥先飛。關注【老徐WEB前端開發教程】公衆號,聽老徐說。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章