两种形式定义:文字形式和构造形式。
对象是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。