جافا سكريبت: لغة برمجة عالية المستوى

جافا سكريبت وتعرف بشكل شائع باسم JS (بالإنجليزية: JavaScript)‏ هي لغة برمجة عالية المستوى، تستخدم أساساً في متصفحات الويب لإنشاء صفحات أكثر تفاعلية.

تطورها حالياً لجنة TC39 التي تديرها منظمة ECMA للمعايير.

جافا سكريبت
جافا سكريبت: التاريخ, العلامة التجارية, أصل التسمية
الشعار
جافا سكريبت: التاريخ, العلامة التجارية, أصل التسمية
معلومات عامة
التصنيف
برمجة كائنية
التنميط
مقتبس من
ظهرت في
مايو 1996 عدل القيمة على Wikidata
صممها
التطوير
الإصدار الأول
مايو 1996 عدل القيمة على Wikidata
الإصدار الأخير
  • ECMAScript 2023
    (يونيو 2023)
  • ECMAScript 2025
    (27 مارس 2024) عدل القيمة على Wikidata
التأثير
متأثرة بـ
سكيمسيلفجافاسيLiveScript (en) ترجملوابيرلأوكHyperTalk (en) ترجمبايثون عدل القيمة على Wikidata
متفرقات
امتدادات الملفات
.js .cjs .mjs
موقع الويب
ecma-international.org… (الإنجليزية) عدل القيمة على Wikidata

بدأ استخدام الجافاسكريبت كلغة برمجة موجهة للمبرمجين الهواة وغير المحترفين. إلا أنه تزايد الاهتمام بها وجذبت اهتمام مبرمجين محترفين بعد إضافتها لتقنيات جديدة كانتشار تقنية أجاكس التي أدت إلى سرعة في التفاعل بين الخادم والعميل.

تُستخدَم لغة الجافا سكربت في تطوير صفحات ويب تفاعلية، وتطبيقات الويب، بما في ذلك الألعاب، وهي مُستعمَلة من أغلبية المواقع، وتدعمها جميع المتصفحات تقريبًا دون الحاجة إلى إضافات خارجية.

التاريخ

في عام 1993، أصدر المركز الوطني لتطبيقات الحوسبة الفائقة (NCSA)، وهي وحدة تابعة لجامعة إلينوي في إربانا-شامبين، NCSA Mosaic، أول متصفح ويب رسومي شائع، والذي لعب دورًا مهمًا في توسيع نمو الشبكة العالمية الناشئة الويب خارج مكانة NeXTSTEP حيث تشكل الشبكة العنكبونية قبل ثلاث سنوات. في عام 1994، تأسست شركة تدعى Mosaic Communications في ماونتن فيو، كاليفورنيا ووظفت العديد من مؤلفي NCSA Mosaic الأصليين لإنشاء Mosaic Netscape. ومع ذلك، فقد تعمدت عدم مشاركة رمز مع NCSA Mosaic. الاسم الرمزي الداخلي لمتصفح الشركة هو Mozilla، وهو رمز لـ "Mosaic and Godzilla". تم إصدار الإصدار الأول من مستعرض الويب، Mosaic Netscape 0.9، في أواخر عام 1994 خلال أربعة أشهر، استحوذت بالفعل على ثلاثة أرباع سوق المتصفح وأصبحت متصفح الويب الرئيسي للتسعينات. لتجنب مشاكل ملكية العلامة التجارية مع NCSA، تمت إعادة تسمية المستعرض لاحقًا في Netscape Navigator في نفس العام، وحصلت الشركة على اسم Netscape Communications. أدركت Netscape Communications أن الويب يحتاج إلى أن يصبح أكثر ديناميكية. يعتقد مارك أندريسن، مؤسس الشركة، أن HTML يحتاج إلى «لغة لاصقة» كان من السهل استخدامها من قبل مصممي الويب والمبرمجين غير المتفرغين لتجميع مكونات مثل الصور والإضافات، حيث يمكن كتابة الكود مباشرة في الويب ترميز الصفحة.

العلامة التجارية

الاسم «جافا سكريبت» هو علامة تجارية مملوكة ومسجلة لشركة أوراكل في الولايات المتحدة.

أصل التسمية

