١٣ ديسمبر ٢٠٢٠

مقدّمة للجافاسكربت

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

ماهي الجافاسكربت؟

الجافاسكربت تم إنشائها في بادئ الأمر “لجعل الصفحات الإلكترونية حية”.

البرامج في هذه اللغة تسمّي سكريبتات. يمكن كتابتها مباشرة في الصفحات الإلكترونية HTML و سوف يتم تفعيلها آليا عند تحميل الصفحة.

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

في هذا الجانب ، تختلف الجافاسكربت اختلافًا كبيرًا عن لغة أخرى تسمى جافا

لماذا تم تسميتهاجافاسكريبت؟

عندما تم إنشاء جافا سكريبت، كانت تحمل اسما اخر “لايفسكربت”.

ولكن كان لجافا شعبية كبيره في ذلك الوقت، لذلك تقرّر أن وضع لغة جديدة كـ “الأخ الأصغر” لجافا سيساعد. ولكن مع تطورها ، أصبحت الجافاسكريبت لغة مستقلة تمامًا مع مواصفاتها الخاصة التي تسمى إكماسكربت ، والآن لا علاقة لها بجافا على الإطلاق.

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

يحتوي المتصفح على محرك مثبت يسمى أحيانًا “آلة جافاسكريبت الافتراضية”.

المحركات المختلفة لها “أسماء رمزية” مختلفة. على سبيل المثال:

  • في8 – في كروم و اوبرا.
  • سبايدر مونكي – في فايرفوكس.
  • …هناك أسماء رمزية أخرى مثل “تريدانت” و “تشاكرا” لاصدارات مختلفه من انترنت اكسبلورر، “تشاكرا كور” لمايكروسوفت إيدج، “نيترو” و “سكيرلفيش” لسفاري، إلخ.

من الجيد تذكر المصطلحات الواردة أعلاه لأنها مستخدمة في مقالات المطورين على الإنترنت. سنستخدمهم أيضًا. على سبيل المثال ، إذا كانت “الميزة إكس مدعومة بواسطة في8” ، فمن المحتمل أنها تعمل في كروم و أوبرا.

كيف تعمل المحركات؟

المحركات معقدة. ولكن الأساسيات بسيطه .

١. يقرأ (“يحلّل”) المحرك (المثبت إذا كان متصفحًا) السكريبت.

٢. ثم يحول (“يترجم”) السكربت الى لغة الآلة.

٣. وبعد ذلك يتم تشغيل رموز الآلة، بسرعة كبيرة.

يطبق المحرك التحسينات في كل خطوة من العملية. حتى أنه يراقب النص المترجم أثناء تشغيله ، ويحلل البيانات التي تتدفق من خلاله ، ويزيد من تحسين رموز الآلة بناءً على تلك المعرفة.

ما الذي يمكن أن يفعله الجافاسكريبت في المتصفح؟

الجافاسكريبت الحديثة هي لغة برمجة “آمنة”. لا توفر وصولاً منخفض المستوى إلى الذاكرة أو وحدة المعالجة المركزية، لأنه تم إنشاؤها في البداية للمتصفحات التي لا تتطلب ذلك.

تعتمد قدرات جافا سكريبت بشكل كبير على البيئة التي تعمل بها. على سبيل المثال ، يدعم نود.جي إس الوظائف التي تسمح لجافا سكريبت بقراءة / كتابة ملفات عشوائية ، وتنفيذ طلبات الشبكة، إلخ.

يمكن للجافاسكريبت في المتصفح القيام بكل ما يتعلق بمعالجة صفحات الويب والتفاعل مع المستخدم وخادم الويب.

