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)单体内置对象( 它们不需声明或者使用构造器构造,直接在相应场景使用即可 )

MathJSON全局对象arguments

ECMA-262 对内置对象的定义是:“ 由 ECMAScript 实现提供的、不依赖于宿主环境的对象,这些对象在ECMAScript程序执行之前就已经存在了 ”。 即,开发人员不必显示的实例化内置对象,因为它们已经实例化了。


// 查询文档:Mozilla开发者网络( MDN?!)。

它提供了有关开放网络技术(Open Web)的信息,包括HTML、CSS和万维网及 HTML5 应用的 API。