Heim > Web-Frontend > Front-End-Fragen und Antworten > Was sind die integrierten Objekte in Ecmascript?

Was sind die integrierten Objekte in Ecmascript?

青灯夜游
Freigeben: 2021-12-06 15:23:39
Original
1708 Leute haben es durchsucht

Zu den integrierten Objekten in Ecmascript gehören: globales Objekt, Objektobjekt, Funktionsobjekt, Array-Objekt, String-Objekt, boolesches Objekt, Zahlenobjekt, Mathematikobjekt, Datumsobjekt, RegExp-Objekt, JSON-Objekt und Fehlerobjekt.

Was sind die integrierten Objekte in Ecmascript?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, ECMAScript Version 6, Dell G3-Computer.

ECMAScript definiert eine Reihe integrierter Objekte, die die Definition von ECMAScript-Entitäten skizzieren.

Zu diesen integrierten Objekten gehören:

globales Objekt, Objektobjekt, Funktionsobjekt, Array-Objekt, String-Objekt, boolesches Objekt, Zahlenobjekt, Mathematikobjekt, Datumsobjekt, RegExp-Objekt, JSON-Objekt und Fehlerobjekt: Fehler, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError.

Globales Objekt

Das einzige globale Objekt wird eingerichtet, bevor die Kontrolle in eine Ausführungsumgebung gelangt.

