前言
阅读 TypeScript 文档的时候,字面量 这个词出现的频率还挺高,虽然不理解它的意思也不影响阅读,但看到 字面量 扎堆出现的时候,还是想知道 字面量 到底是什么意思。

TypeScript 文档中出现过哪些字面量
文档中大概出现过以下几种名词:
- 数字字面量
- 字符串字面量
- 十六进制字面量
- 对象字面量
- 数组字面量
- 枚举表达式字面量
- 函数字面量
字面量名词对应的程序
- 数字字面量
const num: number = 1; - 字符串字面量
const str: string = 'foo'; - 十六进制字面量(其他进制类似)
const hexLiteral: number = 0xf00d; - 对象字面量
const obj = { x: 10, y: 20 }; - 数组字面量
const numArr:Array<number> = [0,1,2,3]; - 枚举(常量)表达式字面量
enum Response { No = 0, Yes = 1, } - 函数字面量
const fn = (x)=>{ alert(x); }
什么是字面量
在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法。
这是百度百科的解释,可能不太好理解。但是从上面的程序我们可以分析出: = 右边是什么类型,那么这个字面量就被称作该类型的字面量。引用 深入理解 TypeScript 文章中的解释:字面量是 JavaScript 本身提供的一个准确变量。
举个例子
const hexLiteral: number = 0xf00d;
以上代码中,hexLiteral 为定义的常量,0xf00d 为十六进制字面量,如果我们给 0xf00d 加个引号,则 '0xf00d' 就被称之为字符串字面量。
let hexLiteral: number = '0xf00d';
以上代码中,hexLiteral 为定义的变量, '0xf00d' 为字符串字面量。因此我们可以得出结论,字面量 其实就是用来精准描述 = 右边的一个名词而已。
let boo:boolean = true;
以上代码中,boo 为定义的变量, true 为布尔字面量。
总结
字面量 其实就是用来精准描述 = 右边的一个名词而已。理解了这个名词,阅读 TypeScript 文档再也不需要纠结这个名词是什么意思了。
参考链接
深入理解 TypeScript:jkchao.github.io/typescript-…