تخطَّ إلى المحتوى
ToolMug

تشغيل JavaScript أونلاين

الصق أو اكتب JavaScript وانقر «تشغيل» لرؤية ناتج console.log وwarn وerror — لتجربة مقتطفات، أو التدرب على خوارزميات، أو تصحيح جزء من المنطق. يعمل await على المستوى الأعلى، ويعمل الكود في عامل منفصل، لذا لن تُجمّد حلقة لا نهائية الصفحة.

يعمل في متصفحك — لا يُرفع أي شيء تُدخله

Ctrl+Enter / ⌘+Enter

وحدة التحكم

يظهر إخراج console.log هنا.

يعمل في عامل منفصل: لا يوجد DOM (document وwindow)، لكن fetch والمؤقتات وJSON وIntl وغيرها من العناصر المدمجة تعمل.

طريقة الاستخدام

  1. اكتب كودًا على اليسار، أو عدّل المثال.
  2. انقر «تشغيل» أو اضغط Ctrl+Enter (⌘+Enter على Mac). يظهر ناتج وحدة التحكم على اليمين.
  3. إذا استغرق الكود وقتًا طويلاً، انقر «إيقاف»، أو اضبط الحد الزمني أسفل اليمين.

شرح الخيارات

البيئة
عامل ويب (Web Worker) في متصفحك، بأحدث صياغة JavaScript يدعمها متصفحك، وfetch وsetTimeout وIntl وcrypto، لكن بلا document أو window.
وحدة التحكم
console.log وinfo وwarn وerror وdebug وtable وcount وtime/timeEnd، بعناصر نائبة %s و%d و%o. تُوسَّع الكائنات بشكل مشابه لـNode.js.
await على المستوى الأعلى
يعمل الكود داخل دالة غير متزامنة، لذا يمكنك استخدام await مباشرة.

ما الذي يُطبع

لا يظهر في الناتج إلا ما ترسله إلى وحدة التحكم. ولا تُعرض قيمة السطر الأخير كما في وحدة تحكم المتصفح، لذا غلّفه بـ 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 ثانية؛ وعند بلوغه يُنهى التشغيل وتخبرك رسالة بذلك.

الأسئلة الشائعة

هل يمكنني استيراد حزم npm؟

ليس بجمل import. يمكنك تحميل حزم ESM ديناميكيًا بـ await import('https://esm.sh/package-name)، وهذا يحتاج اتصالًا بالشبكة.

ماذا لو كتبت حلقة لا نهائية؟

انقر «إيقاف» لإنهائها فورًا، أو تتوقف تلقائيًا عند الحد الزمني. يستخدم كل تشغيل عاملًا جديدًا، لذا لا تتأثر الصفحة.

هل يُرفع الكود الخاص بي؟

لا. يعمل فقط في متصفحك؛ والطلبات الشبكية الوحيدة هي التي يجريها كودك الخاص.

هل TypeScript مدعوم؟

JavaScript فقط حاليًا؛ أزل تعليقات أنواع TypeScript أولًا.

الخصوصية

تعمل هذه الأداة بالكامل داخل متصفحك. تُعالَج ملفاتك ونصوصك على جهازك ولا تُرفع أبدًا إلى خوادمنا.

أدوات ذات صلة