前言
閱讀 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-…