JavaScript 數組 Const

ECMAScript 2015 (ES6)

2015 年,JavaScript 引入了一個重要的新關鍵字:const

使用 const 聲明數組已成為一種常見做法:

實例

const cars = ["Saab", "Volvo", "BMW"];

親自試一試

無法重新賦值

const 聲明的數組不能重新賦值:

實例

const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"];    // ERROR

親自試一試

數組不是常量

關鍵字 const 有一定誤導性。

它不定義常量數組。它定義的是對數組的常量引用。

因此,我們仍然可以更改常量數組的元素。

元素可以重新賦值

您可以更改常量數組的元素:

實例

// 您可以創建常量數組:
const cars = ["Saab", "Volvo", "BMW"];
// 您可以更改元素:
cars[0] = "Toyota";
// 您可以添加元素:
cars.push("Audi");

親自試一試

瀏覽器支持

Internet Explorer 10 或更早的版本不支持 const 關鍵字。

下表注明了完全支持 const 關鍵字的首個瀏覽器版本:

Chrome IE Firefox Safari Opera
Chrome 49 IE 11 / Edge Firefox 36 Safari 10 Opera 36
2016 年 3 月 2013 年 10 月 2015 年 2 月 2016 年 9 月 2016 年 3 月

聲明時賦值

JavaScript const 變量在聲明時必須賦值:

意思是:用 const 聲明的數組必須在聲明時進行初始化。

使用 const 而不初始化數組是一個語法錯誤:

實例

不起作用:

const cars;
cars = ["Saab", "Volvo", "BMW"];

var 聲明的數組可以隨時初始化。

您甚至可以在聲明之前使用該數組:

實例

沒問題:

cars = ["Saab", "Volvo", "BMW"];
var cars;

親自試一試

const 塊作用域

const 聲明的數組具有塊作用域

在塊中聲明的數組與在塊外聲明的數組不同:

實例

const cars = ["Saab", "Volvo", "BMW"];
// 此處 cars[0] 為 "Saab"
{
  const cars = ["Toyota", "Volvo", "BMW"];
  // 此處 cars[0] 為 "Toyota"
}
// 此處 cars[0] 為 "Saab"

親自試一試

var 聲明的數組沒有塊作用域:

實例

var cars = ["Saab", "Volvo", "BMW"];
// 此處 cars[0] 為 "Saab"
{
  var cars = ["Toyota", "Volvo", "BMW"];
  // 此處 cars[0] 為 "Toyota"
}
// 此處 cars[0] 為 "Toyota"

親自試一試

您可以在以下章節中學習更多關于塊作用域的內容:JavaScript 作用域

重新聲明數組

在程序中的任何位置都允許用 var 重新聲明數組:

實例

var cars = ["Volvo", "BMW"];   // 允許
var cars = ["Toyota", "BMW"];  // 允許
cars = ["Volvo", "Saab"];      // 允許

不允許在同一作用域或同一塊中將數組重新聲明或重新賦值給 const

實例

var cars = ["Volvo", "BMW"];         // 允許
const cars = ["Volvo", "BMW"];       // 不允許
{
  var cars = ["Volvo", "BMW"];         // 允許
  const cars = ["Volvo", "BMW"];       // 不允許
}

不允許在同一作用域或同一塊中重新聲明或重新賦值現有的 const 數組:

實例

const cars = ["Volvo", "BMW"];       // 允許
const cars = ["Volvo", "BMW"];       // 不允許
var cars = ["Volvo", "BMW"];         // 不允許
cars = ["Volvo", "BMW"];             // 不允許
{
  const cars = ["Volvo", "BMW"];     // 允許
  const cars = ["Volvo", "BMW"];     // 不允許
  var cars = ["Volvo", "BMW"];       // 不允許
  cars = ["Volvo", "BMW"];           // 不允許
}

允許在另一個作用域或另一個塊中使用 const 重新聲明數組:

實例

const cars = ["Volvo", "BMW"];       // 允許
{
  const cars = ["Volvo", "BMW"];     // 允許
}
{
  const cars = ["Volvo", "BMW"];     // 允許
}

完整的數組參考手冊

如需完整參考,請訪問我們的完整 JavaScript 數組參考手冊

該手冊包含所有數組屬性和方法的描述和實例。