في البداية تم تطوير هذه اللغة تحت اسم موكا (Mocha)، وأطلق عليها اسم LiveScript رسمياً أثناء تجريبها في إصدار متصفحات نتسكيب نافيجاتور 2.0 بيتا (Beta) سنة 1995. لكنها لاحقاً غيرت اسمها إلى جافاسكريبت JavaScript ويعود ذلك إلى إضافتها لدعم لغة الجافا.

هذا التغيير في الاسم سبب الغموض وسوء الفهم موحياً بأن لغة الجافا والجافاسكريبت مرتبطان أو متشابهتان. صحيح أن كلاهما يمتلكان شكلاً شبيهاً بلغة السي، إلا أن أوجه الاختلاف بين اللغتين واسع:

  • الجافا بحاجة إلى التحويل إلى بايت كود Bytecode. بينما برامج الجافاسكريبت فيتم معالجتها كنص مصدري.
  • المتغيرات في الجافا ثابتة النوع، بينما في الجافاسكريبت فهي ديناميكية. يعني أنك عند تعريف متغير ما في الجافا فيجب تحديد نوعه الذي لا يمكن تغييره. مثلا، لو عرفت المتغير «العمر» بأنه رقم وأعطيته قيمة "7" مثلا فلا يمكنك تغيير الرقم إلى نوع آخر (ككلمة «سبعة»). بينما في الجافاسكريت فيمكنك فعل ذلك.
  • الجافا لم تدعم البرمجة الأمرية إلا بداية من الإصدار الثامن. بينما الجافاسكريبت فدعمتها منذ البداية.

بنية اللغة

في الماضى كانت لغة JavaScript محدودةً إلى متصفحات الويب فيما قد سلف، لكن توسّع مجال JavaScript في الفترة الأخيرة لتضم إنشاء تطبيقات ويب من جهة الخادم (server-side) مع التعامل مع قواعد البيانات، إضافةً إلى إمكانية استخدامها في بيئات ليست متعلقة بالويب مثل معالجات النصوص وبرمجيات PDF، ومن الممكن استعمالها أيضًا لكتابة تطبيقات سطح المكتب أو تطبيقات الهواتف، وحتى تطوير الألعاب!

هنالك الكثير من محركات JavaScript، وكل واحدٍ منها يخضع لمواصفة ECMAScript (مع أنَّها تختلف فيما بينها بالإصدارات التي تدعمها). يوجد في نهاية كل صفحة من صفحات هذا التوثيق قسمٌ بعنوان «دعم المتصفحات» الذي نذكر فيه ما هي المتصفحات التي تدعم الميزة المذكورة.

يتألف أساس لغة JavaScript من الميزات الشائعة للغات البرمجة، التي تسمح لنا:

  • بتخزين القيم داخل متغيرات،
  • إجراء عمليات معالجة على السلاسل النصية،
  • تنفيذ إجراءات معيّنة اعتمادًا على وقوع الأحداث.

ما يجب أن يثير اهتمامنا هو الواجهات البرمجية التي تُضيف وظائف على لغة JavaScript، وتسمى هذه الواجهات البرمجية بالمصطلح APIs (أي Application Programming Interfaces)، والتي تسمح للمطورين باستخدام لغة JavaScript للتعامل مع كثيرٍ من الأشياء، في مجال متصفحات الويب يمكننا استخدام JavaScript للتعامل مع شجرة DOM، ولاستخدام الواجهة البرمجية للمواقع الجغرافية (Geolocation API)، ولإنشاء رسوميات ثنائية وثلاثية الأبعاد عبر Canvas وWebGL، وللتحكم بالوسائط مثل الفيديو والصوت، وغير ذلك.

ويمكن استخدام JavaScript أيضًا من طرف الخادم، ولمزيدٍ من المعلومات انظر إلى صفحة Node.js.

يمكن تضمين شيفرات JavaScript في الصفحات بطريقتين:

  1. تضمين الشيفرات داخل مستند HTML
  2. استخدام ملف خارجي

يمكن تضمين شيفرة JavaScript في أي مكان داخل المستند، لكن يُنصَح بوضعها قبل وسم الإغلاق للعنصر . تُضاف الشيفرة داخل العنصر