字面量是什么?


在阅读技术文档的时候偶尔会遇到字面量(Literals),咋一看,好家伙,这是什么高大上的名词?于是赶紧去 google 一番,但是出来的结果都语焉不详。

比如 MDN 的中文翻译是:

译注:字面量是由语法表达式定义的常量;或,通过由一定字词组成的语词表达式定义的常量) 在 JavaScript 中,你可以使用各种字面量。这些字面量是脚本中按字面意思给出的固定的值,而不是变量。(译注:字面量是常量,其值是固定的,而且在程序脚本运行中不可更改,比如false,3.1415,thisIsStringOfHelloworld **,invokedFunction: myFunction(“myArgument”)。

好像说得有点不太接地气。让我们看看英文原文是如何表达的:

Literals represent values in JavaScript. These are fixed values—not variables—that you literally provide in your script.

这……咋原文这么简短,中文翻译绕来绕去的。让我来翻译翻译原文:

在 JavaScript 中字面量表示 值(values)。它们是你在脚本中字面上写出来的固定的值,而不是变量。

可能你看了翻译还是不太理解,没关系,我们结合程序继续讲解:

var a = 100 var b = "JavaScript" var c = [5,6,7] var d = { name: "小明", age: 18
}

上面例子中等号的左边都是变量(a、b、c、d),而右边的都是字面量(100、JavaScript……),也就是说字面量是你在程序源码中直接写出来的值。意即字面上的值。

总结

多看英文原文。