JavaScript对象相关笔记

原生对象

ECMA-262本地对象(native object)定义为 “ 独立于宿主环境的 ECMAScript 实现提供的对象”

“ 本地对象 ” 包含哪些内容:

Object、Function、Array、String、Boolean、Number、 Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、 URIError

由此可以看出,本地对象就是 ECMA-262 定义的类(引用类型)


内置对象

ECMA-262 把内置对象( built-in object )定义为“由 ECMAScript 实现提供的、独立于宿主环境的所有对象,在 ECMAScript 程序开始执行时出现”。

这意味着开发者不必明 确实例化内置对象,它已被实例化了

同样是“独立于宿主环境”。

根据定义我们似乎很难分清“内置对象”与“本地对象”的 区别。

而ECMA-262 只定义了两个内置对象,即 Global 和 Math( 它们也是本地对象, 根据定义,每个内置对象都是本地对象 )。如此就可以理解了。

**内置对象是本地对象的一种 **


宿主对象

何为 “ 宿主对象 ” ?

主要在这个“宿主”的概念上,ECMAScript 中的 “ 宿主 ” 当然就是我 们网页的运行环境 ,即 “ 操作系统 ” 和 “ 浏览器 ”

所有非本地对象都是宿主对象(host object),即由 ECMAScript 实现的宿主环境提供 的对象 。

所有的 BOM 和 DOM 都是宿主对象。因为其对于不同的 “ 宿主 ” 环境所展示的内容不同 。

其实说白了就是,ECMAScript 官方未定义的对象都属于宿主对象,因为其未定 义的对象大多数是自己通过 ECMAScript 程序创建的对象

2

对象

JavaScript 中有八种数据类型。

有七种原始类型,因为它们的值只包含一种东西(字符串,数字或者其他)。

相反,对象则用来存储键值对和更复杂的实体。

对象是具有一些特殊特性的关联数组。

“普通对象(plain object)”,或者就叫对象。

JavaScript 中还有很多其他类型的对象:

  • Array 用于存储有序数据集合,
  • Date 用于存储时间日期,
  • Error 用于存储错误信息。
  • ……等等。

“Array 类型”或“Date 类型”,但其实它们并不是自身所属的类型,而是属于一个对象类型即 “object”。它们以不同的方式对 “object” 做了一些扩展。

3

对象 (object)

对象类型的成员。

注:对象是属性的集合,并有一个原型对象。原型可以是空值。


原生对象

(native object)

ECMAScript 实现中,并非由宿主环境,而是完全由本规范定义其语义的对象。

注:标准的原生对象由本规范定义。一些原生对象是内置的,其他的可在 ECMAScript 程序执行过程中构建。


内置对象

(built-in object)

由 ECMAScript 实现提供,独立于宿主环境的对象,ECMAScript 程序开始执行时就存在。

注:标准的内置对象由本规范定义,ECMAScript 实现可以指定和定义其他的。所有内置对象是原生对象。一个内置构造器 (built-in constructor) 是个内置对象,也是个构造器。


宿主对象

(host object)

由宿主环境提供的对象,用于完善 ECMAScript 执行环境。

注:任何对象,不是原生对象就是宿主对象。


4

Native Object

JavaScript语言提供的不依赖于执行宿主的对象,其中一些是内建对象,如:Global、Math;一些是在脚本运行环境中创建来使用的,如:Array、Boolean、Date、Function、Number、Object、RegExp、Error。


Build-in Object

JavaScript语言提供的不依赖于执行宿主的内建对象,如:Global、Math;内建对象都是Native Object。


Host Object

JavaScript语言提供的任何依赖于宿主环境的对象,所有非Native Object的对象都是宿主对象,如:IE中的window,WScript中的wscript实例,任何用户创建的类。


5

JavaScript 标准内置对象或称全局的对象(global objects)

不要和 全局对象(global object)混淆。

这里说的全局的对象是说在全局作用域里的对象全局作用域包含了全局对象的属性,还有它可能继承来的属性。

JavaScript 标准内置对象的分类:

\1. 值属性(Infinity、NaN、undefined、null 字面量、globalThis)这些全局属性返回一个简单值,而且这些值没有自己的属性和方法。

\2. 函数属性(eval()、uneval() 、isFinite()、isNaN()、parseFloat()、parseInt()、decodeURI()、decodeURIComponent()、encodeURI()、encodeURIComponent()、escape() 、unescape())全局函数可以直接调用,不需要在调用时指定所属对象,执行结束后会将结果直接返回给调用者。

