兩種形式定義:文字形式和構造形式。
對象是JavaScript的基礎。
1)基本類型
在JavaScript中一共有六種主要類型(術語是“語言類型”):
2)内置對象
JavaScript中還有一些對象子類型,通常被稱為内置對象。
引擎可以将一些基礎類型自動轉換成相應的内置對象,然後就能調用對象的屬性或方法。
1)屬性
.a文法通常被稱為“屬性通路”,["a"]文法通常被稱為“鍵通路”。
2)複制對象
對于JSON安全(也就是說可以被序列化為一個JSON字元串并且可以根據這個字元串解析出一個結構和值完全一樣的對象)的對象來說,有一種巧妙的複制方法:
相比深複制,淺複制非常易懂并且問題要少得多,是以ES6定義了Object.assign(..)方法來實作淺複制。
3)屬性描述符
4)Getter和Setter
在ES5中可以使用getter和setter部分改寫預設操作,但是隻能應用在單個屬性上,無法應用在整個對象上。
5)存在性
in操作符會檢查屬性是否在對象及其[[Prototype]]原型鍊中。
hasOwnProperty(..)隻會檢查屬性是否在myObject對象中,不會檢查[[Prototype]]鍊。
和數組不同,普通的對象沒有内置的@@iterator,是以無法自動完成for..of周遊。
但你可以給任何想周遊的對象定義@@iterator。