const

const 是 ES6 / TypeScript 提供的一个非常受欢迎的特性。它允许你创建不可变的变量。无论是对于文档还是运行时视角而言,这都是非常好的。要使用 const,只要用 const 来替代 var

const foo = 123;

这种语法比其他强制用户输入像是 let constant foo —— 即变量 + 行为说明 —— 的东西要好得多(恕我直言)。

const 在可读性和可维护性方面是好的实践,以及避免了使用魔法字面量。例如:

// 可读性低
if (x > 10) {
}

// 更好!
const maxRows = 10;
if (x > maxRows) {
}

const 声明必须初始化

下面的例子会导致编译错误:

const foo; // ERROR: const declarations must be initialized

赋值操作的左侧不可以是常量

常量在创建之后就是不可变的了,所以如果你尝试去赋一个新的值,这是一个编译错误:

const foo = 123;
foo = 456; // ERROR: Left-hand side of an assignment expression cannot be a constant

块级作用域

const 就像 let 一样是块级作用域:

const foo = 123;
if (true) {
    const foo = 456; // Allowed as its a new variable limited to this `if` block
}

深不可变性

const 对于对象字面量也有效,考虑到了保护变量引用

const foo = { bar: 123 };
foo = { bar: 456 }; // ERROR : Left hand side of an assignment expression cannot be a constant

然而它仍然允许对象子属性可变,就像下面展示的那样:

const foo = { bar: 123 };
foo.bar = 456; // Allowed!
console.log(foo); // { bar: 456 }

因此我推荐使用 const 在字面量或者不可变的数据结构上。

results matching ""

    No results matching ""