كيف تستخدم مترجم JavaScript عبر الإنترنت
- اكتب شيفرة JavaScript أو الصقها في المحرر. ويمكنك استعادة المثال الأولي بزر إعادة ضبط المثال.
- اضغط تشغيل أو استخدم Ctrl + Enter (⌘ + Enter على Mac).
- تظهر مخرجات
console.logوconsole.infoوconsole.debugفي لوحة المخرجات. أماconsole.warnوconsole.errorوالاستثناءات غير المعالجة، بما فيها تتبّعات المكدّس (stack traces)، فتُبرَز على أنها أخطاء. - اختر الحدّ الزمني: 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فلا تبقى.
الأسئلة الشائعة
ما إصدار JavaScript الذي يشغّله هذا المترجم؟
كل ما يدعمه محرك متصفحك: V8 في Chrome وEdge، أو SpiderMonkey في Firefox، أو JavaScriptCore في Safari. وتدعم الإصدارات الحالية منها جميعًا ECMAScript الحديثة، بما في ذلك ميزات ES2024.
لماذا تكون document غير معرّفة؟
للحفاظ على استجابة الصفحة وأمانها، تعمل شيفرتك داخل Web Worker لا يملك أي وصول إلى الصفحة. استخدم هذه الأداة للمنطق والخوارزميات ومعالجة البيانات، لا للتعامل مع DOM.
هل يمكنني استخدام حزم npm؟
لا. لا تتوفر import وrequire ووحدات Node.js المدمجة. لا يمكن استخدام إلا اللغة نفسها وواجهات Web API القياسية التي يوفّرها العمّال (workers).
ماذا يحدث إذا كتبت حلقة لا نهائية؟
تبقى الصفحة مستجيبة، لأن الحلقة تعمل داخل عامل (worker). وعند بلوغ الحدّ الزمني، أو عندما تضغط «إيقاف»، يُغلق العامل وتتوقف شيفرتك.
آخر تحديث