首页 >web前端 >前端问答 >ecmascript中内置对象有哪些

ecmascript中内置对象有哪些

青灯夜游
青灯夜游原创
2021-12-06 15:23:391701浏览

ecmascript中内置对象有:全局对象、Object对象、Function对象、Array对象、String对象、Boolean对象、Number对象、Math对象、Date对象、RegExp对象、JSON对象、Error对象。

ecmascript中内置对象有哪些

本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

ECMAScript 定义一组内置对象 (built-in objects),勾勒出 ECMAScript 实体 的定义。

这些内置对象包括:

全局对象 (global object) ,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 构造器

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

Object ( [ value ] )

 当以一个参数 value 或者无参数调用 Object 函数,采用如下步骤:

  • 如果 value 是 null, undefined 或未指定,则创建并返回一个新 Object 对象 , 这个对象与仿佛用相同参数调用标准内置的 Object 构造器 (15.2.2.1) 的结果一样 .

  • 返回 ToObject(value).

Object 构造器

 当 Object 是 new 表达式调用的一部分时,它是一个构造器,可创建一个对象。

new Object ( [ value ] )

 当以一个参数 value 或者无参数调用 Object 构造器,采用如下步骤:

  • 如果提供了 value, 则如果 Type(value) 是 Object, 则如果 value 是个原生 ECMAScript 对象 , 不创建新对象,简单的返回 value.如果 value 是宿主对象 , 则采取动作和返回依赖实现的结果的方式可以使依赖于宿主对象的 .如果 Type(value) 是 String, 返回 ToObject(value).如果 Type(value) 是 Boolean, 返回 ToObject(value).如果 Type(value) 是 Number, 返回 ToObject(value).

  • 断言 : 未提供参数 value 或其类型是 Null 或 Undefined.

  • 令 obj 为一个新创建的原生 ECMAScript 对象 .

  • 设定 obj 的 [[Prototype]] 内部属性为标准内置的 Object 的 prototype 对象 (15.2.4).

  • 设定 obj 的 [[Class]] 内部属性为 "Object".

  • 设定 obj 的 [[Extensible]] 内部属性为 true.

  • 设定 obj 的 8.12 指定的所有内部方法

  • 返回 obj.

Function 对象

作为函数调用 Function 构造器

 当将 Function 作为函数来调用,而不是作为构造器,它会创建并初始化一个新函数对象。所以函数调用 Function(…) 与用相同参数的 new Function(…) 表达式创建的对象相同。

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

 当以 p1, p2, … , pn, body 作为参数调用 Function 函数(这里的 n 可以是 0,也就是说没有“p”参数,这时还可以不提供 body),采用如下步骤:

  • 创建并返回一个新函数对象,它仿佛是用相同参数给标准内置构造器 Function (15.3.2.1). 用一个 new 表达式创建的。

Function 构造器

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

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

 最后一个参数指定为函数的 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn