JavaScript Const

xiemuran發表於2022-12-06

ECMAScript 2015

ES2015 引入了兩個重要的 JavaScript 新關鍵詞: let 和  const

透過  const 定義的變數與  let 變數類似,但不能重新賦值:

例項

const PI = 3.141592653589793;
PI = 3.14;      // 會出錯PI = PI + 10;   // 也會出錯

塊作用域

塊作用域內使用  const 宣告的變數與  let 變數相似。

在本例中,x 在塊中宣告,不同於在塊之外宣告的 x:

例項

var x = 10;// 此處,x 為 10{ 
  const x = 6;  // 此處,x 為 6}// 此處,x 為 10

您可以在上一章  JavaScript Let 中學到更多有關塊作用域的知識。

在宣告時賦值

JavaScript  const 變數必須在宣告時賦值:

不正確

const PI;
PI = 3.14159265359;

正確

const PI = 3.14159265359;

不是真正的常數

關鍵字  const 有一定的誤導性。

它沒有定義常量值。它定義了對值的常量引用。

因此,我們不能更改常量原始值,但我們可以更改常量物件的屬性。

原始值

如果我們將一個原始值賦給常量,我們就不能改變原始值:

例項

const PI = 3.141592653589793;
PI = 3.14;      // 會出錯PI = PI + 10;   // 也會出錯

常量物件可以更改

您可以更改常量物件的屬性:

例項

// 您可以建立 const 物件:const car = {type:"porsche", model:"911", color:"Black"};// 您可以更改屬性:car.color = "White";// 您可以新增屬性:car.owner = "Bill";

但是您無法重新為常量物件賦值:

例項

const car = {type:"porsche", model:"911", color:"Black"};
car = {type:"Volvo", model:"XC60", color:"White"};    // ERROR

常量陣列可以更改

您可以更改常量陣列的元素:

例項

// 您可以建立常量陣列:const cars = ["Audi", "BMW", "porsche"];// 您可以更改元素:cars[0] = "Honda";// 您可以新增元素:cars.push("Volvo");

但是您無法重新為常量陣列賦值:

例項

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

瀏覽器支援

Internet Explorer 10 或更早版本不支援  const 關鍵詞。

下表定義了第一個完全支援 const 關鍵詞的瀏覽器版本:






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

重新宣告

在程式中的任何位置都允許重新宣告 JavaScript  var 變數:

例項

var x = 2;    //  允許var x = 3;    //  允許x = 4;        //  允許

在同一作用域或塊中,不允許將已有的  var 或  let 變數重新宣告或重新賦值給  const

例項

var x = 2;         // 允許const x = 2;       // 不允許{  let x = 2;     // 允許  const x = 2;   // 不允許}

在同一作用域或塊中,為已有的 const 變數重新宣告宣告或賦值是不允許的:

例項

const x = 2;       // 允許const x = 3;       // 不允許x = 3;             // 不允許var x = 3;         // 不允許let x = 3;         // 不允許{  const x = 2;   // 允許  const x = 3;   // 不允許  x = 3;         // 不允許  var x = 3;     // 不允許  let x = 3;     // 不允許}

在另外的作用域或塊中重新宣告  const 是允許的:

例項

const x = 2;       // 允許{  const x = 3;   // 允許}
{  const x = 4;   // 允許}

提升

透過  var 定義的變數會被 提升到頂端。如果您不瞭解什麼是提升(Hoisting),請學習提升這一章。

您可以在宣告 var 變數之前就使用它:

例項

carName = "Volvo";    // 您可以在此處使用 carNamevar carName;

透過  const 定義的變數不會被提升到頂端。

const 變數不能在宣告之前使用:

例項

carName = "Volvo";    // 您不可以在此處使用 carNameconst carName = "Volvo";


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69997780/viewspace-2926854/,如需轉載,請註明出處,否則將追究法律責任。

相關文章