02-变量和常量
3.1 变量和常量
变量实质上是一个具名的值。顾名思义,变量的值是可变的。例如,在开发一个温度监控系统,系统中可能有个变量叫作 currentTempC
:
let currentTempC = 22; // degrees Celsius
let关键字是ES6新出的。在ES6之前,var是唯一用来定义变量的关键字,第7章中有关于它的介绍。
这条语句做了两件事:声明(创建)变量currentTempC并给它指定了一个初始值。可以随时改变currentTempC的值。
currentTempC = 22.5;
注意,这里没有使用let关键字;let仅用来声明变量,并且只能声明一次。
JavaScript是不能给数字指定单位的。也就是说,不能限定变量currentTempC的单位为摄氏度。如果赋给currentTempC一个值,而该值是以华氏度换算出来的,程序就会发生异常(执行结果有误)。考虑到这一点,会给变量名加上后缀“C”来说明它的单位是摄氏度。语言本身并没有这种强约束,这么做其实是以文档的形式来避免一些不经意间的错误。
声明变量的时候也可以不指定初始值,此时变量会有一个特殊的默认值:undefined:
let targetTempC; // 等价于 "let targetTempC = undefined";
let
关键字还可以同时声明多个变量:
let targetTempC, room1 = "conference_room_a", room2 = "lobby";
上面的实例代码中声明了三个变量: targetTempC
没有初始值,所以它的值是 undefined
, room1
、 room2
分别指定了初始值 "conference_room_a"
和 "lobby"
,它们都是字符串(文本)变量。
常量(ES6的新特性)也可以存储值,但它与变量不同:常量一旦初始化就不能再改变。可以用常量来表示舒适的室内温度和最高温度(关键字 const
也可以声明多个常量):
const ROOM_TEMP_C = 21.5, MAX_TEMP_C = 30;
有这样一个惯例(非强制):凡是代表明确数字或字符串的常量名都应该由大写字母组成,并用下划线间隔多个单词。这么做是为了便于区分,同时也是种视觉提示:不应该试图改变它的值。