Sofern nicht anders angegeben, haben die integrierten Standardeigenschaften globaler Objekte die Eigenschaften {[[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true}.

Das globale Objekt verfügt nicht über [[Construct]] interne Eigenschaften; das globale Objekt kann nicht als Konstruktor mit dem neuen Operator aufgerufen werden.

Globale Objekte haben keine internen [[Call]]-Eigenschaften und globale Objekte können nicht als Funktionen aufgerufen werden.

Die internen Eigenschaftswerte [[Prototype]] und [[Class]] globaler Objekte sind von der Implementierung abhängig.

Zusätzlich zu den durch diese Spezifikation definierten Eigenschaften können globale Objekte auch zusätzliche vom Host definierte Eigenschaften haben. Ein globales Objekt kann eine Eigenschaft enthalten, deren Wert das globale Objekt selbst ist. Im HTML-Dokumentobjektmodell ist beispielsweise die Fenstereigenschaft des globalen Objekts das globale Objekt selbst.

Object-Objekt

Rufen Sie den Object-Konstruktor als Funktion auf.

Wenn Object als Funktion und nicht als Konstruktor aufgerufen wird, führt es eine Typkonvertierung durch.

Object ( [ value ] )
Nach dem Login kopieren

Wenn Sie die Object-Funktion mit einem Parameterwert oder ohne Parameter aufrufen, führen Sie die folgenden Schritte aus:

  • Wenn der Wert null, undefiniert oder nicht angegeben ist, wird ein neues Object-Objekt erstellt und zurückgegeben. Dieses Objekt ist dasselbe wie if Es wurde mit denselben Parametern aufgerufen. Das Ergebnis des standardmäßig integrierten Objektkonstruktors (15.2.2.1) ist das gleiche.

  • Objektkonstruktor

Als Teil eines neuen Ausdrucksaufrufs erstellt ein Konstruktor ein Objekt.

neues Objekt ([Wert])

Wenn Sie den Objektkonstruktor mit einem Parameterwert oder ohne Parameter aufrufen, führen Sie die folgenden Schritte aus:

Wenn ein Wert angegeben wird, dann, wenn Typ(Wert) Objekt ist Wenn „Wert“ ein natives ECMAScript-Objekt ist, wird kein neues Objekt erstellt, sondern lediglich ein Wert zurückgegeben. Wenn „Wert“ ein Host-Objekt ist, kann das Ausführen von Aktionen und die Rückgabe von Ergebnissen, die von der Implementierung abhängen, das Host-Objekt abhängig machen. ist String, gib ToObject(value) zurück. Wenn Type(value) Number ist, gib ToObject(value) zurück Der Typ ist Null oder Undefiniert.

  • Obj sei ein neu erstelltes natives ECMAScript-Objekt.

  • Setzen Sie die interne Eigenschaft [[Prototype]] von obj auf das Prototypobjekt des integrierten Standardobjekts (15.2.4). ).

  • Set Setzt die interne Eigenschaft [[Class]] von obj auf „Object“.

  • Setzt die interne Eigenschaft [[Extensible]] von obj auf true.

  • Setzt alle angegebenen internen Methoden von obj's 8.12

  • Obj zurückgeben.

  • Funktionsobjekt
Funktionskonstruktor als Funktion aufrufen

Wenn eine Funktion als Funktion und nicht als Konstruktor aufgerufen wird, erstellt sie und initialisiert ein neues Funktionsobjekt. Der Funktionsaufruf Function(…) erstellt also dasselbe Objekt wie der neue Function(…)-Ausdruck mit denselben Parametern.

Function (p1, p2, … , pn, body)
Nach dem Login kopieren
Beim Aufrufen der Function-Funktion mit p1, p2, …, pn, body als Parametern (n kann hier 0 sein, was bedeutet, dass es keinen „p“-Parameter gibt und body zu diesem Zeitpunkt nicht angegeben werden muss), Führen Sie die folgenden Schritte aus:

Erstellt ein neues Funktionsobjekt und gibt es zurück, als ob es mit denselben Argumenten für den standardmäßigen integrierten Konstruktor Function (15.3.2.1) erstellt worden wäre.

Funktionskonstruktor
  • Wenn eine Funktion als Teil eines neuen Ausdrucks aufgerufen wird, handelt es sich um einen Konstruktor: Er initialisiert das neu erstellte Objekt.

    new Function (p1, p2, … , pn, body)
    Nach dem Login kopieren
  • Der letzte Parameter wird als Hauptteil (ausführbarer Code) der Funktion angegeben; alle vorherigen Parameter werden als formale Parameter angegeben.

Wenn Sie den Funktionskonstruktor mit p1, p2, …, pn, body als Parameter aufrufen (n kann hier 0 sein, was bedeutet, dass es keinen „p“-Parameter gibt und body zu diesem Zeitpunkt nicht angegeben werden muss), verwenden Sie die folgenden Schritte:

  • 令 argCount 为传给这个函数调用的参数总数 .

  • 令 P 为空字符串 .

  • 如果 argCount = 0, 令 body 为空字符串 .

  • 否则如果 argCount = 1, 令 body 为那个参数 .

  • 否则 , argCount > 1令 firstArg 为第一个参数 .令 P 为 ToString(firstArg).令 k 为 2.只要 k < argCount 就重复令 nextArg 为第 k 个参数 .令 P 为之前的 P 值,字符串 ","(一个逗号),ToString(nextArg) 串联的结果。k 递增 1.令 body 为第 k 个参数 .

  • 令 body 为 ToString(body).

  • 如果 P 不可解析为一个 FormalParameterListopt,则抛出一个 SyntaxError 异常 .

  • 如果 body 不可解析为 FunctionBody,则抛出一个 SyntaxError 异常 .

  • 如果 body 是严格模式代码 ( 见 10.1.1),则令 strict 为 true, 否则令 strict 为 false.

  • 如果 strict 是 true, 适用 13.1 指定抛出的任何异常 .

  • 返回一个新创建的函数对象,它是依照 13.2 指定 -- 专递 P 作为 FormalParameterList,body 作为 FunctionBody,全局环境作为 Scope 参数,strict 作为严格模式标志 -- 创建的。

每个函数都会自动创建一个 prototype 属性,用来支持函数被当做构造器使用的可能性。

为每个形参指定一个参数是允许的,但没必要。例如以下三个表达式产生相同的结果:

new Function("a", "b", "c", "return a+b+c") new Function("a, b, c", "return a+b+c") new Function("a,b", "c", "return a+b+c")
Nach dem Login kopieren

Array 对象

数组是值的有序集合,数组中的每个值称为一个元素,每个元素在数组中都有一个数字位置,称为索引,索引从 0 开始,依次递增。在 JavaScript 中,您可以使用 Array 对象定义数组,此外,Array 对象中还提供了各种有关数组的属性和方法。

创建 Array 对象的语法格式如下:

var arr = new Array(values);
var arr = Array(values);
Nach dem Login kopieren

其中,values 为数组中各个元素组成的列表,多个元素之间使用逗号分隔。

String 对象

String 对象用于处理字符串,其中提供了大量操作字符串的方法,以及一些属性。

创建 String 对象的语法格式如下:

var val = new String(value);
var val = String(value);
Nach dem Login kopieren

其中参数 value 为要创建的字符串或字符串对象。

JavaScript 中,字符串和字符串对象之间能够自由转换,因此不论是创建字符串对象还是直接声明字符串类型的变量,都可以直接使用字符串对象中提供的方法和属性。

Boolean对象

JavaScript 布尔值可以有以下两个值之一:true 或 false。

作为函数调用布尔构造器

当把 Boolean 作为函数来调用,而不是作为构造器,它执行一个类型转换。

Boolean (value)
Nach dem Login kopieren

返回由 ToBoolean(value) 计算出的布尔值(非布尔对象)。

布尔构造器

当 Boolean 作为 new 表达式的一部分来调用,那么它是一个构造器:它初始化新创建的对象。

new Boolean (value)
Nach dem Login kopieren

新构造对象的 [[Prototype]] 内部属性设定为原始布尔原型对象,它是 Boolean.prototype (15.6.3.1) 的初始值。

新构造对象的 [[Class]] 内部属性设定为 "Boolean"。

新构造对象的 [[PrimitiveValue]] 内部属性设定为 ToBoolean(value)。

新构造对象的 [[Extensible]] 内部属性设定为 true。

Number 对象

在 JavaScript 中您可以使用十进制、十六进制或八进制表示法来表示整数或浮点数。与其它编程语言不同,JavaScript 中的数字并不区分整数和浮点数,统一使用 IEEE754 标准(二进制浮点数算术标准)的 64 位浮点格式表示数字,能表示的最大值(Number.MAX_VALUE)为 ±1.7976931348623157e+308,最小值(Number.MIN_VALUE)为 ±5e-324。示例代码如下:

var x = 123;    // 整数
var y = 3.14;   // 浮点数
var z = 0xff;   // 十六进制数:255
Nach dem Login kopieren

对于比较大的数字可以使用指数表示法来表示,例如 6.02e+23 等于 6.02 x 10²³,示例代码如下:

var x = 1.57e4;     // 等于 15700
var y = 4.25e+6;    // 等于 4250000
var z = 4.25e-6;    // 等于 0.00000425
Nach dem Login kopieren

提示:JavaScript 中能够表示的最大的整数是 2⁵³ - 1,即 9007199254740991,能够表示的最小整数是 -(2⁵³ - 1),即 -9007199254740991。

除了可以使用十进制表示数字外,您也可以使用八进制或十六进制表示法来表示数字,其中八进制表示法使用 0 作为前缀,十六进制表示法使用 0x 作为前缀,示例代码如下:

var a = 0377;     // 等于 255
var b = 0123;     // 等于 83
var c = 0xff;     // 等于 255
var d = 0xb4;     // 等于 180
Nach dem Login kopieren

注意:整数可以用十进制、十六进制和八进制表示法表示,浮点数可以用十进制或指数表示法表示。

Math 对象

Math 是 JavaScript 中的一个内置对象,其中提供了一些数学中常用的常量值和函数,用来实现一些数学中常见计算,例如计算平均数、求绝对值、四舍五入等。

与前面介绍的几个对象(例如 Number 对象、String 对象、Array 对象等)不同,调用 Math 对象中的属性和方法无需预先使用 new 运算符来创建它,直接将 Math 作为对象调用即可,例如:

var pi_val = Math.PI;                 // 数学中 π 的值:3.141592653589793
var abs_val = Math.sin(-5.35);  // -5.35 的绝对值:5.35
Nach dem Login kopieren

Math 对象是拥有一些命名属性的单一对象,其中一些属性值是函数。

Math 对象的 [[Prototype]] 内部属性值是标准内置 Object 原型对象 (15.2.4)。Math 对象的 [[Class]] 内部属性值是 "Math"。

Math 对象没有 [[Construct]] 内部属性 ; Math 对象不能作为构造器被 new 运算符调用。

Math 对象没有 [[Call]] 内部属性;Math 对象不能作为函数被调用。

Date 对象

Date 对象是 JavaScript 内置的对象,通过它您可以访问计算机系统的时间,此外,Date 对象中还提供了多种用于管理、操作和格式化时间/日期的方法。

RegExp ( 正则表达式 ) 对象

一个 RegExp 对象包含一个正则表达式和关联的标志。

正则表达式的格式和功能是以 Perl 5 程序语言的正则表达式设施为蓝本的。

JavaScript 字符串是在编程中使用最多的一种数据类型,很多地方都需要对字符串进行操作,例如判断一个字符串是否为一个合法的 E-mail 地址、从字符串截取指定的部分等。

正则表达式是一种用于匹配字符串或特殊字符的一种逻辑公式,所谓逻辑公式就是由一些特定字符组合成的,用来表示某些规则的特殊字符串,可以表达对字符串数据的过滤逻辑。

在 JavaScript 中需要借助 RegExp 对象来使用正则表达式,要创建 RegExp 对象有两种方法,如下所示:

var patt = new RegExp(pattern, modifiers);
var patt = /pattern/modifiers;
Nach dem Login kopieren

参数说明如下:

  • pattern:正则表达式,按照正则表达式的语法定义的正则表达式;

  • modifiers:修饰符,用来设置字符串的匹配模式。

JSON 对象

JSON 对象是一个单一的对象,它包含两个函数,parse 和 stringify,是用于解析和构造 JSON 文本的。JSON 数据的交换格式在 RFC4627 里进行了描述。 。本规范里面的 JSON 交换格式会使用 RFC4627 里所描述的,以下两点除外:

  • ECMAScript JSON 文法中的顶级 JSONText 产生式是由 JSONValue 构成,而不是 RFC4627 中限制成的 JSONObject 或者 JSONArray。

  • 确认 JSON.parse 和 JSON.stringify 的实现,它们必须准确的支持本规范描述的交换格式,而不允许对格式进行删除或扩展。这一点要区别于 RFC4627,它允许 JSON 解析器接受 non-JSON 的格式和扩展。

 JSON 对象内部属性 [[Prototype]] 的值是标准内建的 Object 原型对象(15.2.4)。内部属性 [[Class]] 的值是“JSON”。内部属性 [[Extensible]] 的值设置为 true。

 JSON 对象没有内部属性 [[Construct]];不能把 JSON 对象当作构造器来使用 new 操作符。

 JSON 对象没有内部属性 [[Call]]; 不能把 JSON 对象当作函数来调用。

Error 对象

Error对象的实例在运行时遇到错误的情况下会被当做异常抛出。Error对象也可以作为用户自定义异常类的基对象。

【相关推荐:javascript学习教程

Das obige ist der detaillierte Inhalt vonWas sind die integrierten Objekte in Ecmascript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage