javascript的内置对象

  • Post author:
  • Post category:java


1.浏览器对象模型

浏览器对象模型,是用来创建浏览器窗口的模型,最顶端是window对象



(1)值属性

这些全局属性返回一个简单值,这些值没有自己的属性和方法

  1. Infinity:全局属性Infinity是一个数值,表示无穷大
  2. NaN:全局属性NaN的值表示不是一个数字,它的类型是Number类型
  3. undefined:全局属性undefined表示原始值undefined,他是js的一个原始数据类型
  4. globalThis:全局属性globalThis包含全局的this值,类似于全局对象(global object)



(2)函数属性



全局函数可以直接调用,不需要在调用时指定所属对象,执行结束后会将结果直接返回给调用者。

  1. eval():eval() 函数会将传入的字符串当做 JavaScript 代码进行执行。
  2. isNaN():isNaN() 函数用来确定一个值是否为NaN 。
  3. parseFloat():parseFloat() 函数解析一个参数(必要时先转换为字符串)并返回一个浮点数。
  4. parseInt():parseInt(string, radix)   解析一个字符串并返回指定基数的十进制整数, radix 是2-36之间的整数,表示被解析字符串的基数。
  5. decodeURI():decodeURI() 函数能解码由encodeURI 创建或其它流程得到的统一资源标识符(URI)。
  6. decodeURIComponent():decodeURIComponent() 方法用于解码由 encodeURIComponent 方法或者其它类似方法编码的部分统一资源标识符(URI)。
  7. encodeURI():encodeURI()  函数通过将特定字符的每个实例替换为一个、两个、三或四转义序列来对统一资源标识符 (URI) 进行编码 (该字符的 UTF-8 编码仅为四转义序列)由两个 “代理” 字符组成)。
  8. encodeURIComponent():encodeURIComponent()函数通过将一个,两个,三个或四个表示字符的UTF-8编码的转义序列替换某些字符的每个实例来编码 URI (对于由两个“代理”字符组成的字符而言,将仅是四个转义序列



(3)基本对象



顾名思义,基本对象是定义或使用其他对象的基础。基本对象包括一般对象、函数对象和错误对象。

  1. Object:Object 构造函数创建一个对象包装器。
  2. Function:每个 JavaScript 函数实际上都是一个 Function 对象。
  3. Boolean:Boolean对象是一个布尔值的对象包装器。
  4. Symbol:symbol 是一种基本数据类型 。



(4)错误对象



错误对象是一种特殊的基本对象。它们拥有基本的 Error 类型,同时也有多种具体的错误类型。

  1. Error:通过Error的构造器可以创建一个错误对象;当运行时错误产生时,Error的实例对象会被抛出;Error对象也可用于用户自定义的异常的基础对象。
  2. AggregateError:AggregateError当多个错误需要包装在一个错误中时,该对象表示一个错误。
  3. EvalError:EvalError对象代表了一个关于eval函数的错误.此异常不再会被JavaScript抛出,但是EvalError对象仍然保持兼容性。
  4. InternalError:表示出现在JavaScript引擎内部的错误。
  5. RangeError:RangeError对象标明一个错误,当一个值不在其所允许的范围或者集合中。
  6. ReferenceError:ReferenceError对象代表当一个不存在的变量被引用时发生的错误。
  7. SyntaxError:SyntaxError 对象代表尝试解析语法上不合法的代码的错误。
  8. TypeError:TypeError对象用来表示值的类型非预期类型时发生的错误。
  9. URIError:URIError 对象用来表示以一种错误的方式使用全局URI处理函数而产生的错误。




(5)数字和日期对象



用来表示数字、日期和执行数学计算的对象。

  1. Number:Number 对象是经过封装的能让你处理数字值的对象;Number对象由Number()构造器创建。
  2. BigInt:BigInt是一种内置对象,它提供了一种方法来表示大于 253 – 1的整数。
  3. Math:Math是一个内置对象,它拥有一些数学常数属性和数学函数方法,但不是一个函数对象。
  4. Date:当创建一个JavaScript Date实例时,该实例呈现时间中的某个时刻。




(6)字符串



用来表示和操作字符串的对象。

  1. String:String 全局对象是一个用于字符串或一个字符序列的构造函数。
  2. RegExp:RegExp 对象用于将文本与一个模式匹配。




(7)可索引的集合对象



这些对象表示按照索引值来排序的数据集合,包括数组和类型数组,以及类数组结构的对象。

  1. Array:Array对象是用于构造数组的全局对象,数组是类似于列表的高阶对象。
  2. Int8Array:Int8Array 类型数组表示二进制补码8位有符号整数的数组,内容初始化为0。
  3. Uint8Array:Uint8Array 数组类型表示一个8位无符号整型数组,创建时内容被初始化为0。
  4. Uint8ClampedArray:Uint8ClampedArray类型化数组表示一个由值固定在0-255区间的8位无符号整型组成的数组。
  5. Int16Array:Int16Array类型数组代表二进制补码16位有符号整数的平台字节序的数组。
  6. Uint16Array:Uint16Array如果需要控制字节顺序,常使用DataView代替,内容被初始化为0。
  7. Int32Array:Int32Array 类型表示在平台顺序字节中一个双补码32位有符号的整型数组。
  8. Uint32Array:Uint32Array 如果需要对字节顺序进行控制,常使用DataView代替,多个中每个元素的初始值都是0。
  9. Float32Array:Float32Array类型数组代表的是平台字节顺序为32位的浮点数类型数组。
  10. Float64Array:Float64Array 类型数组代表的是平台字节顺序为64位的浮点数类型数组。
  11. BigInt64Array:BigInt64Array如果需要控制字节顺序的话,常使用代替DataView,内容0n初始化为。
  12. BigUint64Array: BigUint64Array如果要控制字符顺序,常使用DataView替代,内容初始化为0n。



(8)使用键的集合对象



这些集合对象在存储数据时会使用到键,包括可迭代的Map 和 Set,支持按照插入顺序来迭代元素。

  1. Map:Map 对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者原始值) 都可以作为一个键或一个值。
  2. Set:Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。
  3. WeakMap:WeakMap 对象是一组键/值对的集合,其中的键是弱引用的。其键必须是对象,而值可以是任意的。
  4. WeakSet:WeakSet 对象允许你将弱保持对象存储在一个集合中。




