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

ترجم CoffeeScript 2 إلى JavaScript عبر الإنترنت وشغّله فورًا: شاهد JavaScript المولَّد ومخرجات الطرفية جنبًا إلى جنب.

CoffeeScript 2.7 · يعمل في متصفحك، لذا لا تصل شيفرتك إلى خوادمنا أبدًا.
main.coffeeCoffeeScript
المخرجات

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

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

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

  • تشغيل الشيفرة فورًا: CoffeeScript 2.7، مع ظهور المخرجات في أقل من ثانية بعد التحميل الأول.
  • محرّر الشيفرة: تلوين الصياغة، وأرقام الأسطر، ومطابقة الأقواس، والإغلاق التلقائي للأقواس.
  • أخطاء واضحة: تظهر رسائل الخطأ والتحذيرات في لوحة المخرجات، كما تظهر على حاسوبك.
  • ملء الشاشة: Ctrl/⌘ + Shift + F، وحجم خط قابل للتعديل، وتخطيط متجاور أو مكدّس، ولوحات قابلة لتغيير الحجم.
  • الحفظ التلقائي: تُحفظ شيفرتك في متصفحك؛ نزّلها باسم main.coffee أو انسخها بنقرة واحدة.
  • تجربة آمنة: حدّ زمني وزر إيقاف ينهيان الحلقات اللانهائية.
  • خاص: تعمل بيئة تشغيل CoffeeScript على جهازك، لذا لا تُرفع شيفرتك أبدًا.
  • الوضع الداكن واختصارات لوحة المفاتيح: Ctrl/⌘ + Enter يشغّل الشيفرة.
  • مجاني: بدون تسجيل، وبلا حدود للاستخدام.

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

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

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

استخدم نسخ أو main.coffee لحفظ شيفرتك المصدرية. ويبدّل زر التخطيط بين اللوحات المتجاورة والمتراصة.

تتم الترجمة والتشغيل معًا في Web Worker داخل متصفحك، ولا تُرسل شيفرتك إلى خادم أبدًا. ويحفظ المحرر آخر شيفرة لك تلقائيًا في متصفحك، بصورة منفصلة لكل مترجم.

نبذة عن CoffeeScript 2

CoffeeScript لغة صغيرة تُترجم إلى JavaScript. وصياغتها مستوحاة من Ruby وPython: إزاحة بدلًا من الأقواس المعقوفة، وأقواس اختيارية، و-> للدوال، وإرجاع ضمني للقيم. وقد أصبحت أفكار عدة منها، مثل الدوال السهمية والأصناف والتفكيك (destructuring) ودمج القيم في النصوص، جزءًا من JavaScript القياسية لاحقًا.

تستخدم هذه الصفحة CoffeeScript 2.7 في وضع bare، فلا يُغلَّف الناتج بدالة إضافية. وتولّد CoffeeScript 2 شيفرة حديثة بمعيار ES2015+. فتصبح أصنافها أصنافَ JavaScript، ويصبح => دالة سهمية، وتصبح أي دالة تحتوي على await دالة async.

ما المدعوم

  • لغة CoffeeScript 2 كاملة: أصناف مع extends وsuper، والاختصار @، ودمج القيم في النصوص بالصيغة "#{...}"، والنطاقات مثل [1..5]، والتفكيك، وعامل التوسعة (splats)، وعامل الوجود ?، وasync/await.
  • الكائنات المدمجة القياسية في JavaScript مثل Math وJSON ودوال Array وPromise.

القيود:

  • لا DOM: تعمل الشيفرة في worker، لذا فإن document وwindow غير متاحين.
  • لا require ولا import ولا حزم npm، ولا واجهات Node.js البرمجية.
  • لا مربع إدخال. عرّف بيانات الاختبار في الشيفرة.

مثال تطبيقي: تعبيرات التجميع و@

evens = (n for n in [1..10] when n % 2 is 0)
console.log evens                    # [2, 4, 6, 8, 10]

class Basket
  constructor: (@owner) ->
    @items = []
  addAll: (list) ->
    list.forEach (item) => @items.push item
    this

basket = new Basket('Ada').addAll ['tea', 'milk']
console.log "#{basket.owner} has #{basket.items.length} items"

يحفظ (@owner) في الدالة البانية الوسيط بوصفه this.owner. وتستخدم دالة الاستدعاء الرجعي =>، فيظل @items يشير إلى السلة. أما مع السهم النحيف -> فسيشير إلى شيء آخر وسيفشل الاستدعاء. افتح شيفرة JavaScript المُولَّدة لترى كيف يتحول تعبير التجميع إلى حلقة ويتحول الصنف إلى صنف ES.

مزالق شائعة

  • المسافات البيضاء لها دلالة. تحدد الإزاحة الكتل، لذا فإن سطرًا غير محاذى يغيّر المعنى أو يفشل في الترجمة.
  • الإرجاع الضمني. تُرجع الدالة قيمة آخر تعبير فيها. والحلقة في نهاية الدالة تجمع نتائجها في مصفوفة. أضف return صريحًا إذا كنت لا تريد ذلك.
  • in مقابل of. تمر for x in array على القيم، بينما تمر for key, value of object على الخصائص. وهذا عكس ما قد يتوقعه مطوّر JavaScript.
  • تعبيرات التجميع تحتاج إلى أقواس عندما تُسنِدها أو تطبعها. فبدونها، تُسند evens = n for n in list كل عنصر إلى evens بالتتابع، فينتهي بك الأمر إلى العنصر الأخير بدلًا من مصفوفة.
  • لا var ولا let. فإسناد قيمة إلى اسم موجود في نطاق خارجي يحدّث ذلك المتغير بدلًا من إنشاء متغير جديد.
  • الكلمات is وisnt وand وor وnot أسماء بديلة، ويُترجم == إلى === الصارم.

CoffeeScript أم TypeScript اليوم؟

في المشاريع الجديدة، يختار معظم الفرق TypeScript أو JavaScript الحديثة، لأنهما توفران أنواعًا ثابتة ودعمًا أوسع في المحررات والمكتبات. ولا تزال CoffeeScript مفيدة لصيانة الشيفرات القائمة، مثل تطبيقات Ruby on Rails الأقدم، وللسكربتات السريعة الموجزة. وعند الترحيل، تكون JavaScript المولَّدة نقطة انطلاق جيدة. نظّفها بـ منسّق JavaScript وأداة ضغطه، أو جرّب الناتج في مترجم TypeScript عبر الإنترنت.

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

هل يمكنني تحويل CoffeeScript إلى JavaScript هنا؟

نعم. شغّل شيفرتك، وافتح شيفرة JavaScript المُولَّدة وانسخ الناتج. يُنتَج بواسطة مترجم CoffeeScript 2.7 الرسمي في وضع bare.

لماذا تُرجع دالتي مصفوفة لم أتوقعها؟

بسبب الإرجاع الضمني. فإذا كانت الحلقة آخر تعبير في الدالة، تُجمع نتائجها وتُرجَع. أنهِ الدالة بـ return أو بقيمة أخرى لتجنب ذلك.

أين يمكنني تشغيل JavaScript مباشرةً؟

استخدم مترجم JavaScript عبر الإنترنت، أو تصفّح كل المترجمات البرمجية عبر الإنترنت.

آخر تحديث

التعليقات

لا توجد تقييمات بعد

سجّل الدخول لتقييم هذه الأداة.

شارك نصيحة أو اطرح سؤالًا أو أخبر الآخرين كيف عملت الأداة معك.

لا توجد تعليقات بعد. كن أول من يشارك تجربته.

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