JavaScript中的var、let和const:區別與使用
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
今天咱們來聊聊JavaScript中的三個關鍵字:var、let和const。它們在變量聲明方面各有特色,讓我們一起來看看它們之間的區別吧! 一、varvar 聲明的變量既是全局變量,也是頂層對象的屬性。例 如,在瀏覽器環境中,var a = 10; 會使得window.a 等于10。?「變量提升」:var 聲明的變量存在變量提升的情況。比 如,console.log(a); var a = 20; 會被編譯器解析 為var a; console.log(a); a = 20; ,所以輸出undefined 。?「多次聲明」:可以對一個變量進行多次聲明,后面聲明的變量會覆蓋前面的變量聲明。 例如,var a = 20; var a = 30; 最終a 的值是30。?「局部作用域」:在函數中使用var 聲明的變量是局部的,不會影響到外部變量。例 如,function change() { var a = 30; } 不會改變外部的a 。二、letlet 是ES6新增的關鍵字,用于聲明變量,并且只在let 命令所在的 代碼塊內有效。例如,{ let a = 20; } 外面訪問a 會報錯。?「不存在變量提升」:let 聲明的變量不存在變量提升。例 如,console.log(b); let b = 2; 會直接報錯。?「暫時性死區」:在聲明let 變量之前,該變量是不可用的,稱為“暫時性死區”。例 如,var a = 123; if (true) { a = 'abc'; let a; } 會報錯。?「不允許重復聲明」:在同一作用域中不能重復聲明同一個變量。例 如,let a = 20; let a = 30; 會報錯。三、constconst 聲明的變量是只讀的,一旦聲明就不能修改。例 如,const a = 1; a = 3; 會報錯。?「必須初始化」:const 聲明的變量必須立即初始化,不能留到以后賦值。例 如,const a; 會報錯。?「復雜類型」:對于復雜類型的數據(如對象),const 只能保證指針不變,不能保證 對象內部結構不變。例如,const foo = {}; foo.prop = 123; 是允許的, 但foo = {}; 會報錯。四、區別總結var 有變量提升,let 和const 沒有。?「暫時性死區」:var 沒有,let 和const 有。?「塊級作用域」:var 沒有,let 和const 有。?「重復聲明」:var 允許,let 和const 不允許。?「修改聲明的變量」:var 和let 可以,const 不可以。使用建議能用 希望這篇文章能幫助你更好地理解 該文章在 2025/7/11 16:46:44 編輯過 |
關鍵字查詢
相關文章
正在查詢... |