Global 对象属性和方法

Global 

 

在 JavaScript 中什么是全局对象?

  • 简单来说,在 JavaScript 中,有那么一个对象,它的所有属性可以在程序中的任何地方调用、访问,并且所有在全局创建的变量常量都会绑定在这个对象上,那么这一个对象就是全局对象。
  • 全局对象只是一个对象,它不是类,它没有构造函数,也无法实例化一个新的全局对象,在一个程序中有且只有一个全局对象
  • 真实的全局对象是不可以被直接访问的,通过关键字可以引用全局对象,被引用的是全局对象的代理,虽然真实全局对象和全局对象代理有所区别,但在平时使用中,可以直接把引用的全局对象代理当作真实的全局对象使用。
  • 浏览器环境中,JavaScript 的全局对象就是 Window 对象。在浏览器中运行 JavaScript ,全局对象会和 window 对象结合,相当全局对象于寄生 window 对象,可以通过 window 对象访问全局对象的所有属性。
  • node.js 环境中,JavaScript 的全局对象是 Global 对象。在 node.js 环境中,可以通过 global 对象访问全局对象的所有属性。
  • 其他环境,比如微信小程序等环境,这种也可以看作一个浏览器,不过这个浏览器通过删减一些不用的属性再添加或修改一些自定义的属性变成一个新的浏览器环境,但其核心还是没有变化的。当然,这种浏览器环境的全局对象同样也是 Window 对象

 

不同 JavaScript 环境中怎么获取全局对象?

由于在 JavaScript 中,全局对象不是任何对象的属性,它没有自己的名称,但在顶层 JavaScript 中,大部分情况下可以使用关键字 this、window 引用全局对象(node.js 环境中不可以,其宿主与浏览器环境不同)。

关于使用关键字引用全局对象,下面整理了一个表格,可以进行查看:

/*

; 下表中数据含意:
; g : 表示输出全局对象
;     - 浏览器:window(含各内置对象、本地对象、BOM、DOM)
;     - 小程序:window(含部分内置对象、部分本地对象、一些自定义对象、少量BOM、极少DOM)
;     - node :全局对象(含各内置对象、无window、无DOM、极少极少BOM)
; n : 表示其他非全局对象的对象(node 中,全局this为空对象,准确说应该是 module.exports。函数中的this为全局对象 global)
; / : 表示输出 not defined

----------------------------------------------------------------
;             :    IE     : 正常浏览器 :    node    :   小程序    ;
;---------------------------------------------------------------
;this         :     g     :     g     :      n     :     g     ;   
;self         :     g     :     g     :      /     :     g     ;   
;window       :     g     :     g     :      /     :     g     ;     
;global       :     /     :     /     :      g     :     n     ;     
;globalTthis  :     /     :     g     :      g     :     /     ;          
;top          :     g     :     g     :      /     :     g     ;  
;parent       :     g     :     g     :      /     :     g     ;     
;frames       :     g     :     g     :      /     :     /     ;     
----------------------------------------------------------------

*/

 

 

各浏览器中全局对象的属性数量:

通过测试,得到市面上比较流行的浏览器在空页面时全局对象的属性的数量(大概数量,同样浏览器不同版本都会有所不同):

常见浏览器:

  • google:960+
  • opera:950+
  • firefox:810+
  • safari:760+
  • 360:920+
  • edge:670+
  • ie-11:470+
  • ie-10:410+
  • ie-9:320+

其他 Javascript 环境:

  • 微信小程序:180+
  • node:70+

 

全局对象的属性:

由于不同环境全局对象的属性都不尽相同,甚至同一个环境不同版本的全局对象属性都有不同,下面主要列出 google 浏览器( 版本 83.x+) 和 node.js( 版本 14.x+)的全局对象所有属性:

浏览器中的全局对象的属性:

// google 浏览器中的 Object.getOwnPropertyDescriptors(globalThis)

