1、final 和 const 变量的作用

如果你不想更改一个变量,可以使用关键字 final 或者 const 修饰变量,这两个关键字可以替代 var 关键字或者加在一个具体的类型前。

final name = 'Bob'; 
name = 'Alice'; // Error: final变量只能设置一次.

const arr = []; 
arr = [100]; // Error: 常量变量不能被赋值.

2、final 和 const 变量的联系

一个 const 变量同时也是一个 final 变量。

3、final 和 const 变量的区别

虽然 final 对象不能被修改,但是它的字段可以被修改。相比之下,const 对象及其字段是不可更改的,它们是不可变的。

4、const 关键词的特殊说明

(1)如果使用 const 修饰类中的变量,则必须加上 static 关键字,即 static const,顺序不能颠倒。

(2)const 关键字不仅仅可以用来定义常量,还可以用来创建常量值,该常量值可以赋予给任何变量。如下代码所示:

var foo = const [];
final bar = const [];
const baz = []; // 等同于 `const []`

备注:没有使用 finalconst 修饰的变量的值是可以被更改的,即使这些变量之前引用过 const 的值:foo = [1, 2, 3]; 但是,常量的值不可以被修改:baz = [100]; 则会报错!

标签: none

添加新评论