编程最基本的技术之一就是使用变量(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。