更新時間:2022年07月27日16時46分 來源:傳智教育 瀏覽次數:
const是ES6中新增的用于聲明常量的關鍵字。所謂常量就是值(內存地址)不能變化的量。const關鍵字聲明的常量具有塊級作用域,聲明常量時必須賦值,聲明常量并賦值后常量的值不能修改。
1.const關鍵字聲明的常量具有塊級作用域
演示const關鍵字聲明的常量塊級作用域效果,具體代碼如下:
<script> if (true) { const a = 10; wconsole.log(a); //輸出結果:10 } console.log(a); //報錯,a未定義 </script>
2.const關鍵字聲明常量時必須賦值
演示const關鍵字聲明常量時不賦值的情況
<script> const PI;//報錯,常量PI未賦值 </script>
3.const關鍵字聲明常量并賦值后常量的值不能修改
(1)對于基本數據類型(如數值、字符串),一旦賦值,值就不可修改。
<script> const PI = 3.14; PI=100;/∥報錯,無法對常量賦值 </script>
(2)對于復雜數據類型(如數組、對象),雖然不能重新賦值,但是可以更改內部的值。
<script> const ary =[100, 200]; ary[0] = 'a'; ary[1] = 'b'; console.log(ary);∥可以更改數組內部的值,結果為['a','b'] ary=['a','b'];∥報錯,無法對常量賦值 </script>
變量的作用域范圍不同
使用var關鍵字聲明的變量,其作用域為該語句所在的函數內,且存在變量提升現象。使用let關鍵字聲明的變量和使用const關鍵字聲明的常量都具有塊級作用域。
變量提升
使用var關鍵字聲明的變量存在變量提升,可以先使用再聲明。使用let關鍵字聲明的變量和const關鍵字聲明的常量不存在變量提升功能,只能先聲明再使用。
值是否可以更改
使用var關鍵字和let關鍵字聲明的變量,可以更改變量的值,但使用const關鍵字聲明的常量,不能更改常量值對應的內存地址。
在編寫程序的過程中,如果要存儲的數據不需要更改,建議使用const關鍵字,如函數的定義、T值或數學公式中一些恒定不變的值。由于使用const聲明的常量,其值不能更改,且JavaScript解析引擎不需要實時監(jiān)控值的變化,所以使用const關鍵字要比let關鍵字效率更高。