JAVASCRIPT对象分类(上)
JAVASCRIPT对象分类(上)

JAVASCRIPT对象分类(上)

一、JAVASCRIPT对象分类介绍

1.0、宿主对象(HOST OBJECTS)

由 JavaScript 宿主环境提供的对象,它们的行为完全由宿主环境决定。

1.1、内置对象(BUILT-IN OBJECTS)

由 JavaScript 语言提供的对象。

1.1.0、固有对象(INTRINSIC OBJECTS )

由标准规定,随着 JavaScript 运行时创建而自动创建的对象实例。

1.1.1、原生对象(NATIVE OBJECTS)

可以由用户通过 Array、RegExp 等内置构造器或者特殊语法创建的对象。

1.1.2、普通对象(ORDINARY OBJECTS)

{} 语法、Object 构造器或者 class 关键字定义类创建的对象,它能够被原型继承。

下面winter主要介绍了普通对象之外的对象原型(刚好都是我不太懂的,mark一下)

二、宿主对象

2.0、WINDOW对象

  • 全局对象 window 上的属性,一部分来自 JavaScript 语言,一部分来自浏览器环境
  • 宿主也会提供一些构造器,比如使用 new Image来创建 img 元素

三、内置对象·固有对象

3.0、简单介绍

  • 固有对象在任何 JS 代码执行前就已经被创建出来,类似基础库的角色
  • ECMA 标准为我们提供了一份固有对象表,里面含有 150+ 个固有对象(链接打开比较慢,稍等一下就好)

3.1、小实验:获取全部 JAVASCRIPT 固有对象

3.1.0、三个值

Infinity、NaN、undefined

3.1.1、九个函数

eval、isFinite、isNaN、parseFloat、parseInt、decodeURI decodeURIComponent、encodeURI、encodeURIComponent

3.1.2、一些构造器

Array、Date、RegExp、Promise、Proxy、Map、WeakMap、Set、WeapSet、Function、Boolean、String、Number、Symbol、Object、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError URIError、ArrayBuffer、SharedArrayBuffer、DataView、Typed Array、Float32Array、Float64Array、Int8Array、Int16Array、Int32Array、UInt8Array、UInt16Array、UInt32Array、UInt8ClampedArray

3.1.3、四个用于当作命名空间的对象

Atomics、JSON、Math、Reflect

3.1.4、处理方法

1、winter的做法:使用广度优先搜索,查找这些对象所有的属性和 Getter/Setter,就可以获得 JavaScript 中所有的固有对象。

2、下面代码可以研究一下看看,new Set()不懂的可以看看MDN关于set的介绍,(我现在还没有看明白,我去不同网页打开运行输出set不一样,感觉有点懵逼_(:3」∠)_,理解的大佬可以留言告诉我,不胜感激)

发表回复

您的电子邮箱地址不会被公开。