首页 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.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前 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请求对象等等。

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等等。

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应用程序。

什么是内置对象 什么是内置对象 Nov 13, 2023 am 10:40 AM

内置对象通常是指编程语言本身提供的、具有特定功能和属性的对象,这些对象通常是该编程语言的一部分,不需要额外导入或加载,就可以直接在代码中使用,通过使用内置对象,开发者能够方便地进行各种操作,并且这些对象在不同的程序中都具有相同的行为。

See all articles