Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- yaml
- SharedArrayBuffer
- secure context
- qwen3-coder-next
- ndjson
- PowerShell
- json schema
- tauri
- podman compose
- Docker Compose
- docker
- glm-ocr
- podman
- io
- vscode
- Java
- Ollama
- Webpack
- RandomAccessFile
- cross-origin isolated
- sys.path
- .dockerignore
- Typescript
- cli
- curl
- vim
- json
- Thinking Mode
- Vite
- 이미지
Archives
- Today
- Total
워로디스
JavaScript. 함수 호출 앞의 void 정리 본문
기본 형태
void fn();
이는 특별한 함수 호출 문법이 아니라, void 단항 연산자를 함수 호출 결과에 적용한 것이다.
void fn();
는 다음과 같다.
void (fn());
의미
void fn();
의 동작은 다음과 같다.
fn()을 실행한다.fn()의 반환값은 버린다.- 전체 표현식의 결과는 항상
undefined가 된다.
function fn() {
return 123;
}
const result = void fn();
console.log(result); // undefined
단독 문장으로 쓰인 경우
void fn();
처럼 단독 문장으로 쓰이면 보통 다음 의미다.
fn(); // 반환값을 의도적으로 사용하지 않음
즉, 함수는 실행하되 반환값은 쓰지 않겠다는 의도 표시로 볼 수 있다.
async 함수에 쓰인 경우
void asyncFn();
asyncFn()은 Promise를 반환하지만, void를 붙이면 반환 Promise를 사용하지 않겠다는 뜻이 된다.
void asyncFn();
의 일반적인 의미:
async 함수를 실행하지만, 여기서는
await하지 않고 결과도 사용하지 않겠다.
이런 패턴은 흔히 fire-and-forget 호출에 사용된다.
ESLint / TypeScript에서의 용도
@typescript-eslint/no-floating-promises 같은 규칙이 켜져 있으면, 처리되지 않은 Promise에 경고가 날 수 있다.
asyncFn(); // 경고 가능
이때 다음처럼 쓰면 의도적으로 Promise를 무시한다는 신호가 된다.
void asyncFn();
주의: 에러 처리는 하지 않는다
void는 반환값을 undefined로 만들 뿐, 에러를 잡아주지는 않는다.
void asyncFn();
에서 Promise가 reject되면, 별도 처리가 없을 경우 unhandled rejection이 발생할 수 있다.
필요하면 .catch()를 붙인다.
void asyncFn().catch((error) => {
console.error(error);
});
또는 함수 내부에서 처리한다.
async function asyncFn() {
try {
await work();
} catch (error) {
console.error(error);
}
}
void asyncFn();
void fn()과 void fn의 차이
void fn();
는 fn()을 호출한다.
void fn;
는 fn 값을 평가만 하고 호출하지 않는다.
즉, 괄호 ()가 있어야 함수가 실행된다.
실무에서 이렇게 읽으면 된다
void fn();
이 함수는 실행하지만, 반환값은 의도적으로 사용하지 않는다.
void asyncFn();
이 async 함수는 실행하지만, 반환 Promise는 기다리지 않고 사용하지 않는다.
요약
void fn();
는:
fn()을 실행한다.- 반환값을 버린다.
- 전체 결과를
undefined로 만든다. - 단독 문장에서는 “반환값을 의도적으로 무시함”이라는 신호로 볼 수 있다.
- async 함수에서는 “Promise를 의도적으로 기다리지 않음”이라는 의미로 자주 쓰인다.
- 에러 처리를 자동으로 해주지는 않는다.
'정리 > JavaScript' 카테고리의 다른 글
| JavaScript. setTimeout(fn, 0) 과 async IIFE 의 실행 타이밍 정리 (0) | 2026.05.15 |
|---|
