编程最基本的技术之一就是使用变量(variable)来表示值,就像用 0xAA
来指代一个人。在 JavaScript 程序中使用变量之前必须先声明这个变量。这一讲,我们将介绍声明变量的三个关键字 let
,const
,和 var
,以及它们之间的区别。
let
在现代 JavaScript 中(ES6 版本之后),变量通过 let
关键字声明。
在上面的代码中,我们先声明了一个名为 year
的变量,并给它赋值 2023
;之后声明另一个名为 name
变量的同时给它赋值 "0xAA"
。最后,我们声明了一个名为 newName
的变量,并将变量 name
的值("0xAA"
)赋给它。
代码中以
//
开头的行是注释,用于提高代码的可读性,不会被执行。
const
在声明常量(constant,值不能改变的变量)是要用 const
关键字,声明时必须给它赋值。常量在第一次赋值后不能改变,不然会报错。
var
(不推荐)
在 ES6 之前的 JavaScript 中,没有 let
和 const
关键字,声明变量只能用 var
关键字。var
和 let
使用上类似,但是会造成全局对象的污染,是个过时的关键字,不推荐使用。
更多关于 var
的细节请参考 MDN教程。
使用规范
ES6 之后新增的 let
和 const
关键字很好地解决了过时的 var
在作用域和语义上存在的诸多问题,也形成了开发时的使用规范。
-
能用
const
就用const
:使用const
声明变量可以确保一些重要的值不会被改变,同时也能迅速发现一些因意外赋值导致的不合理行为。 -
不能用
const
就用let
,不要使用var
:当开发者提前知道某些变量未来需要被修改时就使用let
,这样可以确保变量拥有明确的作用域和声明位置。
习题
下面的代码是否会报错?如果会,请修改它,让它正确运行。你可以在链接上找到这段代码。
总结
这一讲我们介绍了声明变量的三个关键字 let
,const
,和 var
,并讲解了它们之间的区别和用法。在开发中,能用 const
就用 const
,不能用 const
就用let
,不要使用 var
。