Object
与其他基本类型值不同,对象是一种复合值:将许多值( 原始值或者其他对象 )聚合在一起,可通过名字访问这些值。
ECMA-262把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或函数”。
即,对象是一组没有特定顺序的值;对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。
到目前为止,我们看到的大多数引用类型值都是 Object 类型的实例,Object 也是 ES 中使用最多的一个类型。
虽然 Object 的实例并不具备多少功能,但对于在应用程序中存储和传输数据而言,它们确实是非常理想的选择。
// 为什么要有对象 ? function printPerson(name, age,sex,salary){ } function printPerson(person){ console.log(person.name); }
Object - 知识图谱
「 ! 对象的创建与使用 」 单一对象 & 批量创建( 模式 )
「 JS 对象类型系统( 15 )」原生对象可以分为:原始类型( primitive type )和对象类型( object type / 引用类型 )
原始类型
(1)空值( 2 )
与其他语言不同,JS 表示空值的值有两个,分别是 undefined 和 null。
逻辑上,undefined,表示原始类型的空值,null,表示对象类型的空值。
(2)包装对象( 3 )
String、Number、Boolean 虽然属于原始类型。但,由于其包装对象的性质,可调用属性和方法。
对象类型( 引用类型 ) // 内存分析:原始类型和引用类型的区别 — 值传递 & 引用传递
(3)构造对象( 6 +
3)Object 是属性的无序集合,但是通过不同的构造器,JS 定义了功能各异的多种对象,包括:
函数 function
数组 Array
Date 日期
Error 错误
RegExp 正则
如果显式地使用new 构造器函数来定义包装对象,那么 String、Number、Boolean也属于构造器对象。
(4)单体内置对象( 它们不需声明或者使用构造器构造,直接在相应场景使用即可 )
ECMA-262 对内置对象的定义是:“ 由 ECMAScript 实现提供的、不依赖于宿主环境的对象,这些对象在ECMAScript程序执行之前就已经存在了 ”。 即,开发人员不必显示的实例化内置对象,因为它们已经实例化了。
// 查询文档:Mozilla开发者网络( MDN?!)。
它提供了有关开放网络技术(Open Web)的信息,包括HTML、CSS和万维网及 HTML5 应用的 API。