六角學院 JS 核心筆記 (十三)【運算子、型別與文法】- 原始型別及物件型別

資料型別 (Data Type)

JavaScript 的型別主要分兩大類別,分別是原始型別 (Primitive type) 及參考型別 (Reference type)。

  1. Primitive type
    • Boolean
    • Null
    • Undefined
    • Number
    • String
    • BigInt
    • Symbol(於 ECMAScript 6 新定義)
  2. Reference type
    • Object: Primitive type 以外的都屬於 Object 型別。例:Object {}Array []Function ()

包裹物件

原始型別 (Primitive type) 中除了 nullundefined 沒有包裹物件之外,其他都有包裹物件,也就是原始型別包裹器 Primitive Wrapper,能呼叫相對應的特殊屬性和函式。

  • Boolean: new Boolean()
  • Null
  • Undefined
  • Number: new Number()
  • String: new String() e.g. str.lengthstr.trim()
  • BigInt: BigInt()
  • Symbol: Symbol()

注意:使用包裹物件宣告的變數是物件型別。

1
2
let a = new String("Jenifer");
console.log(typeof a); // 輸出結果: object

Javascript 長久以來的錯誤

使用 typeof b 居然出現物件型別!這是 Javascript 長久以來的錯誤,但是現在也無法更正了。

1
2
let b = null;
console.log(typeof b); // 輸出結果: object

typeof 保護措施

對於沒有宣告的 c 也就是 not defined 的變數,typeof 的輸出結果是 undefined。這點要特別記住啦!

1
console.log(typeof c); // 輸出結果:undefined

參考資料:
六角學院:JavaScript 核心篇 - 邁向達人之路