ホームページ  >  記事  >  ウェブフロントエンド  >  ecmascript の組み込みオブジェクトとは何ですか?

ecmascript の組み込みオブジェクトとは何ですか?

青灯夜游
青灯夜游オリジナル
2021-12-06 15:23:391671ブラウズ

ecmascript の組み込みオブジェクトには、グローバル オブジェクト、Object オブジェクト、Function オブジェクト、Array オブジェクト、String オブジェクト、Boolean オブジェクト、Number オブジェクト、Math オブジェクト、Date オブジェクト、RegExp オブジェクト、JSON オブジェクト、Error が含まれます。物体。

ecmascript の組み込みオブジェクトとは何ですか?

このチュートリアルの動作環境: Windows 7 システム、ECMAScript バージョン 6、Dell G3 コンピューター。

ECMAScript は、ECMAScript エンティティの定義の概要を示す一連の組み込みオブジェクトを定義します。

これらの組み込みオブジェクトには次のものが含まれます:

Global オブジェクト、Object オブジェクト、Function オブジェクト、Array オブジェクト、String オブジェクト、Boolean オブジェクト、Number オブジェクト、Math オブジェクト、Date オブジェクト、RegExp オブジェクト、JSONオブジェクト、および Error オブジェクト: Error 、 EvalError 、 RangeError 、 ReferenceError 、 SyntaxError 、 TypeError 、 URIError 。

グローバル オブジェクト

コントロールが実行環境に入る前に、唯一のグローバル オブジェクトが作成されます。

特に指定しない限り、グローバル オブジェクトの標準組み込みプロパティには、プロパティ {[[Writable]]: true、[[Enumerable]]: false、[[Configurable]]: true} があります。

グローバル オブジェクトには [[Construct]] 内部プロパティがありません。new 演算子を使用してグローバル オブジェクトをコンストラクターとして呼び出すことはできません。

グローバル オブジェクトには [[Call]] 内部プロパティがないため、グローバル オブジェクトを関数として呼び出すことはできません。

グローバル オブジェクトの [[Prototype]] および [[Class]] の内部プロパティ値は実装に依存します。

この仕様で定義されたプロパティに加えて、グローバル オブジェクトは追加のホスト定義プロパティを持つこともできます。グローバル オブジェクトには、値がグローバル オブジェクト自体であるプロパティを含めることができます。たとえば、HTML ドキュメント オブジェクト モデルでは、グローバル オブジェクトの window プロパティはグローバル オブジェクト自体です。

Object オブジェクト

オブジェクト コンストラクターを関数として呼び出す

オブジェクトを関数として扱うコンストラクターの代わりに呼び出すと、型変換が実行されます。

Object ( [ value ] )

パラメーター値を指定してオブジェクト関数を呼び出す場合、またはパラメーターを指定せずにオブジェクト関数を呼び出す場合は、次の手順を実行します。

  • 値が null、未定義、または指定されていない場合は、新しい Object オブジェクト。これは、同じパラメータを使用して標準の組み込み Object コンストラクター (15.2.2.1) を呼び出した結果と同じです。

  • Return ToObject(value).

オブジェクト コンストラクター

Object が新しい式呼び出しの一部である場合、それはオブジェクトを作成するコンストラクターです。

new Object ( [ value ] )

パラメーター値を指定して、またはパラメーターを指定せずに Object コンストラクターを呼び出す場合は、次の手順を実行します。

  • 値が指定されている場合、Type(値) が Object の場合、値がネイティブ ECMAScript オブジェクトの場合、新しいオブジェクトは作成されず、値が単純に返されます。値がホスト オブジェクトの場合、アクションが実行されます。実装に依存 結果のメソッドはホスト オブジェクトに依存する可能性があります。Type(value) が String の場合、ToObject(value) を返します。Type(value) が Boolean の場合、ToObject(value) を返します。Type(value) が の場合、ToObject(value) を返します。数値、ToObject( 値) を返します。

  • アサーション: パラメーター値が指定されていないか、その型が Null または未定義です。

  • Let obj新しく作成されたネイティブ ECMAScript オブジェクトであること。

  • #obj の [[Prototype]] 内部プロパティを標準の組み込みオブジェクト プロトタイプ オブジェクト (15.2.4) に設定します。

  • obj の [[Class]] 内部プロパティを "Object" に設定します。

  • obj の [[Extensible]] 内部プロパティを true に設定します。

  • obj の 8.12 で指定されたすべての内部メソッドを設定します。

  • Return obj.

#Function オブジェクト

Function コンストラクターを関数として呼び出す

Function がコンストラクターではなく関数として呼び出される場合、 New 関数オブジェクトを作成して初期化します。したがって、関数呼び出し Function(…) は、同じパラメーターを持つ新しい Function(…) 式と同じオブジェクトを作成します。

Function (p1, p2, … , pn, body)

p1、p2、…、pn、本体をパラメーターとして使用して Function 関数を呼び出す場合 (ここでの n は 0 にすることができます。つまり、「p」パラメーターはなく、本体には必要ありません)現時点で提供される) を使用するには、次の手順を使用します。

  • 標準の組み込みコンストラクター関数に対して同じパラメーターを使用して作成されたかのように、新しい関数オブジェクトを作成して返します。 (15.3.2.1) 新しい表現を使用します。

関数コンストラクター

関数が新しい式の一部として呼び出される場合、それはコンストラクターです。新しく作成されたオブジェクトを初期化します。

new Function (p1, p2, … , pn, body)

最後のパラメータは関数の本体 (実行可能コード) として指定され、それ以前のパラメータは仮パラメータとして指定されます。

p1、p2、…、pn、body をパラメーターとして使用して Function コンストラクターを呼び出す場合 (ここでの n は 0 にすることができます。これは、「p」パラメーターがないことを意味し、ここで body を指定する必要はありません)時間)、次の手順を使用します:

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

  • 令 P 为空字符串 .

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

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

  • 否则 , argCount > 1令 firstArg 为第一个参数 .令 P 为 ToString(firstArg).令 k 为 2.只要 k 6c90cc38f36b104708bb7b8442e952f5。本规范里面的 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学习教程

以上がecmascript の組み込みオブジェクトとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。