전역 객체
이 객체들은 모든 모듈에서 사용할 수 있습니다.
다음 변수들은 전역처럼 보일 수 있지만 그렇지 않습니다. 이 변수들은 CommonJS 모듈의 범위 내에서만 존재합니다.
여기에 나열된 객체들은 Node.js에 특화되어 있습니다. JavaScript 언어 자체의 일부인 내장 객체들도 있으며, 이는 전역적으로 접근 가능합니다.
클래스: AbortController
[히스토리]
버전 | 변경 사항 |
---|---|
v15.4.0 | 더 이상 실험적이지 않습니다. |
v15.0.0, v14.17.0 | 추가됨: v15.0.0, v14.17.0 |
선택된 Promise
기반 API에서 취소를 알리는 데 사용되는 유틸리티 클래스입니다. API는 Web API AbortController
를 기반으로 합니다.
const ac = new AbortController();
ac.signal.addEventListener('abort', () => console.log('중단됨!'),
{ once: true });
ac.abort();
console.log(ac.signal.aborted); // true 출력
abortController.abort([reason])
[히스토리]
버전 | 변경 사항 |
---|---|
v17.2.0, v16.14.0 | 새로운 선택적 reason 인수가 추가되었습니다. |
v15.0.0, v14.17.0 | 추가됨: v15.0.0, v14.17.0 |
reason
<any> 선택적 이유이며,AbortSignal
의reason
속성에서 검색할 수 있습니다.
중단 신호를 트리거하여 abortController.signal
이 'abort'
이벤트를 발생시키도록 합니다.
abortController.signal
추가됨: v15.0.0, v14.17.0
- 타입: <AbortSignal>
클래스: AbortSignal
추가됨: v15.0.0, v14.17.0
- 확장: <EventTarget>
AbortSignal
은 abortController.abort()
메서드가 호출될 때 옵저버에게 알리는 데 사용됩니다.
정적 메서드: AbortSignal.abort([reason])
[기록]
버전 | 변경 사항 |
---|---|
v17.2.0, v16.14.0 | 새로운 선택적 reason 인수가 추가되었습니다. |
v15.12.0, v14.17.0 | 추가됨: v15.12.0, v14.17.0 |
reason
: <any>- 반환: <AbortSignal>
새로 이미 중단된 AbortSignal
을 반환합니다.
정적 메서드: AbortSignal.timeout(delay)
추가됨: v17.3.0, v16.14.0
delay
<number> AbortSignal을 트리거하기 전에 기다릴 밀리초 수입니다.
delay
밀리초 후에 중단되는 새로운 AbortSignal
을 반환합니다.
정적 메서드: AbortSignal.any(signals)
추가됨: v20.3.0, v18.17.0
signals
<AbortSignal[]> 새로운AbortSignal
을 구성할AbortSignal
입니다.
제공된 신호 중 하나라도 중단되면 중단되는 새로운 AbortSignal
을 반환합니다. 해당 abortSignal.reason
은 중단되게 한 signals
중 하나로 설정됩니다.
이벤트: 'abort'
추가됨: v15.0.0, v14.17.0
'abort'
이벤트는 abortController.abort()
메서드가 호출될 때 발생합니다. 콜백은 type
속성이 'abort'
로 설정된 단일 객체 인수로 호출됩니다.
const ac = new AbortController();
// onabort 속성을 사용하거나...
ac.signal.onabort = () => console.log('aborted!');
// 또는 EventTarget API를 사용합니다...
ac.signal.addEventListener('abort', (event) => {
console.log(event.type); // 'abort'를 출력합니다.
}, { once: true });
ac.abort();
AbortSignal
이 연결된 AbortController
는 'abort'
이벤트를 한 번만 트리거합니다. 코드가 'abort'
이벤트 리스너를 추가하기 전에 abortSignal.aborted
속성이 false
인지 확인하는 것이 좋습니다.
AbortSignal
에 연결된 모든 이벤트 리스너는 이벤트 리스너가 'abort'
이벤트가 처리되는 즉시 제거되도록 { once: true }
옵션(또는 EventEmitter
API를 사용하여 리스너를 연결하는 경우 once()
메서드)을 사용해야 합니다. 그렇지 않으면 메모리 누수가 발생할 수 있습니다.
abortSignal.aborted
Added in: v15.0.0, v14.17.0
- 유형: <boolean>
AbortController
가 중단된 후 True입니다.
abortSignal.onabort
Added in: v15.0.0, v14.17.0
- 유형: <Function>
abortController.abort()
함수가 호출되었을 때 알림을 받기 위해 사용자 코드가 설정할 수 있는 선택적 콜백 함수입니다.
abortSignal.reason
Added in: v17.2.0, v16.14.0
- 유형: <any>
AbortSignal
이 트리거되었을 때 지정된 선택적 이유입니다.
const ac = new AbortController();
ac.abort(new Error('boom!'));
console.log(ac.signal.reason); // Error: boom!
abortSignal.throwIfAborted()
Added in: v17.3.0, v16.17.0
abortSignal.aborted
가 true
이면 abortSignal.reason
을 던집니다.
Class: Blob
Added in: v18.0.0
<Blob>을 참조하세요.
Class: Buffer
Added in: v0.1.103
이진 데이터를 처리하는 데 사용됩니다. 버퍼 섹션을 참조하세요.
Class: ByteLengthQueuingStrategy
Added in: v18.0.0
ByteLengthQueuingStrategy
의 브라우저 호환 구현입니다.
__dirname
이 변수는 전역 변수처럼 보일 수 있지만 그렇지 않습니다. __dirname
을 참조하세요.
__filename
이 변수는 전역 변수처럼 보일 수 있지만 그렇지 않습니다. __filename
을 참조하세요.
atob(data)
Added in: v16.0.0
buffer.atob()
의 전역 별칭입니다.
BroadcastChannel
Added in: v18.0.0
<BroadcastChannel>을 참조하십시오.
btoa(data)
Added in: v16.0.0
buffer.btoa()
의 전역 별칭입니다.
clearImmediate(immediateObject)
Added in: v0.9.1
clearImmediate
는 타이머 섹션에 설명되어 있습니다.
clearInterval(intervalObject)
Added in: v0.0.1
clearInterval
는 타이머 섹션에 설명되어 있습니다.
clearTimeout(timeoutObject)
Added in: v0.0.1
clearTimeout
는 타이머 섹션에 설명되어 있습니다.
CloseEvent
Added in: v23.0.0
CloseEvent
클래스. 자세한 내용은 CloseEvent
를 참조하십시오.
CloseEvent
의 브라우저 호환 구현입니다. --no-experimental-websocket
CLI 플래그로 이 API를 비활성화하십시오.
Class: CompressionStream
Added in: v18.0.0
CompressionStream
의 브라우저 호환 구현입니다.
console
Added in: v0.1.100
stdout 및 stderr로 출력하는 데 사용됩니다. console
섹션을 참조하십시오.
Class: CountQueuingStrategy
Added in: v18.0.0
CountQueuingStrategy
의 브라우저 호환 구현입니다.
Crypto
[기록]
버전 | 변경 사항 |
---|---|
v23.0.0 | 더 이상 실험적이지 않습니다. |
v19.0.0 | 더 이상 --experimental-global-webcrypto CLI 플래그 뒤에 있지 않습니다. |
v17.6.0, v16.15.0 | 추가됨: v17.6.0, v16.15.0 |
<Crypto>의 브라우저 호환 구현입니다. 이 전역 변수는 Node.js 바이너리가 node:crypto
모듈 지원을 포함하여 컴파일된 경우에만 사용할 수 있습니다.
crypto
[기록]
버전 | 변경 사항 |
---|---|
v23.0.0 | 더 이상 실험적이지 않습니다. |
v19.0.0 | 더 이상 --experimental-global-webcrypto CLI 플래그 뒤에 있지 않습니다. |
v17.6.0, v16.15.0 | 추가됨: v17.6.0, v16.15.0 |
Web Crypto API의 브라우저 호환 구현입니다.
CryptoKey
[기록]
버전 | 변경 사항 |
---|---|
v23.0.0 | 더 이상 실험적이지 않습니다. |
v19.0.0 | 더 이상 --experimental-global-webcrypto CLI 플래그 뒤에 있지 않습니다. |
v17.6.0, v16.15.0 | 추가됨: v17.6.0, v16.15.0 |
<CryptoKey>의 브라우저 호환 구현입니다. 이 전역 변수는 Node.js 바이너리가 node:crypto
모듈 지원을 포함하여 컴파일된 경우에만 사용할 수 있습니다.
CustomEvent
[기록]
버전 | 변경 사항 |
---|---|
v23.0.0 | 더 이상 실험적이지 않습니다. |
v22.1.0, v20.13.0 | 이제 CustomEvent가 안정적입니다. |
v19.0.0 | 더 이상 --experimental-global-customevent CLI 플래그 뒤에 있지 않습니다. |
v18.7.0, v16.17.0 | 추가됨: v18.7.0, v16.17.0 |
CustomEvent
Web API의 브라우저 호환 구현입니다.
Class: DecompressionStream
Added in: v18.0.0
[Stable: 1 - Experimental]
Stable: 1 Stability: 1 - Experimental.
DecompressionStream
의 브라우저 호환 구현입니다.
Event
[History]
Version | Changes |
---|---|
v15.4.0 | 더 이상 실험적이지 않습니다. |
v15.0.0 | Added in: v15.0.0 |
Event
클래스의 브라우저 호환 구현입니다. 자세한 내용은 EventTarget
및 Event
API를 참조하세요.
EventSource
Added in: v22.3.0, v20.18.0
[Stable: 1 - Experimental]
Stable: 1 Stability: 1 - Experimental. --experimental-eventsource
CLI 플래그로 이 API를 활성화하세요.
EventSource
클래스의 브라우저 호환 구현입니다.
EventTarget
[History]
Version | Changes |
---|---|
v15.4.0 | 더 이상 실험적이지 않습니다. |
v15.0.0 | Added in: v15.0.0 |
EventTarget
클래스의 브라우저 호환 구현입니다. 자세한 내용은 EventTarget
및 Event
API를 참조하세요.
exports
이 변수는 전역으로 보일 수 있지만 그렇지 않습니다. exports
를 참조하세요.
fetch
[History]
Version | Changes |
---|---|
v21.0.0 | 더 이상 실험적이지 않습니다. |
v18.0.0 | 더 이상 --experimental-fetch CLI 플래그 뒤에 있지 않습니다. |
v17.5.0, v16.15.0 | Added in: v17.5.0, v16.15.0 |
[Stable: 2 - Stable]
Stable: 2 Stability: 2 - Stable
fetch()
함수의 브라우저 호환 구현입니다.
Class: File
Added in: v20.0.0
<File>을 참조하세요.
Class FormData
[History]
Version | Changes |
---|---|
v21.0.0 | 더 이상 실험적이지 않습니다. |
v18.0.0 | 더 이상 --experimental-fetch CLI 플래그 뒤에 있지 않습니다. |
v17.6.0, v16.15.0 | 추가됨: v17.6.0, v16.15.0 |
<FormData>의 브라우저 호환 구현입니다.
global
Added in: v0.1.27
[Stable: 3 - Legacy]
Stable: 3 안정성: 3 - 레거시. globalThis
를 대신 사용하세요.
- <Object> 전역 네임스페이스 객체.
브라우저에서 최상위 범위는 전통적으로 전역 범위였습니다. 즉, ECMAScript 모듈 내부를 제외하고 var something
은 새로운 전역 변수를 정의합니다. Node.js에서는 이것이 다릅니다. 최상위 범위는 전역 범위가 아닙니다. Node.js 모듈 내부의 var something
은 CommonJS 모듈인지 ECMAScript 모듈인지에 관계없이 해당 모듈에 로컬입니다.
Class Headers
[History]
Version | Changes |
---|---|
v21.0.0 | 더 이상 실험적이지 않습니다. |
v18.0.0 | 더 이상 --experimental-fetch CLI 플래그 뒤에 있지 않습니다. |
v17.5.0, v16.15.0 | 추가됨: v17.5.0, v16.15.0 |
<Headers>의 브라우저 호환 구현입니다.
localStorage
Added in: v22.4.0
localStorage
의 브라우저 호환 구현입니다. 데이터는 --localstorage-file
CLI 플래그로 지정된 파일에 암호화되지 않은 상태로 저장됩니다. 저장할 수 있는 최대 데이터 양은 10MB입니다. Web Storage API 외부에서 이 데이터를 수정하는 것은 지원되지 않습니다. --experimental-webstorage
CLI 플래그를 사용하여 이 API를 활성화하세요. 서버 컨텍스트에서 사용될 때 localStorage
데이터는 사용자별 또는 요청별로 저장되지 않고 모든 사용자와 요청 간에 공유됩니다.
MessageChannel
Added in: v15.0.0
MessageChannel
클래스. 자세한 내용은 MessageChannel
을 참조하십시오.
MessageEvent
Added in: v15.0.0
MessageEvent
클래스. 자세한 내용은 MessageEvent
를 참조하십시오.
MessagePort
Added in: v15.0.0
MessagePort
클래스. 자세한 내용은 MessagePort
를 참조하십시오.
module
이 변수는 전역으로 보일 수 있지만 그렇지 않습니다. module
을 참조하십시오.
Navigator
Added in: v21.0.0
[Stable: 1 - Experimental]
Stable: 1 안정성: 1.1 - 활발한 개발. --no-experimental-global-navigator
CLI 플래그를 사용하여 이 API를 비활성화하십시오.
Navigator API의 부분적인 구현입니다.
navigator
Added in: v21.0.0
[Stable: 1 - Experimental]
Stable: 1 안정성: 1.1 - 활발한 개발. --no-experimental-global-navigator
CLI 플래그를 사용하여 이 API를 비활성화하십시오.
window.navigator
의 부분적인 구현입니다.
navigator.hardwareConcurrency
Added in: v21.0.0
navigator.hardwareConcurrency
읽기 전용 속성은 현재 Node.js 인스턴스에서 사용할 수 있는 논리 프로세서 수를 반환합니다.
console.log(`이 프로세스는 ${navigator.hardwareConcurrency}개의 논리 프로세서에서 실행 중입니다.`);
navigator.language
Added in: v21.2.0
navigator.language
읽기 전용 속성은 Node.js 인스턴스의 기본 설정 언어를 나타내는 문자열을 반환합니다. 언어는 런타임 시 Node.js에서 사용하는 ICU 라이브러리에 의해 운영 체제의 기본 언어를 기반으로 결정됩니다.
이 값은 RFC 5646에 정의된 언어 버전을 나타냅니다.
ICU 없이 빌드된 경우 대체 값은 'en-US'
입니다.
console.log(`Node.js 인스턴스의 기본 설정 언어에는 '${navigator.language}' 태그가 있습니다.`);
navigator.languages
Added in: v21.2.0
- {Array
navigator.languages
읽기 전용 속성은 Node.js 인스턴스가 선호하는 언어를 나타내는 문자열 배열을 반환합니다. 기본적으로 navigator.languages
에는 navigator.language
값만 포함되어 있으며, 이는 운영 체제의 기본 언어를 기반으로 런타임 시 Node.js에서 사용하는 ICU 라이브러리에 의해 결정됩니다.
ICU가 없는 빌드의 폴백 값은 ['en-US']
입니다.
console.log(`The preferred languages are '${navigator.languages}'`);
navigator.platform
Added in: v21.2.0
navigator.platform
읽기 전용 속성은 Node.js 인스턴스가 실행 중인 플랫폼을 식별하는 문자열을 반환합니다.
console.log(`This process is running on ${navigator.platform}`);
navigator.userAgent
Added in: v21.1.0
navigator.userAgent
읽기 전용 속성은 런타임 이름과 주요 버전 번호로 구성된 사용자 에이전트를 반환합니다.
console.log(`The user-agent is ${navigator.userAgent}`); // Prints "Node.js/21"
PerformanceEntry
Added in: v19.0.0
PerformanceEntry
클래스. 자세한 내용은 PerformanceEntry
를 참조하세요.
PerformanceMark
Added in: v19.0.0
PerformanceMark
클래스. 자세한 내용은 PerformanceMark
를 참조하세요.
PerformanceMeasure
Added in: v19.0.0
PerformanceMeasure
클래스. 자세한 내용은 PerformanceMeasure
를 참조하세요.
PerformanceObserver
Added in: v19.0.0
PerformanceObserver
클래스. 자세한 내용은 PerformanceObserver
를 참조하세요.
PerformanceObserverEntryList
Added in: v19.0.0
PerformanceObserverEntryList
클래스. 자세한 내용은 PerformanceObserverEntryList
를 참조하세요.
PerformanceResourceTiming
추가된 버전: v19.0.0
PerformanceResourceTiming
클래스. 자세한 내용은 PerformanceResourceTiming
을 참조하십시오.
performance
추가된 버전: v16.0.0
process
추가된 버전: v0.1.7
process 객체. process
객체 섹션을 참조하십시오.
queueMicrotask(callback)
추가된 버전: v11.0.0
callback
<Function> 큐에 넣을 함수.
queueMicrotask()
메서드는 마이크로태스크를 큐에 넣어 callback
을 호출합니다. callback
이 예외를 발생시키면 process
객체 'uncaughtException'
이벤트가 발생합니다.
마이크로태스크 큐는 V8에 의해 관리되며 Node.js에 의해 관리되는 process.nextTick()
큐와 유사한 방식으로 사용될 수 있습니다. process.nextTick()
큐는 Node.js 이벤트 루프의 각 턴에서 항상 마이크로태스크 큐보다 먼저 처리됩니다.
// 여기에서 `queueMicrotask()`는 'load' 이벤트가 항상
// 비동기적으로 발생하도록 보장하는 데 사용되므로 일관성이 유지됩니다.
// `process.nextTick()`을 여기에서 사용하면 'load' 이벤트가 항상 다른 프라미스 작업보다
// 먼저 발생합니다.
DataHandler.prototype.load = async function load(key) {
const hit = this._cache.get(key);
if (hit !== undefined) {
queueMicrotask(() => {
this.emit('load', hit);
});
return;
}
const data = await fetchData(key);
this._cache.set(key, data);
this.emit('load', data);
};
클래스: ReadableByteStreamController
추가된 버전: v18.0.0
ReadableByteStreamController
의 브라우저 호환 구현입니다.
클래스: ReadableStream
추가된 버전: v18.0.0
ReadableStream
의 브라우저 호환 구현입니다.
클래스: ReadableStreamBYOBReader
추가된 버전: v18.0.0
ReadableStreamBYOBReader
의 브라우저 호환 구현입니다.
클래스: ReadableStreamBYOBRequest
추가된 버전: v18.0.0
ReadableStreamBYOBRequest
의 브라우저 호환 구현입니다.
클래스: ReadableStreamDefaultController
추가된 버전: v18.0.0
ReadableStreamDefaultController
의 브라우저 호환 구현입니다.
클래스: ReadableStreamDefaultReader
추가된 버전: v18.0.0
ReadableStreamDefaultReader
의 브라우저 호환 구현입니다.
require()
이 변수는 전역으로 보일 수 있지만 그렇지 않습니다. require()
를 참조하십시오.
Response
[기록]
버전 | 변경 사항 |
---|---|
v21.0.0 | 더 이상 실험적이지 않습니다. |
v18.0.0 | 더 이상 --experimental-fetch CLI 플래그 뒤에 있지 않습니다. |
v17.5.0, v16.15.0 | 추가된 버전: v17.5.0, v16.15.0 |
<Response>의 브라우저 호환 구현입니다.
Request
[기록]
버전 | 변경 사항 |
---|---|
v21.0.0 | 더 이상 실험적이지 않습니다. |
v18.0.0 | 더 이상 --experimental-fetch CLI 플래그 뒤에 있지 않습니다. |
v17.5.0, v16.15.0 | 추가됨: v17.5.0, v16.15.0 |
<Request>의 브라우저 호환 구현입니다.
sessionStorage
추가됨: v22.4.0
sessionStorage
의 브라우저 호환 구현입니다. 데이터는 10MB의 저장 공간 할당량으로 메모리에 저장됩니다. sessionStorage
데이터는 현재 실행 중인 프로세스 내에서만 유지되며 워커 간에 공유되지 않습니다.
setImmediate(callback[, ...args])
추가됨: v0.9.1
setImmediate
는 타이머 섹션에 설명되어 있습니다.
setInterval(callback, delay[, ...args])
추가됨: v0.0.1
setInterval
은 타이머 섹션에 설명되어 있습니다.
setTimeout(callback, delay[, ...args])
추가됨: v0.0.1
setTimeout
은 타이머 섹션에 설명되어 있습니다.
Class: Storage
추가됨: v22.4.0
Storage
의 브라우저 호환 구현입니다. --experimental-webstorage
CLI 플래그를 사용하여 이 API를 활성화하십시오.
structuredClone(value[, options])
추가됨: v17.0.0
WHATWG structuredClone
메서드.
SubtleCrypto
[기록]
버전 | 변경 사항 |
---|---|
v19.0.0 | 더 이상 --experimental-global-webcrypto CLI 플래그 뒤에 있지 않습니다. |
v17.6.0, v16.15.0 | 추가됨: v17.6.0, v16.15.0 |
<SubtleCrypto>의 브라우저 호환 구현입니다. 이 전역은 Node.js 바이너리가 node:crypto
모듈에 대한 지원을 포함하여 컴파일된 경우에만 사용할 수 있습니다.
DOMException
추가됨: v17.0.0
WHATWG DOMException
클래스입니다. 자세한 내용은 DOMException
을 참조하세요.
TextDecoder
추가됨: v11.0.0
WHATWG TextDecoder
클래스입니다. TextDecoder
섹션을 참조하세요.
클래스: TextDecoderStream
추가됨: v18.0.0
TextDecoderStream
의 브라우저 호환 구현입니다.
TextEncoder
추가됨: v11.0.0
WHATWG TextEncoder
클래스입니다. TextEncoder
섹션을 참조하세요.
클래스: TextEncoderStream
추가됨: v18.0.0
TextEncoderStream
의 브라우저 호환 구현입니다.
클래스: TransformStream
추가됨: v18.0.0
TransformStream
의 브라우저 호환 구현입니다.
클래스: TransformStreamDefaultController
추가됨: v18.0.0
TransformStreamDefaultController
의 브라우저 호환 구현입니다.
URL
Added in: v10.0.0
WHATWG URL
클래스입니다. URL
섹션을 참조하십시오.
URLSearchParams
Added in: v10.0.0
WHATWG URLSearchParams
클래스입니다. URLSearchParams
섹션을 참조하십시오.
WebAssembly
Added in: v8.0.0
모든 W3C WebAssembly 관련 기능의 네임스페이스 역할을 하는 객체입니다. 사용법 및 호환성은 Mozilla Developer Network를 참조하십시오.
WebSocket
[History]
Version | Changes |
---|---|
v22.4.0 | 더 이상 실험적이지 않습니다. |
v22.0.0 | 더 이상 --experimental-websocket CLI 플래그 뒤에 있지 않습니다. |
v21.0.0, v20.10.0 | Added in: v21.0.0, v20.10.0 |
[Stable: 2 - Stable]
Stable: 2 Stability: 2 - 안정적입니다.
WebSocket
의 브라우저 호환 구현입니다. --no-experimental-websocket
CLI 플래그로 이 API를 비활성화합니다.
Class: WritableStream
Added in: v18.0.0
[Stable: 1 - Experimental]
Stable: 1 Stability: 1 - 실험적입니다.
WritableStream
의 브라우저 호환 구현입니다.
Class: WritableStreamDefaultController
Added in: v18.0.0
[Stable: 1 - Experimental]
Stable: 1 Stability: 1 - 실험적입니다.
WritableStreamDefaultController
의 브라우저 호환 구현입니다.
Class: WritableStreamDefaultWriter
Added in: v18.0.0
[Stable: 1 - Experimental]
Stable: 1 Stability: 1 - 실험적입니다.
WritableStreamDefaultWriter
의 브라우저 호환 구현입니다.