教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

const關(guān)鍵字是什么?let、const、var的區(qū)別

更新時(shí)間:2022年07月27日16時(shí)46分 來源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

const是ES6中新增的用于聲明常量的關(guān)鍵字。所謂常量就是值(內(nèi)存地址)不能變化的量。const關(guān)鍵字聲明的常量具有塊級作用域,聲明常量時(shí)必須賦值,聲明常量并賦值后常量的值不能修改。

1.const關(guān)鍵字聲明的常量具有塊級作用域

演示const關(guān)鍵字聲明的常量塊級作用域效果,具體代碼如下:

   <script>
    if (true) {
     const a = 10;
   wconsole.log(a);      //輸出結(jié)果:10
   }
   console.log(a);       //報(bào)錯(cuò),a未定義
   </script>

2.const關(guān)鍵字聲明常量時(shí)必須賦值

演示const關(guān)鍵字聲明常量時(shí)不賦值的情況

   <script>
    const PI;//報(bào)錯(cuò),常量PI未賦值
   </script>

3.const關(guān)鍵字聲明常量并賦值后常量的值不能修改

(1)對于基本數(shù)據(jù)類型(如數(shù)值、字符串),一旦賦值,值就不可修改。

   <script>
    const PI = 3.14;
    PI=100;/∥報(bào)錯(cuò),無法對常量賦值
   </script>

(2)對于復(fù)雜數(shù)據(jù)類型(如數(shù)組、對象),雖然不能重新賦值,但是可以更改內(nèi)部的值。

  <script>
   const ary =[100, 200];
   ary[0] = 'a';
   ary[1] = 'b';
   console.log(ary);∥可以更改數(shù)組內(nèi)部的值,結(jié)果為['a','b']
   ary=['a','b'];∥報(bào)錯(cuò),無法對常量賦值
  </script>
let、const、var關(guān)鍵字之間的區(qū)別

變量的作用域范圍不同

使用var關(guān)鍵字聲明的變量,其作用域?yàn)樵撜Z句所在的函數(shù)內(nèi),且存在變量提升現(xiàn)象。使用let關(guān)鍵字聲明的變量和使用const關(guān)鍵字聲明的常量都具有塊級作用域。

變量提升

使用var關(guān)鍵字聲明的變量存在變量提升,可以先使用再聲明。使用let關(guān)鍵字聲明的變量和const關(guān)鍵字聲明的常量不存在變量提升功能,只能先聲明再使用。

值是否可以更改

使用var關(guān)鍵字和let關(guān)鍵字聲明的變量,可以更改變量的值,但使用const關(guān)鍵字聲明的常量,不能更改常量值對應(yīng)的內(nèi)存地址。

在編寫程序的過程中,如果要存儲的數(shù)據(jù)不需要更改,建議使用const關(guān)鍵字,如函數(shù)的定義、T值或數(shù)學(xué)公式中一些恒定不變的值。由于使用const聲明的常量,其值不能更改,且JavaScript解析引擎不需要實(shí)時(shí)監(jiān)控值的變化,所以使用const關(guān)鍵字要比let關(guān)鍵字效率更高。

0 分享到:
和我們在線交談!