على سبيل المثال ، يمكن للجافاسكريبت في المتصفح:

  • إضافة HTML جديد إلى الصفحة ، وتغيير المحتوى الحالي ، وتعديل التصاميم.
  • الرد على تفاعلات المستخدم ، والتشغيل على نقرات الفأرة ، وحركات المؤشر ، والضغط على المفاتيح.
  • إرسال الطلبات عبر الشبكة إلى الخوادم المنعزلة ،تنزيل الملفات وتحميلها (ما يسمى بـتقنيات أجاكس و كوميت.
  • الحصول على ملفات تعريف الارتباط وتعيينها ، وطرح الأسئلة على الزائر ، وإظهار الرسائل.
  • تذكر البيانات الموجودة على جانب العميل (“التخزين المحلي”).

ما الذي لا يمكن للجافاسكريبت في المتصفح فعله؟

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

من أمثلة هذه القيود:

  • الجافاسكريبت على صفحة الويب قد لا تقرأ/تكتب ملفات عشوائية على القرص الصلب أو تنسخها أو تنفذ برامج. ليس لديها وصول مباشر إلى وظائف نظام التشغيل.

    تسمح المتصفحات الحديثة له بالعمل مع الملفات ، ولكن الوصول محدود ويتم توفيره فقط إذا قام المستخدم بإجراءات معينة ، مثل “إسقاط” ملف في نافذة المتصفح أو تحديده عبر علامة <input>.

    هناك طرق للتفاعل مع الكاميرا / الميكروفون والأجهزة الأخرى ، لكنها تتطلب إذنًا صريحًا من المستخدم. لذلك قد لا تعمل الصفحة التي تم تمكين الجافاسكريبت فيها بشكل خفي على تمكين كاميرا الويب ومراقبة المناطق المحيطة وإرسال المعلومات إلى آن آس أيه -بشكل عام لا تعرف علامات التبويب / النوافذ المختلفة حول بعضها البعض. في بعض الأحيان يفعلون ذلك، على سبيل المثال عندما تستخدم إحدى النوافذ الجافاسكريبت لفتح النافذة الأخرى. ولكن حتى في هذه الحالة ، قد لا تتمكن الجافاسكريبت في إحدى الصفحات من الوصول إلى الصفحة الأخرى إذا كانت تأتي من مواقع مختلفة (من مجال أو بروتوكول أو منفذ مختلف).

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

هذا القيد ، مرة أخرى ، لسلامة المستخدم. يجب ألا تتمكن صفحة من http://anysite.com فتحها المستخدم من الوصول إلى نافذة متصفح أخرى بعنوان http://gmail.com وسرقة المعلومات من هناك.

  • يمكن لـ جافاسكريبت الاتصال بسهولة عبر الشبكة بالخادم الذي جاءت منه الصفحة الحالية. لكن قدرته على تلقي البيانات من المواقع / المجالات الأخرى معطلة. على الرغم من إمكانية ذلك، إلا أنه يتطلب موافقة صريحة (معبرًا عنها في رؤوس HTTP) عن بعد. مرة أخرى ، هذا قيد أمان.

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

ما الذي يجعل الجافاسكريبت فريدًا؟

هناك على الأقل ثلاثة أشياء رائعة حول الجافاسكريبت:

  • تكامل تام مع HTML / CSS.
  • الأشياء البسيطة تتم ببساطة.
  • مدعوم من قبل جميع المتصفحات الرائدة وتمكينه تلقائيا.

الجافاسكريبت هي تقنية المتصفح الوحيدة التي تجمع بين هذه الأشياء الثلاثة.

هذا ما يجعل الجافاسكريبت فريدًا. هذا هو السبب في أنها الأداة الأكثر انتشارًا لإنشاء واجهات المتصفح.

ومع ذلك، تسمح الجافاسكريبت أيضًا بإنشاء خوادم وتطبيقات الجوال، إلخ.

لغات “فوق” الجافاسكريبت

لا تتناسب القواعد اللغوية للجافاسكريبت مع احتياجات الجميع. الناس المختلفون يريدون ميزات مختلفة.

هذا أمر متوقع ، لأن المشاريع والمتطلبات تختلف من شخص لآخر.

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

الأدوات الحديثة تجعل الترجمة سريعة وشفافة للغاية ، مما يسمح للمطورين في الواقع بالتشفير بلغة أخرى وتحويلها تلقائيًا “خلف الكواليس”.

أمثلة على هذه اللغات:

  • كوفي سكريبت هو “سكر نحوي” لجافا سكريبت. إنه يقدم بناء جمل أقصر ، مما يسمح لنا بكتابة كود أكثر وضوحًا ودقة. عادة ،مطورو الروبي يحبونها.
  • يركز تايب سكريبت على إضافة “كتابة بيانات صارمة” لتبسيط تطوير ودعم الأنظمة المعقدة. تم تطويره بواسطة ميكروسوفت.
  • يضيف فلاو أيضًا كتابة البيانات ، ولكن بطريقة مختلفة. تم تطويره بواسطة فايسبوك.
  • دارت هي لغة قائمة بذاتها لها محركها الخاص الذي يعمل في بيئات غير المتصفح (مثل تطبيقات الهاتف المحمول) ، ولكن يمكن أيضًا تحويلها إلى جافاسكريبت. من تطوير جوجل.

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

ملخص

  • تم إنشاء الجافاسكريبت في البداية كلغة للمتصفح فقط ، ولكنها تُستخدم الآن في العديد من البيئات الأخرى أيضًا.
  • تتمتع جافاسكريبت اليوم بمكانة فريدة باعتبارها لغة المتصفح الأكثر استخدامًا مع تكاملها التام مع HTML / CSS.
  • هناك العديد من اللغات التي يتم “تحويلها” إلى الجافاسكريبت وتوفر ميزات معينة. يوصى بإلقاء نظرة عليهم ، على الأقل لفترة وجيزة ، بعد إتقان الجافاسكريبت.
خريطة الدورة التعليمية

التعليقات

إقرأ هذا قبل أن تضع تعليقًا…
  • إذا كان لديك اقتراحات أو تريد تحسينًا - من فضلك من فضلك إفتح موضوعًا فى جيتهاب أو شارك بنفسك بدلًا من التعليقات.
  • إذا لم تستطع أن تفهم شيئّا فى المقال - وضّح ماهو.
  • إذا كنت تريد عرض كود استخدم عنصر <code> ، وللكثير من السطور استخدم <pre>، ولأكثر من 10 سطور استخدم (plnkr, JSBin, codepen…)