TypeScript 中的字面量是什麼意思

NingBo發表於2019-04-12

前言

閱讀 TypeScript 文件的時候,字面量 這個詞出現的頻率還挺高,雖然不理解它的意思也不影響閱讀,但看到 字面量 扎堆出現的時候,還是想知道 字面量 到底是什麼意思。

TypeScript 中的字面量是什麼意思

TypeScript 文件片段截圖

TypeScript 文件中出現過哪些字面量

文件中大概出現過以下幾種名詞:

  • 數字字面量
  • 字串字面量
  • 十六進位制字面量
  • 物件字面量
  • 陣列字面量
  • 列舉表示式字面量
  • 函式字面量

字面量名詞對應的程式

  1. 數字字面量
    const num: number = 1;
    複製程式碼
  2. 字串字面量
    const str: string = 'foo';
    複製程式碼
  3. 十六進位制字面量(其他進位制類似)
    const hexLiteral: number = 0xf00d;
    複製程式碼
  4. 物件字面量
    const obj = { x: 10, y: 20 };
    複製程式碼
  5. 陣列字面量
    const numArr:Array<number> = [0,1,2,3];
    複製程式碼
  6. 列舉(常量)表示式字面量
    enum Response {
        No = 0,
        Yes = 1,
    }
    複製程式碼
  7. 函式字面量
    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-…

相關文章