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

ecmascript內建物件有哪些

Dec 06, 2021 pm 03:23 PM
ecmascript 內建對象

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 < 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 10²³,示例代码如下:

var x = 1.57e4;     // 等于 15700
var y = 4.25e+6;    // 等于 4250000
var z = 4.25e-6;    // 等于 0.00000425
登入後複製

提示:JavaScript 中能够表示的最大的整数是 2⁵³ - 1,即 9007199254740991,能够表示的最小整数是 -(2⁵³ - 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 里进行了描述。 。本规范里面的 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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

es2017是es6還是es8 es2017是es6還是es8 Oct 27, 2022 pm 05:37 PM

es2017是es8。 es全名為“ECMAScript”,是根據ECMA-262標準實現的通用腳本語言,而由2017年6月正式發布的版本,其正式名為ECMAScript2017(ES2017),因其是ECMAScript的第8個版本,因此可簡稱為es8。

一文快速詳解ES6~ES12的全部特性! 一文快速詳解ES6~ES12的全部特性! Jul 22, 2022 am 11:06 AM

這篇文章跟大家整理分享ECMAScript特性,帶大家花一個小時,快速了解ES6~ES12的全部特性。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

學習使用常見的PHP內建物件:掌握內建物件的操作與用法 學習使用常見的PHP內建物件:掌握內建物件的操作與用法 Jan 10, 2024 am 10:02 AM

掌握PHP內建物件:學習常用內建物件的操作和用法,需要具體程式碼範例PHP作為一種廣泛應用的後端開發語言,它提供了許多強大的內建對象,可以幫助我們有效率地開發和管理網站。掌握這些內建物件的操作和用法對於PHP開發者來說是至關重要的。本文將介紹一些常用的PHP內建對象,並提供具體的程式碼範例。一、字串處理物件(String)字串處理在Web開發中常用到,PHP

Python內建物件都有哪些 Python內建物件都有哪些 Nov 08, 2023 am 10:19 AM

Python內建物件有「int」、「float」、「str」、「list」、「tuple」、「dict」、「set」、「bool」、「NoneType」和「function」等十種:1、int ,用於表示整數值;2、float,用於表示實數值;3、str,用於表示文字資料;4、list,用於儲存一系列有序的元素;5、tuple,元組類型;6 、dict,用於儲存鍵值對的資料結構等。

asp內建物件有哪些 asp內建物件有哪些 Nov 09, 2023 am 11:32 AM

asp內建物件有Request、Response、Session、Application、Server、Session.Contents、Application.Contents、Server.CreateObject、Server.MapPath、Server.Execute、Server.Transfer等。詳細介紹:1、Request:表示HTTP請求物件等等。

vue內建物件有哪些 vue內建物件有哪些 Nov 08, 2023 pm 04:52 PM

vue內建物件有Vue、Vue實例、data、el、options、parent、root、children、slots、scopedSlots、refs、isServer、attrs和listeners。 Vue.js是一個用來建立使用者介面的漸進式JavaScript框架。在Vue.js中,有一些內建物件或全域API,這些物件和API可以用於建立和管理Vue應用程式。

nodejs 有哪些內建對象 nodejs 有哪些內建對象 Nov 07, 2023 pm 03:33 PM

nodejs內建物件有Global、Process、Buffer、Console、Timer、EventEmitter、Stream、File System、HTTP、URL、Query String、Crypto、Path、OS等。詳細介紹:1、Global:全域對象,類似瀏覽器環境中的window對象,可以在任何地方存取;2、Process等等。

什麼是jsp內建對象 什麼是jsp內建對象 Nov 03, 2023 pm 02:36 PM

jsp內建物件是指jsp中的一些預先定義的物件。可以直接在頁面中使用,這些內建物件提供了許多有用的功能和屬性,使得開發者可以更輕鬆地處理和操作資料。 JSP中常見的內建物件有request物件、response物件、out物件、session物件、application物件、config物件、pageContext物件、exception物件等等。

See all articles