JavaScript عبر الإنترنت - IDE ومحرر ومترجم ومفسّر

شغّل JavaScript فورًا في عامل معزول مع مخرجات الطرفية و async/await وميزات ES2024 الحديثة. بدون تسجيل ودون أي تثبيت.

ES2024 (your browser's engine) · يعمل في متصفحك، لذا لا تصل شيفرتك إلى خوادمنا أبدًا.
main.jsJavaScript
المخرجات

            
        
Ctrl/⌘ + Enter للتشغيل

ميزات مترجم JavaScript عبر الإنترنت (بيئة تطوير ومحرّر ومفسّر)

اكتب شيفرة JavaScript وشغّلها واختبرها عبر الإنترنت مجانًا. تعمل هذه الصفحة كبيئة تطوير JavaScript ومحرّر شيفرة ومترجم ومفسّر في آن واحد: اكتب شيفرتك، واضغط «تشغيل»، وشاهد المخرجات فورًا. كل شيء يعمل في متصفحك، دون أي تثبيت ودون إنشاء حساب.

  • تشغيل الشيفرة فورًا: ES2024 (your browser's engine)، مع ظهور المخرجات في أقل من ثانية بعد التحميل الأول.
  • محرّر الشيفرة: تلوين الصياغة، وأرقام الأسطر، ومطابقة الأقواس، والإغلاق التلقائي للأقواس.
  • أخطاء واضحة: تظهر رسائل الخطأ والتحذيرات في لوحة المخرجات، كما تظهر على حاسوبك.
  • ملء الشاشة: Ctrl/⌘ + Shift + F، وحجم خط قابل للتعديل، وتخطيط متجاور أو مكدّس، ولوحات قابلة لتغيير الحجم.
  • الحفظ التلقائي: تُحفظ شيفرتك في متصفحك؛ نزّلها باسم main.js أو انسخها بنقرة واحدة.
  • تجربة آمنة: حدّ زمني وزر إيقاف ينهيان الحلقات اللانهائية.
  • خاص: تعمل بيئة تشغيل JavaScript على جهازك، لذا لا تُرفع شيفرتك أبدًا.
  • الوضع الداكن واختصارات لوحة المفاتيح: Ctrl/⌘ + Enter يشغّل الشيفرة.
  • مجاني: بدون تسجيل، وبلا حدود للاستخدام.

تعلّم لغات برمجة أخرى

كيف تستخدم مترجم JavaScript عبر الإنترنت

  1. اكتب شيفرة JavaScript أو الصقها في المحرر. ويمكنك استعادة المثال الأولي بزر إعادة ضبط المثال.
  2. اضغط تشغيل أو استخدم Ctrl + Enter (⌘ + Enter على Mac).
  3. تظهر مخرجات console.log وconsole.info وconsole.debug في لوحة المخرجات. أما console.warn وconsole.error والاستثناءات غير المعالجة، بما فيها تتبّعات المكدّس (stack traces)، فتُبرَز على أنها أخطاء.
  4. اختر الحدّ الزمني: 5 أو 15 أو 60 ثانية. يُوقَف السكربت الذي يعمل مدة أطول تلقائيًا، ويمكنك الضغط على إيقاف متى شئت.

لا يوجد ما تنزّله. تعمل JavaScript على المحرك المدمج أصلًا في متصفحك، لذا تكون الصفحة جاهزة فورًا. استخدم نسخ أو main.js لحفظ شيفرتك.

تعمل شيفرتك محليًا، داخل Web Worker في متصفحك أنت. لا تُرفع أبدًا إلى خوادمنا ولا تُخزَّن عليها. يتذكر المحرر آخر شيفرة كتبتها في التخزين المحلي لمتصفحك، ولا يحفظها في أي مكان آخر.

الميزات المدعومة

  • JavaScript الحديثة: كل ما يدعمه متصفحك، بما في ذلك الأصناف (classes) والدوال السهمية والتفكيك (destructuring) والتسلسل الاختياري (?.) ودمج القيم الفارغة (??) وBigInt وMap/Set وتوابع المصفوفات الأحدث.
  • await في المستوى الأعلى: تُغلَّف شيفرتك في دالة غير متزامنة، لذا يمكنك استخدام await مع الوعود (promises) مباشرة.
  • المؤقتات والوعود: تعمل setTimeout وsetInterval وPromise.all والدوال المشابهة. ويُعدّ التشغيل منتهيًا عندما تكتمل شيفرة المستوى الأعلى (بما فيها أي عمل تنتظره بـ await).
  • واجهات Web API الآمنة داخل العمّال (workers) مثل JSON وIntl وTextEncoder وcrypto.getRandomValues وstructuredClone.

القيود:

  • لا يوجد DOM. تعمل الشيفرة داخل عامل (worker)، لذا لا تتوفر document وwindow وalert().
  • لا يوجد import/require. هذه ليست Node.js، لذا لا يمكن تحميل حزم npm ولا وحدات Node مثل fs.
  • تطبع console.table بياناتها بصيغة JSON بدلًا من جدول مرسوم.
  • يتبع السلوك المتصفحَ الذي تستخدمه. وقد تكون الميزات الحديثة جدًا غير متاحة في المتصفحات الأقدم.

مرجع سريع في JavaScript

const scores = { ada: 91, linus: 78, grace: 85 };

const passed = Object.entries(scores)
  .filter(([, s]) => s >= 80)
  .map(([name, s]) => `${name}: ${s}`);

console.log(passed);           // ["ada: 91", "grace: 85"] as JSON

const sleep = ms => new Promise(r => setTimeout(r, ms));
await sleep(100);
console.log(scores.bob ?? 'no score');
المهمةالصياغة
تعريف المتغيراتconst x = 1; let y = 2;
دالة سهميةconst add = (a, b) => a + b;
القالب النصي (template literal)`Total: ${sum}`
المساواة الصارمةa === b
التفكيكconst { id, name } = user;
انتظار وعدconst data = await promise;

نصائح

  • تُطبع الكائنات والمصفوفات بصيغة JSON منسّقة بمسافات بادئة. اطبعها مباشرة، مثلًا console.log({ a, b })، لترى أسماء المتغيرات بجوار قيمها.
  • تُطبع Map وSet مع حجمها ومحتوياتها (مثلًا Map(2) [...])، وتُطبع قيم BigInt مع اللاحقة n.
  • انسخ مخرجات JSON إلى منسّق JSON للتحقق من صحتها، أو لطيّ البنى الكبيرة واستكشافها.
  • لترتيب الشيفرة الفوضوية أو المضغوطة، مرّرها عبر منسّق JavaScript قبل لصقها هنا.
  • القيم المرتبطة بـ globalThis تبقى بين مرات التشغيل حتى تضغط «إيقاف». أما المتغيرات المعرّفة بـ const أو let فلا تبقى.
نصيحة: تريد تحديد أنواع المتغيرات صراحةً (type annotations)؟ يعمل مترجم TypeScript عبر الإنترنت بالطريقة نفسها، ويعرض أيضًا شيفرة JavaScript التي يولّدها.

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

ما إصدار JavaScript الذي يشغّله هذا المترجم؟

كل ما يدعمه محرك متصفحك: V8 في Chrome وEdge، أو SpiderMonkey في Firefox، أو JavaScriptCore في Safari. وتدعم الإصدارات الحالية منها جميعًا ECMAScript الحديثة، بما في ذلك ميزات ES2024.

لماذا تكون document غير معرّفة؟

للحفاظ على استجابة الصفحة وأمانها، تعمل شيفرتك داخل Web Worker لا يملك أي وصول إلى الصفحة. استخدم هذه الأداة للمنطق والخوارزميات ومعالجة البيانات، لا للتعامل مع DOM.

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

لا. لا تتوفر import وrequire ووحدات Node.js المدمجة. لا يمكن استخدام إلا اللغة نفسها وواجهات Web API القياسية التي يوفّرها العمّال (workers).

ماذا يحدث إذا كتبت حلقة لا نهائية؟

تبقى الصفحة مستجيبة، لأن الحلقة تعمل داخل عامل (worker). وعند بلوغ الحدّ الزمني، أو عندما تضغط «إيقاف»، يُغلق العامل وتتوقف شيفرتك.

آخر تحديث

تم النسخ إلى الحافظة