ecmascript中内置对象有:全局对象、Object对象、Function对象、Array对象、String对象、Boolean对象、Number对象、Math对象、Date对象、RegExp对象、JSON对象、Error对象。
本教程操作环境: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中文网其他相关文章!