在 JavaScript 中,var
、let
和 const
是三種用來宣告變數的方法:
var
:var
是Javascript中用來宣告變數的關鍵字之一,它具有函式作用域,想像 var
是在家裡放一個物品,無論你在哪個房間,你都能找到它。這意味著如果你在函式內部用 var 宣告一個變數,那麼整個函式都能訪問到它。var
有一個特性叫「提升」(hoisting),這就像你把東西放在某個地方,但是無論你何時在家裡找,它都已經被默認放到了一個固定位置(在家裡的入口),只是不會有具體的值。最後,在同一作用域內,可以多次使用var
宣告同一變數名,而不會引發錯誤,但這樣會覆蓋之前的值。
let
:ECMAScript 6(ES6)新增了let
關鍵字可以用來宣告變數,它是為塊級作用域,let
像是你把物品放在一個房間的抽屜裡,這樣它只會在這個房間裡(或者更小的區域,如迴圈、條件判斷)能夠被找到。這個物品在放進抽屜之前,你是無法取出來的,否則你會收到錯誤提示。let
避免了 var
的一些麻煩,讓你更容易控制變數在哪裡可以被使用。
const
:const
和 let
有點像,也是塊級作用域,也是放在特定房間的抽屜裡,但這個物品一旦放進去,你就不能再把它換成別的東西了。const
不可重新賦值,這是個「常量」,意思是它的值不會變。但如果這個物品是個可以裝東西的盒子,你還是可以往裡面添加或移除物品,只是不能換掉整個盒子。
簡單來說,var
在家裡到處都是,let
只在特定房間裡,const
是不能改變的特定房間物品。這些特性讓你可以更好地控制變數在程式中的範圍和變動性。