91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ecmascript中有什么內置對象

發布時間:2021-12-06 15:38:26 來源:億速云 閱讀:149 作者:小新 欄目:web開發

小編給大家分享一下ecmascript中有什么內置對象,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

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 < 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")

Array 對象

數組是值的有序集合,數組中的每個值稱為一個元素,每個元素在數組中都有一個數字位置,稱為索引,索引從 0 開始,依次遞增。在 JavaScript 中,您可以使用 Array 對象定義數組,此外,Array 對象中還提供了各種有關數組的屬性和方法。

創建 Array 對象的語法格式如下:

var arr = new Array(values);
var arr = Array(values);

其中,values 為數組中各個元素組成的列表,多個元素之間使用逗號分隔。

String 對象

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

創建 String 對象的語法格式如下:

var val = new String(value);
var val = String(value);

其中參數 value 為要創建的字符串或字符串對象。

JavaScript 中,字符串和字符串對象之間能夠自由轉換,因此不論是創建字符串對象還是直接聲明字符串類型的變量,都可以直接使用字符串對象中提供的方法和屬性。

Boolean對象

JavaScript 布爾值可以有以下兩個值之一:true 或 false。

作為函數調用布爾構造器

當把 Boolean 作為函數來調用,而不是作為構造器,它執行一個類型轉換。

Boolean (value)

返回由 ToBoolean(value) 計算出的布爾值(非布爾對象)。

布爾構造器

當 Boolean 作為 new 表達式的一部分來調用,那么它是一個構造器:它初始化新創建的對象。

new Boolean (value)

新構造對象的 [[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

對于比較大的數字可以使用指數表示法來表示,例如 6.02e+23 等于 6.02 x 1023,示例代碼如下:

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

提示:JavaScript 中能夠表示的最大的整數是 2?3 - 1,即 9007199254740991,能夠表示的最小整數是 -(2?3 - 1),即 -9007199254740991。

除了可以使用十進制表示數字外,您也可以使用八進制或十六進制表示法來表示數字,其中八進制表示法使用 0 作為前綴,十六進制表示法使用 0x 作為前綴,示例代碼如下:

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

注意:整數可以用十進制、十六進制和八進制表示法表示,浮點數可以用十進制或指數表示法表示。

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

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;

參數說明如下:

  • pattern:正則表達式,按照正則表達式的語法定義的正則表達式;

  • modifiers:修飾符,用來設置字符串的匹配模式。

JSON 對象

JSON 對象是一個單一的對象,它包含兩個函數,parse 和 stringify,是用于解析和構造 JSON 文本的。JSON 數據的交換格式在 RFC4627 里進行了描述。 <http://www.ietf.org/rfc/rfc4627.txt>。本規范里面的 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對象也可以作為用戶自定義異常類的基對象。

以上是“ecmascript中有什么內置對象”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

濮阳县| 荆州市| 镇赉县| 楚雄市| 重庆市| 仙桃市| 临潭县| 信阳市| 关岭| 汝城县| 连南| 南乐县| 炉霍县| 秦安县| 光泽县| 稻城县| 砚山县| 高台县| 南投市| 昭苏县| 商洛市| 拉萨市| 化州市| 九江县| 乌拉特后旗| 新源县| 台山市| 德江县| 舒城县| 宣武区| 韩城市| 砀山县| 五指山市| 连平县| 布尔津县| 正安县| 融水| 涟水县| 夏河县| 涞水县| 潢川县|