07-字面量
3.4 字面量
前面已经见过一些字面量:当给 currentTempC
赋值时,使用了一个数字字面量(初始值为22,下一个例子中的值为22.5)。同样,在变量 room1
初始化时指定了一个字符串字面量( "conference_room_a"
)。单词literal指在程序中直接提供的值。本质上,字面量是一种创建值的方式,JavaScript会使用开发人员提供的字面量去创建一个数据值。
理解字面量和标识符的区别尤为重要。回忆一下之前的例子,创建了一个变量 room1
,它的值是 "conference_room_a"
, room1
是标识符(表示这是一个常量)。通过引号(数字不需要任何形式的引号,因为标识符不能以数字开头),JavaScript可以区分标识符和字面量。看看下面这个例子:
let room1 = "conference_room_a"; // "conference_room_a"(引号内部)
//是一个字面值
let currentRoom = room1; // currentRoom 和room1有相同的值
// ("conference_room_a")
let currentRoom = conference_room_a; // 产生一个错误; 因为不存在名为
// conference_room_a 的标识符
任何能够使用标识符(需要给定一个值)的地方,都可以使用字面量。比如在程序中,出现 `ROOM_TEMP_C` 的地方都可以用字面量 `22.5` 来代替。如果代码中只有两处使用了该数字字面量还好,一旦有10处甚至100处都使用了该值,就应该使用常量或者变量代替了,这不但可以提高代码的可读性,而且当需要改变这个值的时候,只需要修改一个地方。
作为程序员,可以决定什么时候使用变量,什么时候使用常量。有些很明显属于常量的值,比如,近似值π(圆周率:圆的周长直径比)或者 DAYS_IN_MARCH
(三月的天数)。而其他像 ROOM_TEMP_C
这样的值就不是那么显而易见,也许有人觉得 21.5 ℃
是最舒服的室内温度,但其他人不一定这么想。所以,如果这个值在应用中是可以配置的,变量就派上用场了。