(9)结构化数据



这些对象用来表示和操作结构化的缓冲区数据,或使用 JSON编码的数据。

  1. ArrayBuffer:ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区。
  2. SharedArrayBuffer:SharedArrayBuffer 对象用来表示一个通用的,固定长度的原始二进制数据缓冲区,类似于 ArrayBuffer 对象。
  3. Atomics:Atomics 对象提供了一组静态方法对 SharedArrayBuffer 和  ArrayBuffer 对象进行原子操作。
  4. DataView:DataView 视图是一个可以从 二进制ArrayBuffer 对象中读写多种数值类型的底层接口,使用它时,不用考虑不同平台的字节序问题。
  5. JSON:用于解析 JavaScript Object Notation  (JSON) 的 parse() 方法,以及将对象/值转换为 JSON字符串的 stringify() 方法。



(10)控制抽象对象



控件抽象可以帮助构造代码,尤其是异步代码(例如,不使用深度嵌套的回调)。

  1. Promise:Promise 对象用于表示一个异步操作的最终完成 (或失败)及其结果值。
  2. Generator:生成器对象是由一个 generator function 返回的,并且它符合可迭代协议和迭代器协议。
  3. GeneratorFunction:GeneratorFunction构造器生成新的生成器函数 对象。
  4. AsyncFunction:AsyncFunction 构造函数用来创建新的 异步函数 对象。




(11)反射

  1. Reflect:Reflect 是一个内置的对象,它提供拦截 JavaScript 操作的方法。
  2. Proxy:Proxy 对象用于创建一个对象的代理,从而实现基本操作的拦截和自定义(如属性查找、赋值、枚举、函数调用等)