Infinity: {value: Infinity, writable: false, enumerable: false, configurable: false}
$: {writable: true, enumerable: false, configurable: true, value: ƒ}
$0: {value: undefined, writable: true, enumerable: false, configurable: true}
$1: {value: undefined, writable: true, enumerable: false, configurable: true}
$2: {value: undefined, writable: true, enumerable: false, configurable: true}
$3: {value: undefined, writable: true, enumerable: false, configurable: true}
$4: {value: undefined, writable: true, enumerable: false, configurable: true}
$$: {writable: true, enumerable: false, configurable: true, value: ƒ}
$_: {value: undefined, writable: true, enumerable: false, configurable: true}
$x: {writable: true, enumerable: false, configurable: true, value: ƒ}
AbortController: {writable: true, enumerable: false, configurable: true, value: ƒ}
AbortSignal: {writable: true, enumerable: false, configurable: true, value: ƒ}
AbsoluteOrientationSensor: {writable: true, enumerable: false, configurable: true, value: ƒ}
Accelerometer: {writable: true, enumerable: false, configurable: true, value: ƒ}
AnalyserNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
Animation: {writable: true, enumerable: false, configurable: true, value: ƒ}
AnimationEffect: {writable: true, enumerable: false, configurable: true, value: ƒ}
AnimationEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
ApplicationCache: {writable: true, enumerable: false, configurable: true, value: ƒ}
ApplicationCacheErrorEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
Array: {writable: true, enumerable: false, configurable: true, value: ƒ}
ArrayBuffer: {writable: true, enumerable: false, configurable: true, value: ƒ}
Atomics: {value: Atomics, writable: true, enumerable: false, configurable: true}
Attr: {writable: true, enumerable: false, configurable: true, value: ƒ}
Audio: {writable: true, enumerable: false, configurable: true, value: ƒ}
AudioBuffer: {writable: true, enumerable: false, configurable: true, value: ƒ}
AudioBufferSourceNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
AudioContext: {writable: true, enumerable: false, configurable: true, value: ƒ}
AudioDestinationNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
AudioListener: {writable: true, enumerable: false, configurable: true, value: ƒ}
AudioNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
AudioParam: {writable: true, enumerable: false, configurable: true, value: ƒ}
AudioParamMap: {writable: true, enumerable: false, configurable: true, value: ƒ}
AudioProcessingEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
AudioScheduledSourceNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
AudioWorklet: {writable: true, enumerable: false, configurable: true, value: ƒ}
AudioWorkletNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
AuthenticatorAssertionResponse: {writable: true, enumerable: false, configurable: true, value: ƒ}
AuthenticatorAttestationResponse: {writable: true, enumerable: false, configurable: true, value: ƒ}
AuthenticatorResponse: {writable: true, enumerable: false, configurable: true, value: ƒ}
BackgroundFetchManager: {writable: true, enumerable: false, configurable: true, value: ƒ}
BackgroundFetchRecord: {writable: true, enumerable: false, configurable: true, value: ƒ}
BackgroundFetchRegistration: {writable: true, enumerable: false, configurable: true, value: ƒ}
BarProp: {writable: true, enumerable: false, configurable: true, value: ƒ}
BarcodeDetector: {writable: true, enumerable: false, configurable: true, value: ƒ}
BaseAudioContext: {writable: true, enumerable: false, configurable: true, value: ƒ}
BatteryManager: {writable: true, enumerable: false, configurable: true, value: ƒ}
BeforeInstallPromptEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
BeforeUnloadEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
BigInt: {writable: true, enumerable: false, configurable: true, value: ƒ}
BigInt64Array: {writable: true, enumerable: false, configurable: true, value: ƒ}
BigUint64Array: {writable: true, enumerable: false, configurable: true, value: ƒ}
BiquadFilterNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
Blob: {writable: true, enumerable: false, configurable: true, value: ƒ}
BlobEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
Bluetooth: {writable: true, enumerable: false, configurable: true, value: ƒ}
BluetoothCharacteristicProperties: {writable: true, enumerable: false, configurable: true, value: ƒ}
BluetoothDevice: {writable: true, enumerable: false, configurable: true, value: ƒ}
BluetoothRemoteGATTCharacteristic: {writable: true, enumerable: false, configurable: true, value: ƒ}
BluetoothRemoteGATTDescriptor: {writable: true, enumerable: false, configurable: true, value: ƒ}
BluetoothRemoteGATTServer: {writable: true, enumerable: false, configurable: true, value: ƒ}
BluetoothRemoteGATTService: {writable: true, enumerable: false, configurable: true, value: ƒ}
BluetoothUUID: {writable: true, enumerable: false, configurable: true, value: ƒ}
Boolean: {writable: true, enumerable: false, configurable: true, value: ƒ}
BroadcastChannel: {writable: true, enumerable: false, configurable: true, value: ƒ}
ByteLengthQueuingStrategy: {writable: true, enumerable: false, configurable: true, value: ƒ}
CDATASection: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSS: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSConditionRule: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSFontFaceRule: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSGroupingRule: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSImageValue: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSImportRule: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSKeyframeRule: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSKeyframesRule: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSKeywordValue: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSMathInvert: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSMathMax: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSMathMin: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSMathNegate: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSMathProduct: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSMathSum: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSMathValue: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSMatrixComponent: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSMediaRule: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSNamespaceRule: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSNumericArray: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSNumericValue: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSPageRule: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSPerspective: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSPositionValue: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSRotate: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSRule: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSRuleList: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSScale: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSSkew: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSSkewX: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSSkewY: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSStyleDeclaration: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSStyleRule: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSStyleSheet: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSStyleValue: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSSupportsRule: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSTransformComponent: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSTransformValue: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSTranslate: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSUnitValue: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSUnparsedValue: {writable: true, enumerable: false, configurable: true, value: ƒ}
CSSVariableReferenceValue: {writable: true, enumerable: false, configurable: true, value: ƒ}
Cache: {writable: true, enumerable: false, configurable: true, value: ƒ}
CacheStorage: {writable: true, enumerable: false, configurable: true, value: ƒ}
CanvasCaptureMediaStreamTrack: {writable: true, enumerable: false, configurable: true, value: ƒ}
CanvasGradient: {writable: true, enumerable: false, configurable: true, value: ƒ}
CanvasPattern: {writable: true, enumerable: false, configurable: true, value: ƒ}
CanvasRenderingContext2D: {writable: true, enumerable: false, configurable: true, value: ƒ}
ChannelMergerNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
ChannelSplitterNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
CharacterData: {writable: true, enumerable: false, configurable: true, value: ƒ}
Clipboard: {writable: true, enumerable: false, configurable: true, value: ƒ}
ClipboardEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
ClipboardItem: {writable: true, enumerable: false, configurable: true, value: ƒ}
CloseEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
Comment: {writable: true, enumerable: false, configurable: true, value: ƒ}
CompositionEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
CompressionStream: {writable: true, enumerable: false, configurable: true, value: ƒ}
ConstantSourceNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
ConvolverNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
CountQueuingStrategy: {writable: true, enumerable: false, configurable: true, value: ƒ}
Credential: {writable: true, enumerable: false, configurable: true, value: ƒ}
CredentialsContainer: {writable: true, enumerable: false, configurable: true, value: ƒ}
Crypto: {writable: true, enumerable: false, configurable: true, value: ƒ}
CryptoKey: {writable: true, enumerable: false, configurable: true, value: ƒ}
CustomElementRegistry: {writable: true, enumerable: false, configurable: true, value: ƒ}
CustomEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
DOMError: {writable: true, enumerable: false, configurable: true, value: ƒ}
DOMException: {writable: true, enumerable: false, configurable: true, value: ƒ}
DOMImplementation: {writable: true, enumerable: false, configurable: true, value: ƒ}
DOMMatrix: {writable: true, enumerable: false, configurable: true, value: ƒ}
DOMMatrixReadOnly: {writable: true, enumerable: false, configurable: true, value: ƒ}
DOMParser: {writable: true, enumerable: false, configurable: true, value: ƒ}
DOMPoint: {writable: true, enumerable: false, configurable: true, value: ƒ}
DOMPointReadOnly: {writable: true, enumerable: false, configurable: true, value: ƒ}
DOMQuad: {writable: true, enumerable: false, configurable: true, value: ƒ}
DOMRect: {writable: true, enumerable: false, configurable: true, value: ƒ}
DOMRectList: {writable: true, enumerable: false, configurable: true, value: ƒ}
DOMRectReadOnly: {writable: true, enumerable: false, configurable: true, value: ƒ}
DOMStringList: {writable: true, enumerable: false, configurable: true, value: ƒ}
DOMStringMap: {writable: true, enumerable: false, configurable: true, value: ƒ}
DOMTokenList: {writable: true, enumerable: false, configurable: true, value: ƒ}
DataTransfer: {writable: true, enumerable: false, configurable: true, value: ƒ}
DataTransferItem: {writable: true, enumerable: false, configurable: true, value: ƒ}
DataTransferItemList: {writable: true, enumerable: false, configurable: true, value: ƒ}
DataView: {writable: true, enumerable: false, configurable: true, value: ƒ}
Date: {writable: true, enumerable: false, configurable: true, value: ƒ}
DecompressionStream: {writable: true, enumerable: false, configurable: true, value: ƒ}
DelayNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
DeviceMotionEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
DeviceMotionEventAcceleration: {writable: true, enumerable: false, configurable: true, value: ƒ}
DeviceMotionEventRotationRate: {writable: true, enumerable: false, configurable: true, value: ƒ}
DeviceOrientationEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
Document: {writable: true, enumerable: false, configurable: true, value: ƒ}
DocumentFragment: {writable: true, enumerable: false, configurable: true, value: ƒ}
DocumentType: {writable: true, enumerable: false, configurable: true, value: ƒ}
DragEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
DynamicsCompressorNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
Element: {writable: true, enumerable: false, configurable: true, value: ƒ}
ElementInternals: {writable: true, enumerable: false, configurable: true, value: ƒ}
EnterPictureInPictureEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
Error: {writable: true, enumerable: false, configurable: true, value: ƒ}
ErrorEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
EvalError: {writable: true, enumerable: false, configurable: true, value: ƒ}
Event: {writable: true, enumerable: false, configurable: true, value: ƒ}
EventSource: {writable: true, enumerable: false, configurable: true, value: ƒ}
EventTarget: {writable: true, enumerable: false, configurable: true, value: ƒ}
External: {writable: true, enumerable: false, configurable: true, value: ƒ}
FeaturePolicy: {writable: true, enumerable: false, configurable: true, value: ƒ}
FederatedCredential: {writable: true, enumerable: false, configurable: true, value: ƒ}
File: {writable: true, enumerable: false, configurable: true, value: ƒ}
FileList: {writable: true, enumerable: false, configurable: true, value: ƒ}
FileReader: {writable: true, enumerable: false, configurable: true, value: ƒ}
Float32Array: {writable: true, enumerable: false, configurable: true, value: ƒ}
Float64Array: {writable: true, enumerable: false, configurable: true, value: ƒ}
FocusEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
FontFace: {writable: true, enumerable: false, configurable: true, value: ƒ}
FontFaceSetLoadEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
FormData: {writable: true, enumerable: false, configurable: true, value: ƒ}
FormDataEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
FragmentDirective: {writable: true, enumerable: false, configurable: true, value: ƒ}
Function: {writable: true, enumerable: false, configurable: true, value: ƒ}
GainNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
Gamepad: {writable: true, enumerable: false, configurable: true, value: ƒ}
GamepadButton: {writable: true, enumerable: false, configurable: true, value: ƒ}
GamepadEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
GamepadHapticActuator: {writable: true, enumerable: false, configurable: true, value: ƒ}
Geolocation: {writable: true, enumerable: false, configurable: true, value: ƒ}
GeolocationCoordinates: {writable: true, enumerable: false, configurable: true, value: ƒ}
GeolocationPosition: {writable: true, enumerable: false, configurable: true, value: ƒ}
GeolocationPositionError: {writable: true, enumerable: false, configurable: true, value: ƒ}
Gyroscope: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLAllCollection: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLAnchorElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLAreaElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLAudioElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLBRElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLBaseElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLBodyElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLButtonElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLCanvasElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLCollection: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLContentElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLDListElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLDataElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLDataListElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLDetailsElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLDialogElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLDirectoryElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLDivElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLDocument: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLEmbedElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLFieldSetElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLFontElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLFormControlsCollection: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLFormElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLFrameElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLFrameSetElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLHRElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLHeadElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLHeadingElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLHtmlElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLIFrameElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLImageElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLInputElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLLIElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLLabelElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLLegendElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLLinkElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLMapElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLMarqueeElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLMediaElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLMenuElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLMetaElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLMeterElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLModElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLOListElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLObjectElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLOptGroupElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLOptionElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLOptionsCollection: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLOutputElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLParagraphElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLParamElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLPictureElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLPreElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLProgressElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLQuoteElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLScriptElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLSelectElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLShadowElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLSlotElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLSourceElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLSpanElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLStyleElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLTableCaptionElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLTableCellElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLTableColElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLTableElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLTableRowElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLTableSectionElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLTemplateElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLTextAreaElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLTimeElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLTitleElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLTrackElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLUListElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLUnknownElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HTMLVideoElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
HashChangeEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
Headers: {writable: true, enumerable: false, configurable: true, value: ƒ}
History: {writable: true, enumerable: false, configurable: true, value: ƒ}
IDBCursor: {writable: true, enumerable: false, configurable: true, value: ƒ}
IDBCursorWithValue: {writable: true, enumerable: false, configurable: true, value: ƒ}
IDBDatabase: {writable: true, enumerable: false, configurable: true, value: ƒ}
IDBFactory: {writable: true, enumerable: false, configurable: true, value: ƒ}
IDBIndex: {writable: true, enumerable: false, configurable: true, value: ƒ}
IDBKeyRange: {writable: true, enumerable: false, configurable: true, value: ƒ}
IDBObjectStore: {writable: true, enumerable: false, configurable: true, value: ƒ}
IDBOpenDBRequest: {writable: true, enumerable: false, configurable: true, value: ƒ}
IDBRequest: {writable: true, enumerable: false, configurable: true, value: ƒ}
IDBTransaction: {writable: true, enumerable: false, configurable: true, value: ƒ}
IDBVersionChangeEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
IIRFilterNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
IdleDeadline: {writable: true, enumerable: false, configurable: true, value: ƒ}
Image: {writable: true, enumerable: false, configurable: true, value: ƒ}
ImageBitmap: {writable: true, enumerable: false, configurable: true, value: ƒ}
ImageBitmapRenderingContext: {writable: true, enumerable: false, configurable: true, value: ƒ}
ImageCapture: {writable: true, enumerable: false, configurable: true, value: ƒ}
ImageData: {writable: true, enumerable: false, configurable: true, value: ƒ}
InputDeviceCapabilities: {writable: true, enumerable: false, configurable: true, value: ƒ}
InputDeviceInfo: {writable: true, enumerable: false, configurable: true, value: ƒ}
InputEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
Int8Array: {writable: true, enumerable: false, configurable: true, value: ƒ}
Int16Array: {writable: true, enumerable: false, configurable: true, value: ƒ}
Int32Array: {writable: true, enumerable: false, configurable: true, value: ƒ}
IntersectionObserver: {writable: true, enumerable: false, configurable: true, value: ƒ}
IntersectionObserverEntry: {writable: true, enumerable: false, configurable: true, value: ƒ}
Intl: {value: {…}, writable: true, enumerable: false, configurable: true}
JSON: {value: JSON, writable: true, enumerable: false, configurable: true}
Keyboard: {writable: true, enumerable: false, configurable: true, value: ƒ}
KeyboardEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
KeyboardLayoutMap: {writable: true, enumerable: false, configurable: true, value: ƒ}
KeyframeEffect: {writable: true, enumerable: false, configurable: true, value: ƒ}
LargestContentfulPaint: {writable: true, enumerable: false, configurable: true, value: ƒ}
LayoutShift: {writable: true, enumerable: false, configurable: true, value: ƒ}
LinearAccelerationSensor: {writable: true, enumerable: false, configurable: true, value: ƒ}
Location: {writable: true, enumerable: false, configurable: true, value: ƒ}
Lock: {writable: true, enumerable: false, configurable: true, value: ƒ}
LockManager: {writable: true, enumerable: false, configurable: true, value: ƒ}
MIDIAccess: {writable: true, enumerable: false, configurable: true, value: ƒ}
MIDIConnectionEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
MIDIInput: {writable: true, enumerable: false, configurable: true, value: ƒ}
MIDIInputMap: {writable: true, enumerable: false, configurable: true, value: ƒ}
MIDIMessageEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
MIDIOutput: {writable: true, enumerable: false, configurable: true, value: ƒ}
MIDIOutputMap: {writable: true, enumerable: false, configurable: true, value: ƒ}
MIDIPort: {writable: true, enumerable: false, configurable: true, value: ƒ}
Map: {writable: true, enumerable: false, configurable: true, value: ƒ}
Math: {value: Math, writable: true, enumerable: false, configurable: true}
MediaCapabilities: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaDeviceInfo: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaDevices: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaElementAudioSourceNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaEncryptedEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaError: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaKeyMessageEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaKeySession: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaKeyStatusMap: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaKeySystemAccess: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaKeys: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaList: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaMetadata: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaQueryList: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaQueryListEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaRecorder: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaSession: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaSettingsRange: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaSource: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaStream: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaStreamAudioDestinationNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaStreamAudioSourceNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaStreamEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaStreamTrack: {writable: true, enumerable: false, configurable: true, value: ƒ}
MediaStreamTrackEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
MessageChannel: {writable: true, enumerable: false, configurable: true, value: ƒ}
MessageEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
MessagePort: {writable: true, enumerable: false, configurable: true, value: ƒ}
MimeType: {writable: true, enumerable: false, configurable: true, value: ƒ}
MimeTypeArray: {writable: true, enumerable: false, configurable: true, value: ƒ}
MouseEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
MutationEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
MutationObserver: {writable: true, enumerable: false, configurable: true, value: ƒ}
MutationRecord: {writable: true, enumerable: false, configurable: true, value: ƒ}
NaN: {value: NaN, writable: false, enumerable: false, configurable: false}
NamedNodeMap: {writable: true, enumerable: false, configurable: true, value: ƒ}
NavigationPreloadManager: {writable: true, enumerable: false, configurable: true, value: ƒ}
Navigator: {writable: true, enumerable: false, configurable: true, value: ƒ}
NetworkInformation: {writable: true, enumerable: false, configurable: true, value: ƒ}
Node: {writable: true, enumerable: false, configurable: true, value: ƒ}
NodeFilter: {writable: true, enumerable: false, configurable: true, value: ƒ}
NodeIterator: {writable: true, enumerable: false, configurable: true, value: ƒ}
NodeList: {writable: true, enumerable: false, configurable: true, value: ƒ}
Notification: {writable: true, enumerable: false, configurable: true, value: ƒ}
Number: {writable: true, enumerable: false, configurable: true, value: ƒ}
Object: {writable: true, enumerable: false, configurable: true, value: ƒ}
OfflineAudioCompletionEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
OfflineAudioContext: {writable: true, enumerable: false, configurable: true, value: ƒ}
OffscreenCanvas: {writable: true, enumerable: false, configurable: true, value: ƒ}
OffscreenCanvasRenderingContext2D: {writable: true, enumerable: false, configurable: true, value: ƒ}
Option: {writable: true, enumerable: false, configurable: true, value: ƒ}
OrientationSensor: {writable: true, enumerable: false, configurable: true, value: ƒ}
OscillatorNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
OverconstrainedError: {writable: true, enumerable: false, configurable: true, value: ƒ}
PageTransitionEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
PannerNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
PasswordCredential: {writable: true, enumerable: false, configurable: true, value: ƒ}
Path2D: {writable: true, enumerable: false, configurable: true, value: ƒ}
PaymentAddress: {writable: true, enumerable: false, configurable: true, value: ƒ}
PaymentInstruments: {writable: true, enumerable: false, configurable: true, value: ƒ}
PaymentManager: {writable: true, enumerable: false, configurable: true, value: ƒ}
PaymentMethodChangeEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
PaymentRequest: {writable: true, enumerable: false, configurable: true, value: ƒ}
PaymentRequestUpdateEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
PaymentResponse: {writable: true, enumerable: false, configurable: true, value: ƒ}
Performance: {writable: true, enumerable: false, configurable: true, value: ƒ}
PerformanceElementTiming: {writable: true, enumerable: false, configurable: true, value: ƒ}
PerformanceEntry: {writable: true, enumerable: false, configurable: true, value: ƒ}
PerformanceEventTiming: {writable: true, enumerable: false, configurable: true, value: ƒ}
PerformanceLongTaskTiming: {writable: true, enumerable: false, configurable: true, value: ƒ}
PerformanceMark: {writable: true, enumerable: false, configurable: true, value: ƒ}
PerformanceMeasure: {writable: true, enumerable: false, configurable: true, value: ƒ}
PerformanceNavigation: {writable: true, enumerable: false, configurable: true, value: ƒ}
PerformanceNavigationTiming: {writable: true, enumerable: false, configurable: true, value: ƒ}
PerformanceObserver: {writable: true, enumerable: false, configurable: true, value: ƒ}
PerformanceObserverEntryList: {writable: true, enumerable: false, configurable: true, value: ƒ}
PerformancePaintTiming: {writable: true, enumerable: false, configurable: true, value: ƒ}
PerformanceResourceTiming: {writable: true, enumerable: false, configurable: true, value: ƒ}
PerformanceServerTiming: {writable: true, enumerable: false, configurable: true, value: ƒ}
PerformanceTiming: {writable: true, enumerable: false, configurable: true, value: ƒ}
PeriodicSyncManager: {writable: true, enumerable: false, configurable: true, value: ƒ}
PeriodicWave: {writable: true, enumerable: false, configurable: true, value: ƒ}
PermissionStatus: {writable: true, enumerable: false, configurable: true, value: ƒ}
Permissions: {writable: true, enumerable: false, configurable: true, value: ƒ}
PhotoCapabilities: {writable: true, enumerable: false, configurable: true, value: ƒ}
PictureInPictureWindow: {writable: true, enumerable: false, configurable: true, value: ƒ}
Plugin: {writable: true, enumerable: false, configurable: true, value: ƒ}
PluginArray: {writable: true, enumerable: false, configurable: true, value: ƒ}
PointerEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
PopStateEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
Presentation: {writable: true, enumerable: false, configurable: true, value: ƒ}
PresentationAvailability: {writable: true, enumerable: false, configurable: true, value: ƒ}
PresentationConnection: {writable: true, enumerable: false, configurable: true, value: ƒ}
PresentationConnectionAvailableEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
PresentationConnectionCloseEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
PresentationConnectionList: {writable: true, enumerable: false, configurable: true, value: ƒ}
PresentationReceiver: {writable: true, enumerable: false, configurable: true, value: ƒ}
PresentationRequest: {writable: true, enumerable: false, configurable: true, value: ƒ}
ProcessingInstruction: {writable: true, enumerable: false, configurable: true, value: ƒ}
ProgressEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
Promise: {writable: true, enumerable: false, configurable: true, value: ƒ}
PromiseRejectionEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
Proxy: {writable: true, enumerable: false, configurable: true, value: ƒ}
PublicKeyCredential: {writable: true, enumerable: false, configurable: true, value: ƒ}
PushManager: {writable: true, enumerable: false, configurable: true, value: ƒ}
PushSubscription: {writable: true, enumerable: false, configurable: true, value: ƒ}
PushSubscriptionOptions: {writable: true, enumerable: false, configurable: true, value: ƒ}
RTCCertificate: {writable: true, enumerable: false, configurable: true, value: ƒ}
RTCDTMFSender: {writable: true, enumerable: false, configurable: true, value: ƒ}
RTCDTMFToneChangeEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
RTCDataChannel: {writable: true, enumerable: false, configurable: true, value: ƒ}
RTCDataChannelEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
RTCDtlsTransport: {writable: true, enumerable: false, configurable: true, value: ƒ}
RTCError: {writable: true, enumerable: false, configurable: true, value: ƒ}
RTCErrorEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
RTCIceCandidate: {writable: true, enumerable: false, configurable: true, value: ƒ}
RTCIceTransport: {writable: true, enumerable: false, configurable: true, value: ƒ}
RTCPeerConnection: {writable: true, enumerable: false, configurable: true, value: ƒ}
RTCPeerConnectionIceErrorEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
RTCPeerConnectionIceEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
RTCRtpReceiver: {writable: true, enumerable: false, configurable: true, value: ƒ}
RTCRtpSender: {writable: true, enumerable: false, configurable: true, value: ƒ}
RTCRtpTransceiver: {writable: true, enumerable: false, configurable: true, value: ƒ}
RTCSctpTransport: {writable: true, enumerable: false, configurable: true, value: ƒ}
RTCSessionDescription: {writable: true, enumerable: false, configurable: true, value: ƒ}
RTCStatsReport: {writable: true, enumerable: false, configurable: true, value: ƒ}
RTCTrackEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
RadioNodeList: {writable: true, enumerable: false, configurable: true, value: ƒ}
Range: {writable: true, enumerable: false, configurable: true, value: ƒ}
RangeError: {writable: true, enumerable: false, configurable: true, value: ƒ}
ReadableStream: {writable: true, enumerable: false, configurable: true, value: ƒ}
ReadableStreamDefaultReader: {writable: true, enumerable: false, configurable: true, value: ƒ}
ReferenceError: {writable: true, enumerable: false, configurable: true, value: ƒ}
Reflect: {value: {…}, writable: true, enumerable: false, configurable: true}
RegExp: {writable: true, enumerable: false, configurable: true, value: ƒ}
RelativeOrientationSensor: {writable: true, enumerable: false, configurable: true, value: ƒ}
RemotePlayback: {writable: true, enumerable: false, configurable: true, value: ƒ}
ReportingObserver: {writable: true, enumerable: false, configurable: true, value: ƒ}
Request: {writable: true, enumerable: false, configurable: true, value: ƒ}
ResizeObserver: {writable: true, enumerable: false, configurable: true, value: ƒ}
ResizeObserverEntry: {writable: true, enumerable: false, configurable: true, value: ƒ}
Response: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGAElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGAngle: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGAnimateElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGAnimateMotionElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGAnimateTransformElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGAnimatedAngle: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGAnimatedBoolean: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGAnimatedEnumeration: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGAnimatedInteger: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGAnimatedLength: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGAnimatedLengthList: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGAnimatedNumber: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGAnimatedNumberList: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGAnimatedPreserveAspectRatio: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGAnimatedRect: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGAnimatedString: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGAnimatedTransformList: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGAnimationElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGCircleElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGClipPathElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGComponentTransferFunctionElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGDefsElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGDescElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGEllipseElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFEBlendElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFEColorMatrixElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFEComponentTransferElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFECompositeElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFEConvolveMatrixElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFEDiffuseLightingElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFEDisplacementMapElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFEDistantLightElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFEDropShadowElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFEFloodElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFEFuncAElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFEFuncBElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFEFuncGElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFEFuncRElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFEGaussianBlurElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFEImageElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFEMergeElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFEMergeNodeElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFEMorphologyElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFEOffsetElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFEPointLightElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFESpecularLightingElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFESpotLightElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFETileElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFETurbulenceElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGFilterElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGForeignObjectElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGGElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGGeometryElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGGradientElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGGraphicsElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGImageElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGLength: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGLengthList: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGLineElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGLinearGradientElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGMPathElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGMarkerElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGMaskElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGMatrix: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGMetadataElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGNumber: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGNumberList: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGPathElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGPatternElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGPoint: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGPointList: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGPolygonElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGPolylineElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGPreserveAspectRatio: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGRadialGradientElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGRect: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGRectElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGSVGElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGScriptElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGSetElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGStopElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGStringList: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGStyleElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGSwitchElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGSymbolElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGTSpanElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGTextContentElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGTextElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGTextPathElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGTextPositioningElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGTitleElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGTransform: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGTransformList: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGUnitTypes: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGUseElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
SVGViewElement: {writable: true, enumerable: false, configurable: true, value: ƒ}
Screen: {writable: true, enumerable: false, configurable: true, value: ƒ}
ScreenOrientation: {writable: true, enumerable: false, configurable: true, value: ƒ}
ScriptProcessorNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
SecurityPolicyViolationEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
Selection: {writable: true, enumerable: false, configurable: true, value: ƒ}
Sensor: {writable: true, enumerable: false, configurable: true, value: ƒ}
SensorErrorEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
ServiceWorker: {writable: true, enumerable: false, configurable: true, value: ƒ}
ServiceWorkerContainer: {writable: true, enumerable: false, configurable: true, value: ƒ}
ServiceWorkerRegistration: {writable: true, enumerable: false, configurable: true, value: ƒ}
Set: {writable: true, enumerable: false, configurable: true, value: ƒ}
ShadowRoot: {writable: true, enumerable: false, configurable: true, value: ƒ}
SharedArrayBuffer: {writable: true, enumerable: false, configurable: true, value: ƒ}
SharedWorker: {writable: true, enumerable: false, configurable: true, value: ƒ}
SourceBuffer: {writable: true, enumerable: false, configurable: true, value: ƒ}
SourceBufferList: {writable: true, enumerable: false, configurable: true, value: ƒ}
SpeechSynthesisErrorEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
SpeechSynthesisEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
SpeechSynthesisUtterance: {writable: true, enumerable: false, configurable: true, value: ƒ}
StaticRange: {writable: true, enumerable: false, configurable: true, value: ƒ}
StereoPannerNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
Storage: {writable: true, enumerable: false, configurable: true, value: ƒ}
StorageEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
StorageManager: {writable: true, enumerable: false, configurable: true, value: ƒ}
String: {writable: true, enumerable: false, configurable: true, value: ƒ}
StylePropertyMap: {writable: true, enumerable: false, configurable: true, value: ƒ}
StylePropertyMapReadOnly: {writable: true, enumerable: false, configurable: true, value: ƒ}
StyleSheet: {writable: true, enumerable: false, configurable: true, value: ƒ}
StyleSheetList: {writable: true, enumerable: false, configurable: true, value: ƒ}
SubmitEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
SubtleCrypto: {writable: true, enumerable: false, configurable: true, value: ƒ}
Symbol: {writable: true, enumerable: false, configurable: true, value: ƒ}
SyncManager: {writable: true, enumerable: false, configurable: true, value: ƒ}
SyntaxError: {writable: true, enumerable: false, configurable: true, value: ƒ}
TaskAttributionTiming: {writable: true, enumerable: false, configurable: true, value: ƒ}
Text: {writable: true, enumerable: false, configurable: true, value: ƒ}
TextDecoder: {writable: true, enumerable: false, configurable: true, value: ƒ}
TextDecoderStream: {writable: true, enumerable: false, configurable: true, value: ƒ}
TextEncoder: {writable: true, enumerable: false, configurable: true, value: ƒ}
TextEncoderStream: {writable: true, enumerable: false, configurable: true, value: ƒ}
TextEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
TextMetrics: {writable: true, enumerable: false, configurable: true, value: ƒ}
TextTrack: {writable: true, enumerable: false, configurable: true, value: ƒ}
TextTrackCue: {writable: true, enumerable: false, configurable: true, value: ƒ}
TextTrackCueList: {writable: true, enumerable: false, configurable: true, value: ƒ}
TextTrackList: {writable: true, enumerable: false, configurable: true, value: ƒ}
TimeRanges: {writable: true, enumerable: false, configurable: true, value: ƒ}
Touch: {writable: true, enumerable: false, configurable: true, value: ƒ}
TouchEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
TouchList: {writable: true, enumerable: false, configurable: true, value: ƒ}
TrackEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
TransformStream: {writable: true, enumerable: false, configurable: true, value: ƒ}
TransitionEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
TreeWalker: {writable: true, enumerable: false, configurable: true, value: ƒ}
TrustedHTML: {writable: true, enumerable: false, configurable: true, value: ƒ}
TrustedScript: {writable: true, enumerable: false, configurable: true, value: ƒ}
TrustedScriptURL: {writable: true, enumerable: false, configurable: true, value: ƒ}
TrustedTypePolicy: {writable: true, enumerable: false, configurable: true, value: ƒ}
TrustedTypePolicyFactory: {writable: true, enumerable: false, configurable: true, value: ƒ}
TypeError: {writable: true, enumerable: false, configurable: true, value: ƒ}
UIEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
URIError: {writable: true, enumerable: false, configurable: true, value: ƒ}
URL: {writable: true, enumerable: false, configurable: true, value: ƒ}
URLSearchParams: {writable: true, enumerable: false, configurable: true, value: ƒ}
USB: {writable: true, enumerable: false, configurable: true, value: ƒ}
USBAlternateInterface: {writable: true, enumerable: false, configurable: true, value: ƒ}
USBConfiguration: {writable: true, enumerable: false, configurable: true, value: ƒ}
USBConnectionEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
USBDevice: {writable: true, enumerable: false, configurable: true, value: ƒ}
USBEndpoint: {writable: true, enumerable: false, configurable: true, value: ƒ}
USBInTransferResult: {writable: true, enumerable: false, configurable: true, value: ƒ}
USBInterface: {writable: true, enumerable: false, configurable: true, value: ƒ}
USBIsochronousInTransferPacket: {writable: true, enumerable: false, configurable: true, value: ƒ}
USBIsochronousInTransferResult: {writable: true, enumerable: false, configurable: true, value: ƒ}
USBIsochronousOutTransferPacket: {writable: true, enumerable: false, configurable: true, value: ƒ}
USBIsochronousOutTransferResult: {writable: true, enumerable: false, configurable: true, value: ƒ}
USBOutTransferResult: {writable: true, enumerable: false, configurable: true, value: ƒ}
Uint8Array: {writable: true, enumerable: false, configurable: true, value: ƒ}
Uint8ClampedArray: {writable: true, enumerable: false, configurable: true, value: ƒ}
Uint16Array: {writable: true, enumerable: false, configurable: true, value: ƒ}
Uint32Array: {writable: true, enumerable: false, configurable: true, value: ƒ}
UserActivation: {writable: true, enumerable: false, configurable: true, value: ƒ}
VTTCue: {writable: true, enumerable: false, configurable: true, value: ƒ}
ValidityState: {writable: true, enumerable: false, configurable: true, value: ƒ}
VideoPlaybackQuality: {writable: true, enumerable: false, configurable: true, value: ƒ}
VisualViewport: {writable: true, enumerable: false, configurable: true, value: ƒ}
WaveShaperNode: {writable: true, enumerable: false, configurable: true, value: ƒ}
WeakMap: {writable: true, enumerable: false, configurable: true, value: ƒ}
WeakSet: {writable: true, enumerable: false, configurable: true, value: ƒ}
WebAssembly: {value: WebAssembly, writable: true, enumerable: false, configurable: true}
WebGL2RenderingContext: {writable: true, enumerable: false, configurable: true, value: ƒ}
WebGLActiveInfo: {writable: true, enumerable: false, configurable: true, value: ƒ}
WebGLBuffer: {writable: true, enumerable: false, configurable: true, value: ƒ}
WebGLContextEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
WebGLFramebuffer: {writable: true, enumerable: false, configurable: true, value: ƒ}
WebGLProgram: {writable: true, enumerable: false, configurable: true, value: ƒ}
WebGLQuery: {writable: true, enumerable: false, configurable: true, value: ƒ}
WebGLRenderbuffer: {writable: true, enumerable: false, configurable: true, value: ƒ}
WebGLRenderingContext: {writable: true, enumerable: false, configurable: true, value: ƒ}
WebGLSampler: {writable: true, enumerable: false, configurable: true, value: ƒ}
WebGLShader: {writable: true, enumerable: false, configurable: true, value: ƒ}
WebGLShaderPrecisionFormat: {writable: true, enumerable: false, configurable: true, value: ƒ}
WebGLSync: {writable: true, enumerable: false, configurable: true, value: ƒ}
WebGLTexture: {writable: true, enumerable: false, configurable: true, value: ƒ}
WebGLTransformFeedback: {writable: true, enumerable: false, configurable: true, value: ƒ}
WebGLUniformLocation: {writable: true, enumerable: false, configurable: true, value: ƒ}
WebGLVertexArrayObject: {writable: true, enumerable: false, configurable: true, value: ƒ}
WebKitCSSMatrix: {writable: true, enumerable: false, configurable: true, value: ƒ}
WebKitMutationObserver: {writable: true, enumerable: false, configurable: true, value: ƒ}
WebSocket: {writable: true, enumerable: false, configurable: true, value: ƒ}
WheelEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
Window: {writable: true, enumerable: false, configurable: true, value: ƒ}
Worker: {writable: true, enumerable: false, configurable: true, value: ƒ}
Worklet: {writable: true, enumerable: false, configurable: true, value: ƒ}
WritableStream: {writable: true, enumerable: false, configurable: true, value: ƒ}
WritableStreamDefaultWriter: {writable: true, enumerable: false, configurable: true, value: ƒ}
XMLDocument: {writable: true, enumerable: false, configurable: true, value: ƒ}
XMLHttpRequest: {writable: true, enumerable: false, configurable: true, value: ƒ}
XMLHttpRequestEventTarget: {writable: true, enumerable: false, configurable: true, value: ƒ}
XMLHttpRequestUpload: {writable: true, enumerable: false, configurable: true, value: ƒ}
XMLSerializer: {writable: true, enumerable: false, configurable: true, value: ƒ}
XPathEvaluator: {writable: true, enumerable: false, configurable: true, value: ƒ}
XPathExpression: {writable: true, enumerable: false, configurable: true, value: ƒ}
XPathResult: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRBoundedReferenceSpace: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRDOMOverlayState: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRFrame: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRHitTestResult: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRHitTestSource: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRInputSource: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRInputSourceArray: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRInputSourceEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRInputSourcesChangeEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRPose: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRRay: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRReferenceSpace: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRReferenceSpaceEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRRenderState: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRRigidTransform: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRSession: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRSessionEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRSpace: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRSystem: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRTransientInputHitTestResult: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRTransientInputHitTestSource: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRView: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRViewerPose: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRViewport: {writable: true, enumerable: false, configurable: true, value: ƒ}
XRWebGLLayer: {writable: true, enumerable: false, configurable: true, value: ƒ}
XSLTProcessor: {writable: true, enumerable: false, configurable: true, value: ƒ}
alert: {writable: true, enumerable: true, configurable: true, value: ƒ}
applicationCache: {set: undefined, enumerable: true, configurable: true, get: ƒ}
atob: {writable: true, enumerable: true, configurable: true, value: ƒ}
blur: {writable: true, enumerable: true, configurable: true, value: ƒ}
btoa: {writable: true, enumerable: true, configurable: true, value: ƒ}
caches: {set: undefined, enumerable: true, configurable: true, get: ƒ}
cancelAnimationFrame: {writable: true, enumerable: true, configurable: true, value: ƒ}
cancelIdleCallback: {writable: true, enumerable: true, configurable: true, value: ƒ}
captureEvents: {writable: true, enumerable: true, configurable: true, value: ƒ}
chrome: {value: {…}, writable: true, enumerable: true, configurable: false}
clear: {writable: true, enumerable: false, configurable: true, value: ƒ}
clearInterval: {writable: true, enumerable: true, configurable: true, value: ƒ}
clearTimeout: {writable: true, enumerable: true, configurable: true, value: ƒ}
clientInformation: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
close: {writable: true, enumerable: true, configurable: true, value: ƒ}
closed: {value: false, writable: false, enumerable: true, configurable: true}
confirm: {writable: true, enumerable: true, configurable: true, value: ƒ}
console: {value: console, writable: true, enumerable: false, configurable: true}
copy: {writable: true, enumerable: false, configurable: true, value: ƒ}
createImageBitmap: {writable: true, enumerable: true, configurable: true, value: ƒ}
crypto: {set: undefined, enumerable: true, configurable: true, get: ƒ}
customElements: {set: undefined, enumerable: true, configurable: true, get: ƒ}
debug: {writable: true, enumerable: false, configurable: true, value: ƒ}
decodeURI: {writable: true, enumerable: false, configurable: true, value: ƒ}
decodeURIComponent: {writable: true, enumerable: false, configurable: true, value: ƒ}
defaultStatus: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
defaultstatus: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
devicePixelRatio: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
dir: {writable: true, enumerable: false, configurable: true, value: ƒ}
dirxml: {writable: true, enumerable: false, configurable: true, value: ƒ}
document: {set: undefined, enumerable: true, configurable: false, get: ƒ}
encodeURI: {writable: true, enumerable: false, configurable: true, value: ƒ}
encodeURIComponent: {writable: true, enumerable: false, configurable: true, value: ƒ}
escape: {writable: true, enumerable: false, configurable: true, value: ƒ}
eval: {writable: true, enumerable: false, configurable: true, value: ƒ}
event: {enumerable: false, configurable: true, get: ƒ, set: ƒ}
external: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
fetch: {writable: true, enumerable: true, configurable: true, value: ƒ}
find: {writable: true, enumerable: true, configurable: true, value: ƒ}
focus: {writable: true, enumerable: true, configurable: true, value: ƒ}
frameElement: {set: undefined, enumerable: true, configurable: true, get: ƒ}
frames: {value: Window, writable: true, enumerable: true, configurable: true}
getComputedStyle: {writable: true, enumerable: true, configurable: true, value: ƒ}
getEventListeners: {writable: true, enumerable: false, configurable: true, value: ƒ}
getSelection: {writable: true, enumerable: true, configurable: true, value: ƒ}
globalThis: {value: Window, writable: true, enumerable: false, configurable: true}
history: {set: undefined, enumerable: true, configurable: true, get: ƒ}
indexedDB: {set: undefined, enumerable: true, configurable: true, get: ƒ}
innerHeight: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
innerWidth: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
inspect: {writable: true, enumerable: false, configurable: true, value: ƒ}
isFinite: {writable: true, enumerable: false, configurable: true, value: ƒ}
isNaN: {writable: true, enumerable: false, configurable: true, value: ƒ}
isSecureContext: {set: undefined, enumerable: true, configurable: true, get: ƒ}
keys: {writable: true, enumerable: false, configurable: true, value: ƒ}
length: {value: 0, writable: true, enumerable: true, configurable: true}
localStorage: {set: undefined, enumerable: true, configurable: true, get: ƒ}
location: {value: Location, writable: true, enumerable: true, configurable: false}
locationbar: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
matchMedia: {writable: true, enumerable: true, configurable: true, value: ƒ}
menubar: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
monitor: {writable: true, enumerable: false, configurable: true, value: ƒ}
monitorEvents: {writable: true, enumerable: false, configurable: true, value: ƒ}
moveBy: {writable: true, enumerable: true, configurable: true, value: ƒ}
moveTo: {writable: true, enumerable: true, configurable: true, value: ƒ}
name: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
navigator: {set: undefined, enumerable: true, configurable: true, get: ƒ}
offscreenBuffering: {enumerable: false, configurable: true, get: ƒ, set: ƒ}
onabort: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onafterprint: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onanimationend: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onanimationiteration: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onanimationstart: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onappinstalled: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onauxclick: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onbeforeinstallprompt: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onbeforeprint: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onbeforeunload: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onblur: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
oncancel: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
oncanplay: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
oncanplaythrough: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onchange: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onclick: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onclose: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
oncontextmenu: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
oncuechange: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
ondblclick: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
ondevicemotion: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
ondeviceorientation: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
ondeviceorientationabsolute: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
ondrag: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
ondragend: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
ondragenter: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
ondragleave: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
ondragover: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
ondragstart: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
ondrop: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
ondurationchange: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onemptied: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onended: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onerror: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onfocus: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onformdata: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
ongotpointercapture: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onhashchange: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
oninput: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
oninvalid: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onkeydown: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onkeypress: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onkeyup: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onlanguagechange: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onload: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onloadeddata: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onloadedmetadata: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onloadstart: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onlostpointercapture: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onmessage: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onmessageerror: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onmousedown: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onmouseenter: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onmouseleave: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onmousemove: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onmouseout: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onmouseover: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onmouseup: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onmousewheel: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onoffline: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
ononline: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onpagehide: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onpageshow: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onpause: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onplay: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onplaying: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onpointercancel: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onpointerdown: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onpointerenter: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onpointerleave: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onpointermove: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onpointerout: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onpointerover: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onpointerrawupdate: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onpointerup: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onpopstate: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onprogress: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onratechange: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onrejectionhandled: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onreset: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onresize: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onscroll: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onsearch: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onseeked: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onseeking: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onselect: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onselectionchange: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onselectstart: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onstalled: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onstorage: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onsubmit: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onsuspend: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
ontimeupdate: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
ontoggle: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
ontransitionend: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onunhandledrejection: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onunload: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onvolumechange: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onwaiting: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onwebkitanimationend: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onwebkitanimationiteration: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onwebkitanimationstart: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onwebkittransitionend: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
onwheel: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
open: {writable: true, enumerable: true, configurable: true, value: ƒ}
openDatabase: {writable: true, enumerable: true, configurable: true, value: ƒ}
opener: {value: null, writable: true, enumerable: true, configurable: true}
origin: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
outerHeight: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
outerWidth: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
pageXOffset: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
pageYOffset: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
parent: {value: Window, writable: true, enumerable: true, configurable: true}
parseFloat: {writable: true, enumerable: false, configurable: true, value: ƒ}
parseInt: {writable: true, enumerable: false, configurable: true, value: ƒ}
performance: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
personalbar: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
postMessage: {writable: true, enumerable: true, configurable: true, value: ƒ}
print: {writable: true, enumerable: true, configurable: true, value: ƒ}
profile: {writable: true, enumerable: false, configurable: true, value: ƒ}
profileEnd: {writable: true, enumerable: false, configurable: true, value: ƒ}
prompt: {writable: true, enumerable: true, configurable: true, value: ƒ}
queryObjects: {writable: true, enumerable: false, configurable: true, value: ƒ}
queueMicrotask: {writable: true, enumerable: true, configurable: true, value: ƒ}
releaseEvents: {writable: true, enumerable: true, configurable: true, value: ƒ}
requestAnimationFrame: {writable: true, enumerable: true, configurable: true, value: ƒ}
requestIdleCallback: {writable: true, enumerable: true, configurable: true, value: ƒ}
resizeBy: {writable: true, enumerable: true, configurable: true, value: ƒ}
resizeTo: {writable: true, enumerable: true, configurable: true, value: ƒ}
screen: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
screenLeft: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
screenTop: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
screenX: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
screenY: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
scroll: {writable: true, enumerable: true, configurable: true, value: ƒ}
scrollBy: {writable: true, enumerable: true, configurable: true, value: ƒ}
scrollTo: {writable: true, enumerable: true, configurable: true, value: ƒ}
scrollX: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
scrollY: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
scrollbars: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
self: {value: Window, writable: true, enumerable: true, configurable: true}
sessionStorage: {set: undefined, enumerable: true, configurable: true, get: ƒ}
setInterval: {writable: true, enumerable: true, configurable: true, value: ƒ}
setTimeout: {writable: true, enumerable: true, configurable: true, value: ƒ}
speechSynthesis: {set: undefined, enumerable: true, configurable: true, get: ƒ}
status: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
statusbar: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
stop: {writable: true, enumerable: true, configurable: true, value: ƒ}
styleMedia: {set: undefined, enumerable: true, configurable: true, get: ƒ}
table: {writable: true, enumerable: false, configurable: true, value: ƒ}
toolbar: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
top: {value: Window, writable: false, enumerable: true, configurable: false}
trustedTypes: {set: undefined, enumerable: true, configurable: true, get: ƒ}
undebug: {writable: true, enumerable: false, configurable: true, value: ƒ}
undefined: {value: undefined, writable: false, enumerable: false, configurable: false}
unescape: {writable: true, enumerable: false, configurable: true, value: ƒ}
unmonitor: {writable: true, enumerable: false, configurable: true, value: ƒ}
unmonitorEvents: {writable: true, enumerable: false, configurable: true, value: ƒ}
values: {writable: true, enumerable: false, configurable: true, value: ƒ}
visualViewport: {enumerable: true, configurable: true, get: ƒ, set: ƒ}
webkitCancelAnimationFrame: {writable: true, enumerable: true, configurable: true, value: ƒ}
webkitMediaStream: {writable: true, enumerable: false, configurable: true, value: ƒ}
webkitRTCPeerConnection: {writable: true, enumerable: false, configurable: true, value: ƒ}
webkitRequestAnimationFrame: {writable: true, enumerable: true, configurable: true, value: ƒ}
webkitRequestFileSystem: {writable: true, enumerable: true, configurable: true, value: ƒ}
webkitResolveLocalFileSystemURL: {writable: true, enumerable: true, configurable: true, value: ƒ}
webkitSpeechGrammar: {writable: true, enumerable: false, configurable: true, value: ƒ}
webkitSpeechGrammarList: {writable: true, enumerable: false, configurable: true, value: ƒ}
webkitSpeechRecognition: {writable: true, enumerable: false, configurable: true, value: ƒ}
webkitSpeechRecognitionError: {writable: true, enumerable: false, configurable: true, value: ƒ}
webkitSpeechRecognitionEvent: {writable: true, enumerable: false, configurable: true, value: ƒ}
webkitStorageInfo: {set: undefined, enumerable: true, configurable: true, get: ƒ}
webkitURL: {writable: true, enumerable: false, configurable: true, value: ƒ}
window: {value: Window, writable: false, enumerable: true, configurable: false}
View Code

 

 

 

