ECMAScript 之 Const

微信扫一扫,分享到朋友圈

ECMAScript 之 Const

const
也是 ECMAScript 2015+ 的代表 keyword,應盡量使用 const
避免 Side Effect,除非真的要修改變數。

Version

ECMAScript 2015

Definition

宣告常數於 block {}
內。

let
差異只有 let
變數
,而 const
常數
,且都是 block level

Scope

scope01.js

function constTest() {
  const x = 1;

  if (true) {
    x = 2;
    console.log(x);
  }

  console.log(x);
}

constTest();
// SyntaxError

let
一樣都是 block
level,由於 x = 2
修改 x
,因此 SyntaxError。

scope02.js

const x = 'global';

console.log(window.x);
// undefined

在 global level 使用 const,也不會污染 DOM 的 window
object。

Initialization

initialization01.js

const x;
x = 1;

console.log(x);
// SyntaxError

let
可先宣告,然後再給值,但 const
一定要 宣告同時給值

只能寫成

const x = 1;

console.log(x);
// 1

因為 const 強調不能被 reassign,因此 宣告同時給值
合理

Not Immutable

not-immutable.js

const data = {
  name: 'Sam'
};

data.name = 'Kevin';
console.log(data.name);
// Kevin

const
並不代表 data 是 Immutable,只代表變數不能被 reassign。

Define Function

define-function.js

const f = (x, y) => x + y;

console.log(f(1, 1));

理論上也可以使用 let
定義 function,但因為 function 經過定義後就不會被 reassign,所以實務上都是使用 const

Conclusion

const
const
const

Sample Code

完整的範例可以在我的 GitHub
上找到

Reference

MDN JavaScript
, const

微信扫一扫,分享到朋友圈

ECMAScript 之 Const

AMD ZEN2架构首爆,工程样品8核16线程 4.5Ghz

上一篇

中国教育十年思考,未来智慧教育引发新变革

下一篇

你也可能喜欢

ECMAScript 之 Const

长按储存图像,分享给朋友