首頁 >web前端 >前端問答 >ecmascript內建物件有哪些

ecmascript內建物件有哪些

青灯夜游
青灯夜游原創
2021-12-06 15:23:391713瀏覽

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