JavaScript는 단일 스레드 환경에서 실행되도록 설계되었습니다. 즉, 여러 스크립트를 동시에 실행할 수 없습니다. UI 이벤트를 처리하고, 대량의 API 데이터를 쿼리 및 처리하고, DOM을 조작해야 하는 상황을 생각해 보세요.
JavaScript는 CPU 사용률이 높은 상황에서 브라우저를 중단합니다. Javascript가 큰 루프를 거치는 간단한 예를 들어 보겠습니다.
<!DOCTYPE HTML>
<html>
<head>
<title>Big for loop</title>
<script>
function bigLoop(){
for (var i = 0; i <= 10000; i += 1){
var j = i;
}
alert("Completed " + j + "iterations" );
}
function sayHello(){
alert("Hello sir...." );
}
</script>
</head>
<body>
<input type = "button" onclick = "bigLoop();" value = "Big Loop" />
<input type = "button" onclick = "sayHello();" value = "Say Hello" />
</body>
</html> "큰 루프" 버튼을 클릭하면 다음이 표시됩니다.

위에 설명된 상황은 사용자 인터페이스를 중단하지 않고 계산 비용이 많이 드는 모든 작업을 수행하고 일반적으로 별도의 스레드에서 실행되는 웹 작업자를 사용하여 처리할 수 있습니다.