사용 방법
- 편집기에 JavaScript 코드를 입력하거나 예제 코드를 불러오세요.
- 실행 버튼을 누르고 반환값과 콘솔 출력을 확인하세요.
- 오류가 표시되면 줄과 메시지를 확인한 뒤 코드를 수정해 다시 실행하세요.
옵션 설명
- 실행 환경
- 코드는 Web Worker에서 실행되므로 document와 window 같은 DOM API는 사용할 수 없어요.
- 사용 가능한 기능
- JSON, Math, Intl, fetch와 타이머 등 브라우저의 기본 기능을 사용할 수 있어요.
- 실행 시간
- 실행에는 시간 제한이 있어 무한 루프가 페이지를 멈추지 않아요. 오래 걸리는 작업은 중단될 수 있어요.
출력되는 내용
콘솔로 보낸 것만 출력에 나타나요. 브라우저 콘솔과 달리 마지막 줄의 값은 표시되지 않으므로 console.log로 감싸세요. 출력 방식은 Node.js 스타일이에요. 배열과 객체는 펼쳐지고, 그 안의 문자열에는 따옴표가 붙으며, 자리표시자 %s와 %d는 뒤따르는 인자로 채워져요.
console.log([1, 2, 3].map((n) => n * n));
console.log('%s is %d years old', 'Ada', 36);
console.log({ name: 'Ada', tags: ['a', 'b'] });
const data = await fetch('https://example.com/').then((r) => r.status);
console.log(data);
처음 세 줄은 [ 1, 4, 9 ], Ada is 36 years old, { name: "Ada", tags: [ "a", "b" ] }를 출력해요. 마지막 두 줄은 네트워크 연결이 필요하며 요청의 HTTP 상태를 출력해요. 시간 제한은 5초, 10초, 30초, 60초로 설정할 수 있고, 시간이 다 되면 실행이 종료되고 그 사실을 알리는 메시지가 표시돼요.
자주 묻는 질문
코드가 서버로 전송되나요?
아니요. 코드는 브라우저의 Worker에서 실행되며 서버로 업로드되지 않아요.
DOM을 조작할 수 있나요?
아니요. 별도 Worker에는 DOM이 없어요. 계산과 데이터 변환에 사용하세요.
비동기 코드도 실행할 수 있나요?
네. Promise와 async 함수, fetch와 타이머를 사용할 수 있어요.
개인정보 보호
이 도구는 전적으로 브라우저에서 실행돼요. 파일과 텍스트는 기기에서 처리되며 서버로 업로드되지 않아요.