\3. 基本对象(Object、Function、Boolean、Symbol、Error、EvalError、InternalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError)基本对象是定义或使用其他对象的基础。基本对象包括一般对象、函数对象和错误对象。

\4. 数字、数学和日期对象(Number、BigInt、Math、Date)用来表示数字、执行数学计算和日期的对象。

\5. 字符串和正则式对象(String、RegExp)用来表示和操作字符串的对象。

\6. 可索引的数组对象(Array、Int8Array、Uint8Array、Uint8ClampedArray、Int16Array、Uint16Array、Int32Array、Uint32Array、Float32Array、Float64Array、BigInt64Array、BigUint64Array)这些对象表示按照索引值来排序的数据集合,包括数组和类型数组,以及类数组结构的对象。

\7. 使用键的集合对象(Map、Set、WeakMap、WeakSet)这些集合对象在存储数据时会使用到键,支持按照插入顺序来迭代元素。

\8. 构化数据(ArrayBuffer、SharedArrayBuffer 、Atomics 、DataView、JSON)这些对象用来表示和操作结构化的缓冲区数据,或使用 JSON (JavaScript Object Notation)编码的数据。

\9. 控制抽象对象(Promise、Generator、GeneratorFunction、AsyncFunction )

\10. 反射(Reflect、Proxy)

\11. 国际化(Intl、Intl.Collator、Intl.DateTimeFormat、Intl.ListFormat、Intl.NumberFormat、Intl.PluralRules、Intl.RelativeTimeFormat、Intl.Locale)为了支持多语言处理而加入ECMAScript的对象。

\12. WebAssembly(WebAssembly、WebAssembly.Module、WebAssembly.Instance、WebAssembly.Memory、WebAssembly.Table、WebAssembly.CompileError、WebAssembly.LinkError、WebAssembly.RuntimeError)

\13. 其他(arguments)

6

编程语言中预先定义的函数。

具体:嵌入到主调函数中的函数称为内置函数,又称内嵌函数。 作用是提高程序的执行效率,大多编程语言都有自己的内置函数,如javascript内置函数等。 内置函数的存在极大的提升了程序员的效率和程序的阅读。

部分网页 :

MDN-JavaScript标准内置对象

MDN-对象模型

MDN-对象

MDN-带键的集合

MDN-全局对象

ECMAScript Standard Built-in Objects

JavaScript Built-in Functions

Standard built-in objects in JavaScript

JavaScript reference

Standard built-in methods to work with Arrays

Built-in Methods in Javascript

Use built-in JavaScript objects in Office Scripts

ECMA-262, 11th edition, June 2020 ECMAScript® 2020 Language Specification

https://blog.bitsrc.io/discovering-javascript-three-objects-new-developers-must-know-fade54355383

JavaScript static code analysis

Node.js v16.6.1 documentation

标准对象分类Value Properties

https://www.w3schools.com/js/js_object_definition.asp

https://medium.com/nerd-for-tech/understanding-objects-and-prototypes-in-javascript-d847baa50f9a

The Modern JavaScript Tutorial

JS Functions Are Objects

ECMAScript2020言語仕様 私的日本語訳

Using JavaScript’s built-in objects

Explain built-in objects of JavaScript.

JavaScript Built-in Objects

https://ithelp.ithome.com.tw/m/articles/10193146

JavaScript Built-in Objects

ASP Built-in Objects

What is a built in object in Javascript?

Built-in objects and functions

Built –In Objects - JavaScript (JS)

Using Built-in JavaScript Code with JavaScript Objects

Frameork Built-in Objects

https://www.quora.com/What-are-built-in-objects-in-python

https://medium.com/nerd-for-tech/understanding-objects-and-prototypes-in-javascript-d847baa50f9a

Built in objects in javascript

FAQ: Advanced Objects - Built-in Object Methods

builtins: Returns the Names of All Built-in Objects

Returns the Names of All Built-in Objects

List of Built-In Routines

http://google.com/search?sa=N&q=What+are+built-in+objects%3F&ved=2ahUKEwjGnMzGx5nyAhXDdd4KHajuDgEQzmd6BAgpEAU&biw=360&bih=640&dpr=3#ip=1

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!

You Found Me.

支付宝
微信