जावास्क्रिप्ट सिंगल-थ्रेडेड हुआ करता था। यह एक इवेंट लूप कहलाने वाले का उपयोग करके चलता है।
इवेंट लूप का एक आसान काम है - कॉल स्टैक और कॉलबैक कतार की निगरानी करना। यदि कॉल स्टैक खाली है, तो यह कतार से पहला ईवेंट लेगा और इसे कॉल स्टैक पर धकेल देगा, जो इसे प्रभावी ढंग से चलाता है।
ब्राउज़र में JS इवेंट लूप में मल्टीथ्रेडिंग का समर्थन नहीं करता है क्योंकि 99.999% वेबसाइटों के लिए इसकी आवश्यकता नहीं है। इवेंट लूप सब कुछ निर्बाध रूप से संभालता है।
शेष ऐप्स के लिए, डेवलपर वेब वर्कर का उपयोग कर सकते हैं। वेब वर्कर्स वेब सामग्री के लिए बैकग्राउंड थ्रेड्स में स्क्रिप्ट चलाने का एक सरल साधन है। वर्कर थ्रेड यूजर इंटरफेस में हस्तक्षेप किए बिना कार्य कर सकता है। इसके अलावा, वे XMLHttpRequest का उपयोग करके I/O निष्पादित कर सकते हैं (हालांकि प्रतिक्रियाXML और चैनल विशेषताएँ हमेशा शून्य होती हैं)। एक बार बनाने के बाद, एक कार्यकर्ता उस जावास्क्रिप्ट कोड को संदेश भेज सकता है जिसने इसे उस कोड द्वारा निर्दिष्ट ईवेंट हैंडलर को संदेश पोस्ट करके बनाया है (और इसके विपरीत)। यह लेख वेब वर्कर्स का उपयोग करने के लिए एक विस्तृत परिचय प्रदान करता है।