JavaScript Const
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JavaScript const 命令JavaScript
- When to use var vs let vs const in JavaScriptJavaScript
- JavaScript中let、const、var 的區別JavaScript
- JavaScript 高階—— ES6新增語法 const(let const var區別)JavaScript
- JavaScript中的var、let 及 const 區別JavaScript
- const * and * const
- [譯] 在JavaScript中何時使用var、let及constJavaScript
- 理解let並 const在JavaScript ES6中(4)JavaScript
- 理解let並 const在JavaScript ES6中(1)JavaScript
- 理解let並 const在JavaScript ES6中(2)JavaScript
- 【前端面試】(四)JavaScript var let const的區別前端面試JavaScript
- JavaScript 中的 Var,Let 和 Const 有什麼區別JavaScript
- const char*, char const*, char*const 有何區別?
- Const
- 頂層const和底層const
- 現代JavaScript — ES6+中的Imports,Exports,Let,Const和PromiseJavaScriptImportExportPromise
- 現代JavaScript:ES6+ 中的 Imports,Exports,Let,Const 和 PromiseJavaScriptImportExportPromise
- 搞懂頂層const和底層const
- C++ 頂層const底層constC++
- const 使用
- C語言 關鍵字const的作用 const int* 和int *const 的區別C語言
- let和const
- const和define
- 07-const
- C++ 中的 const 物件與 const 成員函式C++物件函式
- SyntaxError: Unexpected keyword 'const'?Error
- 指標與const指標
- let var與const
- Const 用法總結
- let與const命令
- const關鍵字
- const限定符
- inline、const、mutable、this、staticinline
- let與const區別
- C++基礎 constC++
- var let const區別
- let const var 區別
- C++ const 總結C++