جافا سكريبت

0 views
Skip to first unread message
Message has been deleted

Adrian Rocher

unread,
Jul 14, 2024, 1:22:07 AM7/14/24
to raiketcasi

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

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

جافا سكريبت


Download File https://urlin.us/2yS2Tx



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

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

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

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

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

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

أما إذا كانت شيفرة JavaScript في ملفٍ خارجي (وليكن اسمه script.js) فيمكن تضمينه باستخدام العنصر أيضًا لكن مع استخدام الخاصية src كما يلي:

هذه الدوال العامة -أي التي تستدعى في النطاق العام بدل استدعائها على كائن بعينه- تُعيد نتائجها إلى التعبير البرمجي الذي استدعاها.

هذه هي الكائنات الأساسية التي بنيت الكائنات الأخرى عليها وهي تتضمن الكائنات التي تستطيع تمثيل الكائنات العامة والدوال والأخطاء.

يإنهاء حلقة التكرار الحالية أو التعبير switch أو label وستنقل تنفيذ البرنامج إلى التعبير البرمجي الذي يلي التعبير الذي انتهى.

تجاوز تنفيذ التعابير البرمجية في التكرار الحالي (iteration) في حلقة التكرار الحالية أو حلقة التكرار المسماة (عبر لافتة) وسيستمر تنفيذ الحلقة بدءًا من التكرار التالي.

التعبير البرمجي الشرطي يُستخدَم لتنفيذ تعبير برمجي معيّن عندما يكون الشرط محققًا وإذا كان الشرط غير محققٍ فسيُنفِّذ تعبيرًا برمجيًا آخر.

التصريح عن الدالة (function declaration) يُعرِّف دالةً لها معاملات (parameters) معيّنة. انظر إلى صفحة الدوال في JavaScript للمقارنة بين صيغ تعريف الدوال.

يُنشِئ حلقة تكرار تُنفِّذ تعبيرًا برمجيًا معيّنًا إلى أن يصبح الشرط غير محقق (false) وسيتم التحقق من الشرط بعد تنفيذ التعبير البرمجي مما يؤدي إلى تنفيذ التعبير البرمجي المُعيّن مرةً واحدةً على الأقل.

يُنشِئ حلقة تكرار تتألف من ثلاثة تعبيرات برمجية اختيارية تحيط بها أقواس وتفصل بينها فواصل منقوطة ويليها تعبيرٌ برمجيٌ (وعادةً يكون قسمًا كتليًا [block statement]) سيُنفَّذ في كل تكرار للحلقة.

يمر على الكائنات التي يمكن الدوران على عناصرها (iterable objects) بما في ذلك الكائن Array وMap وSet وString وTypedArray وArguments وتنفيذ تعابير برمجية معيّنة على قيمة كل خاصية من خاصيات تلك الكائنات.

يُنشِئ حلقة تكرار تُنفِّذ تعبيرًا برمجيًا معيّنًا طالما كان الشرط محققًا (true) وسيتم التحقق من الشرط قبل تنفيذ التعبير البرمجي.

يؤدي إلى تفعيل وظيفة التنقيح (debugging functionality) المتاحة مثل بداية نقطة المقاطعة (breakpoint) لكن إن لم يكن هنالك منقِّح أو وظيفة تنقيح متاحة فلن يكون لهذا التعبير أي أثر.

يمكن أن يُستخدَم عند إنشاء وحدات JavaScript (أي JavaScript modules) لتصدير الدوال أو الكائنات أو القيم الأوليّة (primitive values) من وحدة (module) لكي يمكن استخدامها من برنامج آخر باستخدام التعبير البرمجي import.

يمكن أن يُستخدَم مع التعبير البرمجي break أوcontinue وهو يوضع قبل التعابير البرمجية لإضافة لافتة (مُعرِّف) لها يمكن الإشارة إليها.

الكلمة المحجوزة function تُستخدَم لتعريف دالة داخل تعبير (expression). انظر إلى صفحة الدوال في JavaScript للمقارنة بين صيغ تعريف الدوال.

الكلمة المحجوزة function* تُستخدَم لتعريف دالة مولِّدة داخل تعبير. انظر إلى صفحة الدوال في JavaScript للمقارنة بين صيغ تعريف الدوال.

الكلمة المحجوزة async function تُستخدَم لتعريف دوال غير متزامنة ضمن تعبير (expression). انظر إلى صفحة الدوال في JavaScript للمقارنة بين صيغ تعريف الدوال.

يُنشِئ نسخةً من كائن مُعرَّف من المستخدم أو نسخةً من أحد أنواع الكائنات المُضمّنة في لغة JavaScript والتي تملك دالةً بانيةً.

معامل النشر (spread operator) يسمح للكائنات التي يمكن المرور على عناصرها (أي أنها iterable) مثل تعابير المصفوفات أو السلاسل النصية أن توسَّع في الأماكن التي تتوقع JavaScript وجود صفر وسيط أو أكثر (عند استدعاء الدوال) أو صفر عنصر أو أكثر (في المصفوفات) أو نشر كائن في الأمكان التي تتوقع JavaScript وجود صفر زوج أو أكثر من المفتاحي والقيم المرتبطة بها (عند تعريف الكائنات).

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

الاسناد بالتفكيك (destructuring assignment) يسمح بتفكيك القيم الموجودة في المصفوفات أو خاصيات أحد الكائنات إلى متغيرات مستقلة.

تستعير الجافاسكريبت معظم قواعدها من جافا لكنها كذلك ترثُ من أوك وبيرل. مع بعض التأثير الغير مباشر من قبل لغة سالف.

رغم أنه قد تم إنشاء هذه اللغة لتعمل بالكامل في المتصفح إلا أنه أصبح يمكن استخدامها لإنتاج برامج تعمل خارج المتصفح (Standalone) وذلك بفضل برمجيات مثل:

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

59fb9ae87f
Reply all
Reply to author
Forward
0 new messages