node中的全局对象的属性:

// node.js 中 Object.getOwnPropertyDescriptors(globalThis)

{
  Object: {
    value: [Function: Object],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Function: {
    value: [Function: Function],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Array: {
    value: [Function: Array],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Number: {
    value: [Function: Number],
    writable: true,
    enumerable: false,
    configurable: true
  },
  parseFloat: {
    value: [Function: parseFloat],
    writable: true,
    enumerable: false,
    configurable: true
  },
  parseInt: {
    value: [Function: parseInt],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Infinity: {
    value: Infinity,
    writable: false,
    enumerable: false,
    configurable: false
  },
  NaN: {
    value: NaN,
    writable: false,
    enumerable: false,
    configurable: false
  },
  undefined: {
    value: undefined,
    writable: false,
    enumerable: false,
    configurable: false
  },
  Boolean: {
    value: [Function: Boolean],
    writable: true,
    enumerable: false,
    configurable: true
  },
  String: {
    value: [Function: String],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Symbol: {
    value: [Function: Symbol],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Date: {
    value: [Function: Date],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Promise: {
    value: [Function: Promise],
    writable: true,
    enumerable: false,
    configurable: true
  },
  RegExp: {
    value: [Function: RegExp],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Error: {
    value: [Function: Error] { stackTraceLimit: 10 },
    writable: true,
    enumerable: false,
    configurable: true
  },
  EvalError: {
    value: [Function: EvalError],
    writable: true,
    enumerable: false,
    configurable: true
  },
  RangeError: {
    value: [Function: RangeError],
    writable: true,
    enumerable: false,
    configurable: true
  },
  ReferenceError: {
    value: [Function: ReferenceError],
    writable: true,
    enumerable: false,
    configurable: true
  },
  SyntaxError: {
    value: [Function: SyntaxError],
    writable: true,
    enumerable: false,
    configurable: true
  },
  TypeError: {
    value: [Function: TypeError],
    writable: true,
    enumerable: false,
    configurable: true
  },
  URIError: {
    value: [Function: URIError],
    writable: true,
    enumerable: false,
    configurable: true
  },
  globalThis: {
    value: <ref *1> Object [global] {
      global: [Circular *1],
      clearInterval: [Function: clearInterval],
      clearTimeout: [Function: clearTimeout],
      setInterval: [Function: setInterval],
      setTimeout: [Function],
      queueMicrotask: [Function: queueMicrotask],
      clearImmediate: [Function: clearImmediate],
      setImmediate: [Function]
    },
    writable: true,
    enumerable: false,
    configurable: true
  },
  JSON: {
    value: Object [JSON] {},
    writable: true,
    enumerable: false,
    configurable: true
  },
  Math: {
    value: Object [Math] {},
    writable: true,
    enumerable: false,
    configurable: true
  },
  console: {
    value: {
      log: [Function: bound consoleCall],
      warn: [Function: bound consoleCall],
      dir: [Function: bound consoleCall],
      time: [Function: bound consoleCall],
      timeEnd: [Function: bound consoleCall],
      timeLog: [Function: bound consoleCall],
      trace: [Function: bound consoleCall],
      assert: [Function: bound consoleCall],
      clear: [Function: bound consoleCall],
      count: [Function: bound consoleCall],
      countReset: [Function: bound consoleCall],
      group: [Function: bound consoleCall],
      groupEnd: [Function: bound consoleCall],
      table: [Function: bound consoleCall],
      debug: [Function: bound consoleCall],
      info: [Function: bound consoleCall],
      dirxml: [Function: bound consoleCall],
      error: [Function: bound consoleCall],
      groupCollapsed: [Function: bound consoleCall],
      Console: [Function: Console],
      profile: [Function: profile],
      profileEnd: [Function: profileEnd],
      timeStamp: [Function: timeStamp],
      context: [Function: context],
      [Symbol(kBindStreamsEager)]: [Function: bound ],
      [Symbol(kBindStreamsLazy)]: [Function: bound ],
      [Symbol(kBindProperties)]: [Function: bound ],
      [Symbol(kWriteToConsole)]: [Function: bound ],
      [Symbol(kGetInspectOptions)]: [Function: bound ],
      [Symbol(kFormatForStdout)]: [Function: bound ],
      [Symbol(kFormatForStderr)]: [Function: bound ]
    },
    writable: true,
    enumerable: false,
    configurable: true
  },
  Intl: { value: {}, writable: true, enumerable: false, configurable: true },
  ArrayBuffer: {
    value: [Function: ArrayBuffer],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Uint8Array: {
    value: [Function: Uint8Array],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Int8Array: {
    value: [Function: Int8Array],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Uint16Array: {
    value: [Function: Uint16Array],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Int16Array: {
    value: [Function: Int16Array],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Uint32Array: {
    value: [Function: Uint32Array],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Int32Array: {
    value: [Function: Int32Array],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Float32Array: {
    value: [Function: Float32Array],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Float64Array: {
    value: [Function: Float64Array],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Uint8ClampedArray: {
    value: [Function: Uint8ClampedArray],
    writable: true,
    enumerable: false,
    configurable: true
  },
  BigUint64Array: {
    value: [Function: BigUint64Array],
    writable: true,
    enumerable: false,
    configurable: true
  },
  BigInt64Array: {
    value: [Function: BigInt64Array],
    writable: true,
    enumerable: false,
    configurable: true
  },
  DataView: {
    value: [Function: DataView],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Map: {
    value: [Function: Map],
    writable: true,
    enumerable: false,
    configurable: true
  },
  BigInt: {
    value: [Function: BigInt],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Set: {
    value: [Function: Set],
    writable: true,
    enumerable: false,
    configurable: true
  },
  WeakMap: {
    value: [Function: WeakMap],
    writable: true,
    enumerable: false,
    configurable: true
  },
  WeakSet: {
    value: [Function: WeakSet],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Proxy: {
    value: [Function: Proxy],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Reflect: { value: {}, writable: true, enumerable: false, configurable: true },
  decodeURI: {
    value: [Function: decodeURI],
    writable: true,
    enumerable: false,
    configurable: true
  },
  decodeURIComponent: {
    value: [Function: decodeURIComponent],
    writable: true,
    enumerable: false,
    configurable: true
  },
  encodeURI: {
    value: [Function: encodeURI],
    writable: true,
    enumerable: false,
    configurable: true
  },
  encodeURIComponent: {
    value: [Function: encodeURIComponent],
    writable: true,
    enumerable: false,
    configurable: true
  },
  escape: {
    value: [Function: escape],
    writable: true,
    enumerable: false,
    configurable: true
  },
  unescape: {
    value: [Function: unescape],
    writable: true,
    enumerable: false,
    configurable: true
  },
  eval: {
    value: [Function: eval],
    writable: true,
    enumerable: false,
    configurable: true
  },
  isFinite: {
    value: [Function: isFinite],
    writable: true,
    enumerable: false,
    configurable: true
  },
  isNaN: {
    value: [Function: isNaN],
    writable: true,
    enumerable: false,
    configurable: true
  },
  SharedArrayBuffer: {
    value: [Function: SharedArrayBuffer],
    writable: true,
    enumerable: false,
    configurable: true
  },
  Atomics: {
    value: Object [Atomics] {},
    writable: true,
    enumerable: false,
    configurable: true
  },
  WebAssembly: {
    value: Object [WebAssembly] {
      compile: [Function: compile],
      validate: [Function: validate],
      instantiate: [Function: instantiate]
    },
    writable: true,
    enumerable: false,
    configurable: true
  },
  global: {
    value: <ref *1> Object [global] {
      global: [Circular *1],
      clearInterval: [Function: clearInterval],
      clearTimeout: [Function: clearTimeout],
      setInterval: [Function: setInterval],
      setTimeout: [Function],
      queueMicrotask: [Function: queueMicrotask],
      clearImmediate: [Function: clearImmediate],
      setImmediate: [Function]
    },
    writable: true,
    enumerable: true,
    configurable: true
  },
  process: {
    get: [Function: get],
    set: [Function: set],
    enumerable: false,
    configurable: true
  },
  Buffer: {
    get: [Function: get],
    set: [Function: set],
    enumerable: false,
    configurable: true
  },
  URL: {
    value: [Function: URL],
    writable: true,
    enumerable: false,
    configurable: true
  },
  URLSearchParams: {
    value: [Function: URLSearchParams],
    writable: true,
    enumerable: false,
    configurable: true
  },
  TextEncoder: {
    value: [Function: TextEncoder],
    writable: true,
    enumerable: false,
    configurable: true
  },
  TextDecoder: {
    value: [Function: TextDecoder],
    writable: true,
    enumerable: false,
    configurable: true
  },
  clearInterval: {
    value: [Function: clearInterval],
    writable: true,
    enumerable: true,
    configurable: true
  },
  clearTimeout: {
    value: [Function: clearTimeout],
    writable: true,
    enumerable: true,
    configurable: true
  },
  setInterval: {
    value: [Function: setInterval],
    writable: true,
    enumerable: true,
    configurable: true
  },
  setTimeout: {
    value: [Function: setTimeout] {
      [Symbol(nodejs.util.promisify.custom)]: [Function (anonymous)]
    },
    writable: true,
    enumerable: true,
    configurable: true
  },
  queueMicrotask: {
    value: [Function: queueMicrotask],
    writable: true,
    enumerable: true,
    configurable: true
  },
  clearImmediate: {
    value: [Function: clearImmediate],
    writable: true,
    enumerable: true,
    configurable: true
  },
  setImmediate: {
    value: [Function: setImmediate] {
      [Symbol(nodejs.util.promisify.custom)]: [Function (anonymous)]
    },
    writable: true,
    enumerable: true,
    configurable: true
  },
  [Symbol(Symbol.toStringTag)]: {
    value: 'global',
    writable: false,
    enumerable: false,
    configurable: true
  }
}

 

 

浏览器环境和 node.js 环境全局对象属性对比:

既然列出了浏览器和 node.js 的全局对象属性,那就稍微对比一下在 node.js 环境中多了哪些属性吧。

// 在 node.js 环境中, 通过  Object.getOwnPropertyNames(globalThis) 得到以下 NodeGlobalThisPropsNames
var NodeGlobalThisPropsNames = [
  'Object', 'Function', 'Array',
  'Number', 'parseFloat', 'parseInt',
  'Infinity', 'NaN', 'undefined',
  'Boolean', 'String', 'Symbol',
  'Date', 'Promise', 'RegExp',
  'Error', 'EvalError', 'RangeError',
  'ReferenceError', 'SyntaxError', 'TypeError',
  'URIError', 'globalThis', 'JSON',
  'Math', 'console', 'Intl',
  'ArrayBuffer', 'Uint8Array', 'Int8Array',
  'Uint16Array', 'Int16Array', 'Uint32Array',
  'Int32Array', 'Float32Array', 'Float64Array',
  'Uint8ClampedArray', 'BigUint64Array', 'BigInt64Array',
  'DataView', 'Map', 'BigInt',
  'Set', 'WeakMap', 'WeakSet',
  'Proxy', 'Reflect', 'decodeURI',
  'decodeURIComponent', 'encodeURI', 'encodeURIComponent',
  'escape', 'unescape', 'eval',
  'isFinite', 'isNaN', 'SharedArrayBuffer',
  'Atomics', 'WebAssembly', 'global',
  'process', 'Buffer', 'URL',
  'URLSearchParams', 'TextEncoder', 'TextDecoder',
  'clearInterval', 'clearTimeout', 'setInterval',
  'setTimeout', 'queueMicrotask', 'clearImmediate',
  'setImmediate'
]

// 在浏览器环境中(本例子为 google),获得以下 googleGlobalThisPropsNames
// 大概有近千个属性,由于篇幅关系就不一一列出了,可以参考上面的 浏览器中的全局对象的属性 
var googleGlobalThisPropsNames = Object.getOwnPropertyNames(globalThis)

// 过滤出 node.js 独有的全局对象属性
var nodeProps = NodeGlobalThisPropsNames
var webProps = googleGlobalThisPropsNames
var noRepProps = nodeProps.filter(i=>webProps.indexOf(i)===-1)
// 打印得到 noRepProps =  ['global','process','Buffer','clearImmediate','setImmediate']

得到过滤后的 node.js 全局属性:

  • global 用于指向全局对象。
  • clearImmediate 和 setImmediate 是用于执行回调函数的定时器,一个 set 一个 clear 和其他定时器使用相似,其实在新版的 IE 已经被提出,但由于各种因素应该不会成为标准。
  • process 提供了有关当前 Node.js 进程的信息并对其进行控制。
  • Buffer 用于以字节序列的形式来表示二进制数据。 Uint8Array 类的子类。

 

全局对象的常见属性:

Infinity
功能:代表正的无穷大的数值。

注意:Infinity代表了超出JavaScript处理范围的数值。也就是说JS无法处理的数值都是Infinity。实践证明,JS所能处理的最大值是1.7976931348623157e+308,而最小值是5e-324。

示例:

console.log(6/0); //Infinity
console.log(-6/0); //-Infinity
console.log(0/0); //NaN
console.log(1.7976931348623157E+10308); //Infinity
console.log(-1.7976931348623157E+10308); //-Infinity

 

 

NaN
功能:代表非数字的值。

注意:请使用 isNaN() 方法来判断一个值是否是数字,原因是 NaN 与所有值都不相等,包括它自己。

示例:

var a = Number('100');
var b = Number('hello world');

console.log(a); //100
console.log(b); //NaN
console.log(isNaN(a)); //false
console.log(isNaN(b)); //true

 

Undefined
功能:代表未定义的值。

注意:判断一个变量是否未定义,只能用 === undefined 运算来测试,因为 == 运算符会认为 undefined 值等价于 null,即undefined == null会返回true。null 表示无值,而 undefined 表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性。

示例:

var a;
var b = '';
var c = null;

console.log(a === undefined); //true
console.log(b === undefined); //false
console.log(c == undefined); //true

 

 

 

全局对象的常见方法:

1、encodeURI(URIString)

功能:

  • 将字符串作为URI进行编码,返回值为URIstring 的副本。
  • 该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
  • 该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#
  • 提示:如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。

参数:

  • URIString(必须):一个待编码的字符串。

示例:

console.log(encodeURI('http://www.baidu.com')); //http://www.baidu.com
console.log(encodeURI('http://www.baidu.com/my mind')); //http://www.baidu.com/my%20mind
console.log(encodeURI(',/?:@&=+$#')); //,/?:@&=+$#

 

2、encodeURIComponent(URIString)

功能:

  • 将字符串作为URI组件进行编码,返回值为URIstring的副本。
  • 该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
  • 其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

参数:

  • URIString(必须):一个待编码的字符串。

注意:encodeURI和encodeURIComponent的区别:

  • 它们都是编码URL,唯一区别就是编码的字符范围,其中encodeURI方法不会对下列字符编码 ASCII字母、数字、~!@#$&*()=:/,;?+'
  • encodeURIComponent方法不会对下列字符编码 ASCII字母、数字、~!*()'
  • 所以encodeURIComponent比encodeURI编码的范围更大。
  • 实际例子来说,encodeURIComponent会把 http:// 编码成 http%3A%2F%2F 而encodeURI却不会。
  • 相应的,存在decodeURI()和decodeURIComponent是用来解码的,逆向操作。

示例:

// 当你需要编码整个URL,然后使用这个URL,则使用encodeURI。
console.log(encodeURI('http://www.baidu.com/home/some other thing'));
//编码后为:http://www.baidu.com/home/some%20other%20thing; 其中,空格被编码成了%20
//但是如果你用了encodeURIComponent
console.log(encodeURIComponent('http://www.baidu.com/home/some other thing'));
//http%3A%2F%2Fwww.baidu.com%2Fhome%2Fsome%20other%20thing 连 "/" 都被编码了,整个URL已经没法用了


// 当你需要编码URL中的参数时,那么使用encodeURIComponent。
var param = "http://www.baidu.com/home/"; //param为参数
param = encodeURIComponent(param);
var url = "http://www.baidu.com?next=" + param;
console.log(url) //'http://www.baidu.com?next=http%3A%2F%2Fwww.baidu.com%2Fhome%2F'
//显然,参数中的 "/" 被编码了,而如果用encodeURI肯定要出问题,因为后面的/是需要编码的。

 

 

3、parseInt(string,radix)

功能:解析一个字符串,并返回一个整数。

参数:

  • string(必须):待解析的字符串
  • radix(可选):表示要解析的数字的基数。该值介于 2 ~ 36 之间。
    如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。

示例:

console.log(parseInt('10')); //10
console.log(parseInt('11',9)); //10 (9+1)
console.log(parseInt('11',2)); //3 (2+1)
console.log(parseInt('17',8)); //15 (8+7)
console.log(parseInt('1f',16)); //31 (16+15)
console.log(parseInt('010')); //10
console.log(parseInt('0x0011')); //17

 

4、parseFloat()

功能:解析一个字符串,并返回一个浮点数。该函数指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字的末端为止。

参数:

  • string(必须):待解析的字符串

注意:开头和结尾的空格是允许的。如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN。如果只想解析数字的整数部分,请使用 parseInt() 方法。

示例:

console.log(parseFloat('10')); //10
console.log(parseFloat('10.00')); //10 
console.log(parseFloat('10.33')); //10.33
console.log(parseFloat(' 60 ')); //60 首尾的空格会忽略
console.log(parseFloat('23 34 45')); //23 中间的空格不会忽略,会中断
console.log(parseFloat('23 years')); //23
console.log(parseFloat('i am 23')); //NaN

 

 

5、isFinite(number)

功能:用于检查其参数是否是无穷大。

参数:

  • number(必须):待检测数字。
  • 如果 number 是有限数字(或可转换为有限数字),那么返回 true。否则,如果 number 是 NaN(非数字),或者是正、负无穷大的数,则返回 false。

示例:

console.log(isFinite(123)); //true
console.log(isFinite(-1.23)); //true
console.log(isFinite(5-2)); //true
console.log(isFinite(0)); //true
console.log(isFinite(0/0)); //false
console.log(isFinite('Hello')); //false

 

6、isNaN(number)

功能:用于检查其参数是否为非数字值。

参数:

  • number(必须):待检测数字。
  • 如果 number 是非数字值 NaN(或者能被转换成NaN),返回 true,否则返回 false。

注意:isNaN() 函数通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字。当然也可以用 isNaN() 函数来检测算数错误,比如用 0 作除数的情况。

示例:

console.log(isNaN(123)); //false
console.log(isNaN(-1.23)); //false
console.log(isNaN(5-2)); //false
console.log(isNaN(0)); //false
console.log(isNaN(0/0)); //true
console.log(isNaN('Hello')); //true

 

7、Number(object)

功能:把对象的值转换为数字。

参数:

  • object(必须):待转换的对象。
  • 如果参数是 Date 对象,Number() 返回从1970年1月1日至今的毫秒数,即时间戳。如果对象的值无法转换为数字,那么 Number() 函数返回 NaN。

示例:

console.log(Number(new Boolean(true))); //1
console.log(Number(new Boolean(false))); //0
console.log(Number(new Date())); //1506266494726
console.log(Number(new String('999'))); //999
console.log(Number(new String('999 888'))); //NaN

 

8、String(object)

功能:把对象的值转换为字符串。

参数:

  • object(必须):待转换的对象。

示例:

console.log(String(new Boolean(true))); //'true'
console.log(String(new Boolean(false))); //'false'
console.log(String(new Date())); //'Sun Sep 24 2017 23:25:43 GMT+0800 (CST)'
console.log(String(new String('999'))); //'999'
console.log(String(new String('999 888'))); //'999 888'
console.log(String(12345)); //'12345'

 

 

JavaScript 中的三大对象 (本地对象、内置对象、 宿主对象)

本地对象

 

内置对象

 

宿主对象

 

posted @ 2020-07-17 18:01  elfpower  阅读(1947)  评论(0编辑  收藏  举报