目录
浏览器对象模型
浏览器对象模型,是用来创建浏览器窗口的模型,最顶端是window对象
(1)值属性
这些全局属性返回一个简单值,这些值没有自己的属性和方法
- Infinity:全局属性Infinity是一个数值,表示无穷大
- NaN:全局属性NaN的值表示不是一个数字,它的类型是Number类型
- undefined:全局属性undefined表示原始值undefined,他是js的一个原始数据类型
- globalThis:全局属性globalThis包含全局的this值,类似于全局对象(global object)
(2)函数属性
全局函数可以直接调用,不需要在调用时指定所属对象,执行结束后会将结果直接返回给调用者。
- eval():eval() 函数会将传入的字符串当做 JavaScript 代码进行执行。
- isNaN():isNaN() 函数用来确定一个值是否为NaN 。
- parseFloat():parseFloat() 函数解析一个参数(必要时先转换为字符串)并返回一个浮点数。
- parseInt():parseInt(string, radix) 解析一个字符串并返回指定基数的十进制整数, radix 是2-36之间的整数,表示被解析字符串的基数。
- decodeURI():decodeURI() 函数能解码由encodeURI 创建或其它流程得到的统一资源标识符(URI)。
- decodeURIComponent():decodeURIComponent() 方法用于解码由 encodeURIComponent 方法或者其它类似方法编码的部分统一资源标识符(URI)。
- encodeURI():encodeURI() 函数通过将特定字符的每个实例替换为一个、两个、三或四转义序列来对统一资源标识符 (URI) 进行编码 (该字符的 UTF-8 编码仅为四转义序列)由两个 "代理" 字符组成)。
- encodeURIComponent():encodeURIComponent()函数通过将一个,两个,三个或四个表示字符的UTF-8编码的转义序列替换某些字符的每个实例来编码 URI (对于由两个“代理”字符组成的字符而言,将仅是四个转义序列
(3)基本对象
顾名思义,基本对象是定义或使用其他对象的基础。基本对象包括一般对象、函数对象和错误对象。
- Object:Object 构造函数创建一个对象包装器。
- Function:每个 JavaScript 函数实际上都是一个 Function 对象。
- Boolean:Boolean对象是一个布尔值的对象包装器。
- Symbol:symbol 是一种基本数据类型 。
(4)错误对象
错误对象是一种特殊的基本对象。它们拥有基本的 Error 类型,同时也有多种具体的错误类型。
- Error:通过Error的构造器可以创建一个错误对象;当运行时错误产生时,Error的实例对象会被抛出;Error对象也可用于用户自定义的异常的基础对象。
- AggregateError:AggregateError当多个错误需要包装在一个错误中时,该对象表示一个错误。
- EvalError:EvalError对象代表了一个关于eval函数的错误.此异常不再会被JavaScript抛出,但是EvalError对象仍然保持兼容性。
- InternalError:表示出现在JavaScript引擎内部的错误。
- RangeError:RangeError对象标明一个错误,当一个值不在其所允许的范围或者集合中。
- ReferenceError:ReferenceError对象代表当一个不存在的变量被引用时发生的错误。
- SyntaxError:SyntaxError 对象代表尝试解析语法上不合法的代码的错误。
- TypeError:TypeError对象用来表示值的类型非预期类型时发生的错误。
- URIError:URIError 对象用来表示以一种错误的方式使用全局URI处理函数而产生的错误。
(5)数字和日期对象
用来表示数字、日期和执行数学计算的对象。
- Number:Number 对象是经过封装的能让你处理数字值的对象;Number对象由Number()构造器创建。
- BigInt:BigInt是一种内置对象,它提供了一种方法来表示大于 253 - 1的整数。
- Math:Math是一个内置对象,它拥有一些数学常数属性和数学函数方法,但不是一个函数对象。
- Date:当创建一个JavaScript Date实例时,该实例呈现时间中的某个时刻。
(6)字符串
用来表示和操作字符串的对象。
- String:String 全局对象是一个用于字符串或一个字符序列的构造函数。
- RegExp:RegExp 对象用于将文本与一个模式匹配。
(7)可索引的集合对象
这些对象表示按照索引值来排序的数据集合,包括数组和类型数组,以及类数组结构的对象。
- Array:Array对象是用于构造数组的全局对象,数组是类似于列表的高阶对象。
- Int8Array:Int8Array 类型数组表示二进制补码8位有符号整数的数组,内容初始化为0。
- Uint8Array:Uint8Array 数组类型表示一个8位无符号整型数组,创建时内容被初始化为0。
- Uint8ClampedArray:Uint8ClampedArray类型化数组表示一个由值固定在0-255区间的8位无符号整型组成的数组。
- Int16Array:Int16Array类型数组代表二进制补码16位有符号整数的平台字节序的数组。
- Uint16Array:Uint16Array如果需要控制字节顺序,常使用DataView代替,内容被初始化为0。
- Int32Array:Int32Array 类型表示在平台顺序字节中一个双补码32位有符号的整型数组。
- Uint32Array:Uint32Array 如果需要对字节顺序进行控制,常使用DataView代替,多个中每个元素的初始值都是0。
- Float32Array:Float32Array类型数组代表的是平台字节顺序为32位的浮点数类型数组。
- Float64Array:Float64Array 类型数组代表的是平台字节顺序为64位的浮点数类型数组。
- BigInt64Array:BigInt64Array如果需要控制字节顺序的话,常使用代替DataView,内容0n初始化为。
- BigUint64Array: BigUint64Array如果要控制字符顺序,常使用DataView替代,内容初始化为0n。
(8)使用键的集合对象
这些集合对象在存储数据时会使用到键,包括可迭代的Map 和 Set,支持按照插入顺序来迭代元素。
- Map:Map 对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者原始值) 都可以作为一个键或一个值。
- Set:Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。
- WeakMap:WeakMap 对象是一组键/值对的集合,其中的键是弱引用的。其键必须是对象,而值可以是任意的。
- WeakSet:WeakSet 对象允许你将弱保持对象存储在一个集合中。
(9)结构化数据
这些对象用来表示和操作结构化的缓冲区数据,或使用 JSON编码的数据。
- ArrayBuffer:ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区。
- SharedArrayBuffer:SharedArrayBuffer 对象用来表示一个通用的,固定长度的原始二进制数据缓冲区,类似于 ArrayBuffer 对象。
- Atomics:Atomics 对象提供了一组静态方法对 SharedArrayBuffer 和 ArrayBuffer 对象进行原子操作。
- DataView:DataView 视图是一个可以从 二进制ArrayBuffer 对象中读写多种数值类型的底层接口,使用它时,不用考虑不同平台的字节序问题。
- JSON:用于解析 JavaScript Object Notation (JSON) 的 parse() 方法,以及将对象/值转换为 JSON字符串的 stringify() 方法。
(10)控制抽象对象
控件抽象可以帮助构造代码,尤其是异步代码(例如,不使用深度嵌套的回调)。
- Promise:Promise 对象用于表示一个异步操作的最终完成 (或失败)及其结果值。
- Generator:生成器对象是由一个 generator function 返回的,并且它符合可迭代协议和迭代器协议。
- GeneratorFunction:GeneratorFunction构造器生成新的生成器函数 对象。
- AsyncFunction:AsyncFunction 构造函数用来创建新的 异步函数 对象。
(11)反射
- Reflect:Reflect 是一个内置的对象,它提供拦截 JavaScript 操作的方法。
- Proxy:Proxy 对象用于创建一个对象的代理,从而实现基本操作的拦截和自定义(如属性查找、赋值、枚举、函数调用等)