جافا سكريبت
المحتويات
- const
- المعامل الشرطي الثلاثي
- in
- العلامة التجارية
- var
- instanceof
- for
- التاريخ
- do...while
- الأرقام والتواريخ
- الكائنات العامة
- البيانات المهيكلة
- let
- معاملات الإسناد
- الإسناد بالتفكيك
- []
- super
- المعاملات الرياضية
- yield
- new
- // شيفرات JavaScript
- block
- this
- بنية اللغة
- debugger
- التعابير والمعاملات
- %: معامل باقي القسمة
- المعاملات المنطقية
- المعاملات الثنائية
- export
- yield*
- return
- استخدام ملف خارجي
- الوصول إلى الخاصيات
- معاملات الزيادة والنقصان
- معاملات المقارنة
- معالجة النصوص
- {}
- for...in
- الكائنات الأساسية
- await
- الدوال العامة
- Empty
- معامل الفاصلة
- new.target
- label
- /ab+c/i
- الدوال والأصناف
- المعاملات النسبية
- الاستخدام داخل المتصفح
- الخاصيات العامة
- continue
- التعابير البرمجية
- break
- switch
- if...else
- for...of
- معاملات المساواة
- المعاملات الأحادية
- throw
- try...catch
- أصل التسمية
- الاستخدام خارج المتصفح
- قواعد الجافا سكريبت
- while
- التعابير الأساسية
- import

تعريفًا بالموضوع، جافا سكرِبت، واختصارُها المعروف: "JS" هي لغةُ برمجة، عالية المستوى، تُستعمل غالباً لكتابة نصوص برمجية ديناميكية تعمل على جانب العميل في صفحات الويب. تطورها الآن لَجنة TC39 التي تديرها منظمة ECMA للمعايير. ونتناول فيما يلي مزيدًا من التفاصيل.
وفي هذا الصدد، بدأت لغةً للمبرمجين الهواة وغير المحترفين، ولكن التفتَتْ إليها الأنظار، فازداد المحترفون بها اهتمامًا؛ لِمَا أحدثَتْ من جديد التِقْنِيَّات: كانتشار أَجَكْس التي سرَّعتْ التفاعل بين الخادوم والعميل.
في هذا الإطار، وكذلك في تطوير صَفَحات وِب متفاعلة، وتطبيقات الويب، ومنها الألعاب. وهي في جُلِّ المواقع، تكاد تدعمها المتصفحات جَمْعاء بلا إضافات.
const
التصريح عن ثابت للقراءة فقط.
المعامل الشرطي الثلاثي
علاوةً على ذلك، هو المعامل الوحيد في JavaScript الذي يأخذ ثلاثة قيمة ليجري عليها عمليته، ومن الشائع استخدام هذا المعامل كاختصارٍ للتعبير البرمجي if.
in
وفي السياق ذاته، يُعيد القيمة true إذا كانت الخاصية المُحدَّدة موجودةً في الكائن أو في سلسلة prototype الخاصة به.
العلامة التجارية
ومن جهة أخرى، الاسم «جافا سكريبت» هو علامة تجارية مملوكة ومسجلة لشركة أوراكل في الولايات المتحدة.
var
ومن ناحية أخرى، تعبير variable يُصرِّح عن متغير، ويمكن تهيئة قيمته الابتدائية اختياريًا.
instanceof
وفي هذا الصدد، يختبر إذا كانت الخاصية prototype لدالة بانية تظهر في أيّ مكان في سلسلة prototype لأحد الكائنات.
for
وفي هذا الصدد، يُنشِئ حلقة تكرار تتألف من ثلاثة تعبيرات برمجية اختيارية تحيط بها أقواس وتفصل بينها فواصل منقوطة، ويليها تعبيرٌ برمجيٌ (وعادةً يكون قسمًا كتليًا [block statement]) سيُنفَّذ في كل تكرار للحلقة.
التاريخ
وفي السياق ذاته، في سنة 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 يحتاج إلى «لغة لاصقة» كان من السهل استخدامها من قبل مصممي الويب والمبرمجين غير المتفرغين لتجميع مكونات مثل الصور والإضافات، حيث يمكن كتابة الكود مباشرة في الويب ترميز الصفحة.
do...while
من جهة ثانية، يُنشِئ حلقة تكرار تُنفِّذ تعبيرًا برمجيًا معيّنًا إلى أن يصبح الشرط غير محقق (false)، وسيتم التحقق من الشرط بعد تنفيذ التعبير البرمجي، مما يؤدي إلى تنفيذ التعبير البرمجي المُعيّن مرةً واحدةً على الأقل.
الأرقام والتواريخ
- وهي الكائنات الأساسية التي تُمثِّل الأرقام والتواريخ والعمليات الرياضية.
- Number
- Math
- Date
الكائنات العامة
من جانب آخر، في هذا القسم جميع الكائنات العامة المُضمَّنة في لغة JavaScript، إضافةً إلى جميع الخاصيات والدوال التابعة لها.
البيانات المهيكلة
- هذه الكائنات تُمثِّل مجموعةً من الكائنات التي لها فهرس وقيمة.
- Array
- JSON
- غير ذلك
- arguments
let
ومن ناحية أخرى، يُصرِّح عن متغير محلي للقسم الكتلي، ويمكن تهيئة قيمته الابتدائية اختياريًا.
معاملات الإسناد
- تُسنِد هذه المعاملات القيمة التي على يسار المعامل بناءً على قيمة ما على يمينه.
- : معامل الإسناد.
- *: معامل الإسناد والضرب.
- /: معامل الإسناد والقسمة.
- %: معامل الإسناد وحساب باقي القسمة.
- +: معامل الإسناد والجمع.
- -: معامل الإسناد والطرح.
- >>: معامل الإسناد والإزاحة إلى اليسار.
- <<: معامل الإسناد والإزاحة إلى اليمين.
- <<<: معامل الإسناد والإزاحة إلى اليمين دون الحفاظ على الإشارة.
- &: معامل الإسناد وإجراء عملية AND الثنائية.
- ^: معامل الإسناد وإجراء عملية XOR الثنائية.
الإسناد بالتفكيك
{a, b} = {a:1, b:2}
ومن ناحية أخرى، الاسناد بالتفكيك (destructuring assignment) يسمح بتفكيك القيم الموجودة في المصفوفات أو خاصيات أحد الكائنات إلى متغيرات مستقلة.
[a, b] = [1, 2]
[]
الشكل المختصر لتعريف المصفوفات.
super
ومن جهة أخرى، معامل النشر (spread operator) يسمح للكائنات التي يمكن المرور على عناصرها (أي أنها iterable) مثل تعابير المصفوفات أو السلاسل النصية أن توسَّع في الأماكن التي تتوقع JavaScript وجود صفر وسيط أو أكثر (عند استدعاء الدوال) أو صفر عنصر أو أكثر (في المصفوفات)، أو نشر كائن في الأمكان التي تتوقع JavaScript وجود صفر زوج أو أكثر من المفتاحي والقيم المرتبطة بها (عند تعريف الكائنات).
تُستخدَم للوصول إلى الكائنات في الكائن الأب واستدعائها.
معامل النشر (...obj)
المعاملات الرياضية
- المعاملات الرياضية تأخذ القيم العددية وتجري عليها عمليةً ثم تعيد قيمةً واحدةً.
- +: معامل الجمع.
- -: معامل الطرح.
- /: معامل القسمة.
- *: معامل الضرب.
yield
كذلك، الكلمة المحجوزة yield تُستخدَم لإيقاف تنفيذ دالة مولِّدة (function*) مؤقتًا واستئناف تنفيذها.
new
ومن جهة أخرى، يُنشِئ نسخةً من كائن مُعرَّف من المستعمل أو نسخةً من أحد أنواع الكائنات المُضمّنة في لغة JavaScript والتي تملك دالةً بانيةً.
// شيفرات JavaScript
وفي السياق ذاته، أما إذا كانت شيفرة JavaScript في ملفٍ خارجي (وليكن اسمه script.js) فيمكن تضمينه باستخدام العنصر كذلك، لكن مع استخدام الخاصية src كما يلي:
block
وعلى صعيد آخر، تُستخدَم الأقسام الكتلية لتجميع عدِّة تعابير برمجية معًا، ويُعرَّف القسم بزوجين من الأقواس المعقوفة {}.
this
- class (تعبير تعريف الأصناف)
- الكلمة المحجوزة class تشير إلى تعبير تعريف للأصناف.
- function* (تعبير تعريف الدوال المولدة)
ومن ناحية أخرى، الكلمة المحجوزة function* تُستخدَم لتعريف دالة مولِّدة داخل تعبير. انظر إلى صفحة «الدوال في JavaScript» للمقارنة بين صيغ تعريف الدوال.
تُحدَّد قيمة الكلمة المحجوزة this وفق طريقة استدعاء الدالة.
function (تعبير تعريف الدوال)
كذلك، الكلمة المحجوزة function تُستخدَم لتعريف دالة داخل تعبير (expression). انظر إلى صفحة «الدوال في JavaScript» للمقارنة بين صيغ تعريف الدوال.
بنية اللغة
ومن جهة أخرى، هنالك الكثير من محركات JavaScript، وكل واحدٍ منها يخضع لمواصفة ECMAScript (مع أنَّها تختلف فيما بينها بالإصدارات التي تدعمها). يوجد في نهاية كل صفحة من صفحات هذا التوثيق قسمٌ بعنوان «دعم المتصفحات» الذي نذكر فيه ما هي المتصفحات التي تدعم الميزة المذكورة.
علاوةً على ذلك، يتألف أساس لغة JavaScript من الميزات الشائعة للغات البرمجة، التي تسمح لنا:
علاوةً على ذلك، ويمكن استخدام JavaScript كذلك من طرف الخادم، ولمزيدٍ من المعلومات انظر إلى صفحة Node.js.
إجراء عمليات معالجة على السلاسل النصية،
يمكن تضمين شيفرات JavaScript في الصفحات بطريقتين:
في هذا الإطار، في الماضى كانت لغة JavaScript محدودةً إلى متصفحات الويب فيما قد سلف، لكن توسّع مجال JavaScript في الفترة الأخيرة لتضم إنشاء تطبيقات ويب من جهة الخادم (server-side) مع التعامل مع قواعد البيانات، إضافةً إلى إمكانية استخدامها في بيئات ليست متعلقة بالويب مثل معالجات النصوص وبرمجيات PDF، ومن الممكن استعمالها كذلك لكتابة تطبيقات سطح المكتب أو تطبيقات الهواتف، وحتى تطوير الألعاب
بتخزين القيم داخل متغيرات،
وفي هذا الصدد، ما يجب أن يثير اهتمامنا هو الواجهات البرمجية التي تُضيف وظائف على لغة JavaScript، وتسمى هذه الواجهات البرمجية بالمصطلح APIs (أي Application Programming Interfaces)، والتي تسمح للمطورين باستخدام لغة JavaScript للتعامل مع كثيرٍ من الأشياء، في مجال متصفحات الويب يمكننا استخدام JavaScript للتعامل مع شجرة DOM، ولاستخدام الواجهة البرمجية للمواقع الجغرافية (Geolocation API)، ولإنشاء رسوميات ثنائية وثلاثية الأبعاد عبر Canvas وWebGL، وللتحكم بالوسائط مثل الفيديو والصوت، وغير ذلك.
تضمين الشيفرات داخل مستند HTML
تنفيذ إجراءات معيّنة اعتمادًا على وقوع الأحداث.
debugger
في هذا الإطار، يؤدي إلى تفعيل وظيفة التنقيح (debugging functionality) المتاحة، مثل بداية نقطة المقاطعة (breakpoint)؛ لكن إن لم يكن هنالك منقِّح أو وظيفة تنقيح متاحة فلن يكون لهذا التعبير أي أثر.
التعابير والمعاملات
هذا القسم فيه ما يتعلق بالتعابير والمعاملات في JavaScript.
%: معامل باقي القسمة
**: معامل رفع العدد إلى قوة.
المعاملات المنطقية
&&: معامل AND المنطقي.
كذلك، تُستخدَم المعاملات المنطقية عادةً مع القيم المنطقية (Boolean)، وتُعيد قيمةً منطقيةً كذلك.
المعاملات الثنائية
- <<: معامل الإزاحة إلى اليسار.
- <<: معامل الإزاحة إلى اليمين.
- <<<: معامل الإزاحة إلى اليمين دون إشارة.
- &: معامل AND الثنائي.
- ^: معامل XOR الثنائي.
من جهة ثانية، تُعامِل المعاملات الثنائية القيم على أنها مجموعة من 32 بت (أصفار وواحدات) وتُعيد قيمًا رقميةً عادية.
export
ومن جهة أخرى، يمكن أن يُستخدَم عند إنشاء وحدات JavaScript (أي JavaScript modules) لتصدير الدوال أو الكائنات أو القيم الأوليّة (primitive values) من وحدة (module) لكي يمكن استخدامها من برنامج آخر باستخدام التعبير البرمجي import.
yield*
async function* (تعبير تعريف الدوال غير المتزامنة)
وفي هذا الصدد، الكلمة المحجوزة async function تُستخدَم لتعريف دوال غير متزامنة ضمن تعبير (expression). انظر إلى صفحة «الدوال في JavaScript» للمقارنة بين صيغ تعريف الدوال.
من جانب آخر، التعبير yield* يُستخدَم لتفويض التنفيذ إلى دالة مولِّدة أخرى أو كائن iterable.
return
من جانب آخر، التصريح عن الصنف (class declaration) يؤدي إلى إنشاء صنف جديد له اسمٌ معيّن يستعمل الوراثة عبر سلسلة prototype.
وفي السياق ذاته، يؤدي إلى إنهاء تنفيذ الدالة ويُحدِّد قيمةً لتُعيدها الدالة إلى التعبير الذي استدعاها.
class (التصريح عن صنف)
حلقات التكرار
استخدام ملف خارجي
كذلك، يمكن تضمين شيفرة JavaScript في أي مكان داخل المستند، لكن يُنصَح بوضعها قبل وسم الإغلاق للعنصر . تُضاف الشيفرة داخل العنصر كما يلي:
الوصول إلى الخاصيات
وعلى صعيد آخر، طرائق الوصول إلى الخاصيات توفِّر وصولًا إلى خاصيات أحد الكائنات باستخدام طريقة النقط أو طريقة الأقواس.
معاملات الزيادة والنقصان
- وهي تتضمن الزيادة (أو النقصان) قبل الإسناد، والزيادة (أو النقصان) بعد الإسناد.
- A++
- A--
- ++A
- --A
معاملات المقارنة
- >: أقل من.
- <: أكبر من.
- >: أقل من أو يساوي.
- <: أكبر من أو يساوي.
معالجة النصوص
- هذه الكائنات تُمثِّل السلاسل النصية وطرائق معالجتها وتعديلها.
- String
- RegExp
{}
الشكل المختصر لتهيئة الكائنات.
for...in
وفي هذا الصدد، يُنشِئ حلقة تكرار تمر على الخاصيات القابلة للإحصاء (enumerable properties) التابعة لأحد الكائنات.
الكائنات الأساسية
وفي هذا السياق، هذه هي الكائنات الأساسية التي بنيت الكائنات الأخرى عليها، وهي تتضمن الكائنات التي تستطيع تمثيل الكائنات العامة والدوال والأخطاء.
- Object
- Function
- Boolean
- Symbol
- Error
- EvalError
- RangeError
- ReferenceError
- SyntaxError
- TypeError
- URIError
await
وعلى صعيد آخر، يُستخدَم لانتظار وعد (الكائن Promise)، ويمكن أن يُستخدَم داخل دالة غير متزامنة فقط (async function).
الدوال العامة
من جهة ثانية، هذه الدوال العامة -أي التي تستدعى في النطاق العام بدل استدعائها على كائن بعينه- تُعيد نتائجها إلى التعبير البرمجي الذي استدعاها.
- eval
- isFinite
- isNaN
- parseFloat
- parseInt
- decodeURI
- decodeURIComponent
- encodeURI
- encodeURIComponent
- escape
- unescape
Empty
إضافةً إلى ذلك، يُستخدَم لتجنب توفير تعبير برمجي في المواضع التي تتطلب فيها JavaScript تعبيرًا برمجيًا واحدًا على الأقل.
معامل الفاصلة
وفي السياق ذاته، يُقدِّر القيم التي يجري عمليتها عليها (من اليسار إلى اليمين) ويُعيد قيمة آخر قيمة .
new.target
في هذا الإطار، تسمح لك بمعرفة إن استدعيت دالةٌ عاديةٌ أم دالةٌ بانيةٌ باستخدام المعامل new.
label
في هذا الإطار، يمكن أن يُستخدَم مع التعبير البرمجي break أوcontinue، وهو يوضع قبل التعابير البرمجية لإضافة لافتة (مُعرِّف) لها يمكن الإشارة إليها.
/ab+c/i
- الشكل المختصر لتعريف التعابير النمطية (regular expressions).
- معامل التجميع.
- تعابير الإسناد
الدوال والأصناف
function (التصريح عن دالة)
ومن ناحية أخرى، التصريح عن دالة غير متزامنة. انظر إلى صفحة «الدوال في JavaScript» للمقارنة بين صيغ تعريف الدوال.
كذلك، التصريح عن الدالة (function declaration) يُعرِّف دالةً لها معاملات (parameters) معيّنة. انظر إلى صفحة «الدوال في JavaScript» للمقارنة بين صيغ تعريف الدوال.
async function (التصريح عن دالة غير متزامنة)
function* (التصريح عن دالة مولدة)
إضافةً إلى ذلك، التصريح عن الدالة المولدة. انظر إلى صفحة «الدوال في JavaScript» للمقارنة بين صيغ تعريف الدوال.
المعاملات النسبية
علاوةً على ذلك، تجري هذه المعاملات عملياتها على قيمةٍ ما وتُعيد قيمةً منطقية (Boolean) بناءً على قيمة ناتج المقارنة.
الاستخدام داخل المتصفح
وفي هذا الصدد، يقوم المتصفح بتحميل البرنامج المكتوب بلغة الجافاسكريبت إما مضمّناً داخل صفحة الـ HTML أو من ملف خارجي. تنفذ جميع العمليات التي على جهاز المستعمل — أي ضمن المتصفح الخاص به.
- مثال
- function salam{
- alert("وعليكم السلام");
- }
- السلام عليكم
وفي هذا الصدد، هذا مثال بسيط لصفحة برنامج مضمن داخل الـHTML يقوم بإظهار رسالة "وعليكم السلام" عند الضغط على زر «السلام عليكم»:
كذلك، تقوم الجافاسكريبت بإنشاء دوال تفاعلية. وهذا ما تستعمله الكثير من المواقع والصفحات مثل فيسبوك ويوتيوب.
الخاصيات العامة
ومن ناحية أخرى، هذه الخاصيات العامة تُعيد قيمةً بسيطةً، فهي لا تُمثِّل دوالًا أو خاصياتٍ تابعة لأحد الكائنات.
- Infinity
- NaN
- undefined
- globalThis
continue
في هذا الإطار، تجاوز تنفيذ التعابير البرمجية في التكرار الحالي (iteration) في حلقة التكرار الحالية أو حلقة التكرار المسماة (عبر لافتة)، وسيستمر تنفيذ الحلقة بدءًا من التكرار التالي.
التعابير البرمجية
من جانب آخر، في هذا القسم جميع التعابير البرمجية الموجودة في لغة جافا سكريبت.
التحكم في التنفيذ
break
علاوةً على ذلك، يإنهاء حلقة التكرار الحالية أو التعبير switch أو label، وستنقل تنفيذ البرنامج إلى التعبير البرمجي الذي يلي التعبير الذي انتهى.
switch
وفي هذا الصدد، يُستخدَم لمطابقة قيمة تعبير برمجي باستخدام عبارةcase، ثم يُنفِّذ التعابير البرمجية المرتبطة معها.
if...else
من جهة ثانية، التعبير البرمجي الشرطي يُستخدَم لتنفيذ تعبير برمجي معيّن عندما يكون الشرط محققًا، وإذا كان الشرط غير محققٍ فسيُنفِّذ تعبيرًا برمجيًا آخر.
for...of
وفي هذا السياق، يمر على الكائنات التي يمكن الدوران على عناصرها (iterable objects) بما في ذلك الكائن Array وMap وSet وString وTypedArray وArguments، وتنفيذ تعابير برمجية معيّنة على قيمة كل خاصية من خاصيات تلك الكائنات.
معاملات المساواة
ومن جهة أخرى، هذه المعاملات تعيد قيمةً منطقيةً (Boolean) بناءً على ناتج اختبار مساواة قيمتين مع بعضهما بعضًا.
- : معامل المساواة.
- !: معامل عدم المساواة.
- : معامل المطابقة.
- !: معامل عدم المطابقة.
المعاملات الأحادية
- وهي المعاملات التي تجري عمليتها على قيمة واحدة فقط.
- delete: يحذف خاصيةً من كائن.
- void: يُقدِّر قيمة التعبير المعطى (expression) ثم يُعيد القيمةundefined.
- typeof: يُعيد سلسلةً نصية تُشير إلى نوع القيمة التي تليه.
- + و-: إشارة الزائد والناقص التي تُستخدَم مع القيم العددية Number.
- ~: معامل NOT الثنائي.
throw
يؤدي إلى رمي استثناء (exception) يُعرِّفه المستعمل.
try...catch
إضافةً إلى ذلك، يُستخدَم لتجربة قسم من التعابير البرمجية، ويُحدِّد طريقةً لمعالجة الاستثناءات إن رُمِيَت.
تعابير التصريح عن متغيرات
أصل التسمية
إضافةً إلى ذلك، المتغيرات في الجافا ثابتة النوع، بينما في الجافاسكريبت فهي ديناميكية. يعني أنك عند تعريف متغير ما في الجافا فيجب تحديد نوعه الذي لا يمكن تغييره. مثلا، لو عرفت المتغير «العمر» بأنه رقم وأعطيته قيمة "7" مثلا فلا يمكنك تغيير الرقم إلى نوع آخر (ككلمة «سبعة»). بينما في الجافاسكريبت فيمكنك فعل ذلك.
من جهة ثانية، هذا التغيير في الاسم سبب الغموض وسوء الفهم موحياً بأن لغة الجافا والجافاسكريبت مرتبطان أو متشابهتان. صحيح أن كلاهما يمتلكان شكلاً شبيهاً بلغة السي، إلا أن أوجه الاختلاف بين اللغتين واسع:
وفي هذا السياق، الجافا بحاجة إلى التحويل إلى بايت كود Bytecode. بينما برامج الجافاسكريبت فيتم معالجتها كنص مصدري.
إضافةً إلى ذلك، في البداية تم تطوير هذه اللغة تحت اسم موكا (Mocha)، وأطلق عليها اسم LiveScript رسمياً أثناء تجريبها في إصدار متصفحات نتسكيب نافيجاتور 2.0 بيتا (Beta) سنة 1995. لكنها لاحقاً غيرت اسمها إلى جافاسكريبت JavaScript ويعود ذلك إلى إضافتها لدعم لغة الجافا.
ومن جهة أخرى، الجافا لم تدعم البرمجة الأمرية إلا بداية من الإصدار الثامن. بينما الجافاسكريبت فدعمتها منذ البداية.
الاستخدام خارج المتصفح
علاوةً على ذلك، لغة مُضمنة للبرمجة النصية، يمكن تستخدام جافاسكربت كلغة مضمنة، فمثلًا تُستعمل جافاسكربت في برنامج adobe after effect للمساعدة على تطبيق التأثيرات المُعقدة من خلال After Effects expression language ، وكذلك وفرت قوقل لمستعملين خدمات Google Workspace أمكانية برمجة برمجيات نصية تُساعد على أداء بعض المهام مع خدمات قوقل تحت اسم Google Apps Script.
من جهة ثانية، فونغاب أو Cordova الذي يسمح بإنشاء تطبيقات للهواتف لعدة منصات كالأندرويد مستعملا تكنولوجيا الويب.
علاوةً على ذلك، رغم أنه قد تم إنشاء هذه اللغة لتعمل بالكامل في المتصفح، إلا أنه أصبح يمكن استخدامها لإنتاج برامج تعمل خارج المتصفح (Standalone) وذلك بفضل برمجيات مثل:
من جهة ثانية، نود.جي إس (Node.js) الذي يستعمل الجافاسكربت لإنشاء تطبيقات لواجهة سطر الأوامر
- داخل ملفات نسق المستندات المنقولة. (PDF)
- انظر كذلك
- جافا سكريبت الواضحة
- مقارنة بين إطارات عمل جافا سكريبت
- مكتبة جافا سكريبت
- إطار عمل جافا سكريبت
- أجاكس
- إطار عمل أجاكس
ومن جهة أخرى، Node-Webkit أو nwjs وهو عبارة عن دمج بين متصفح كرويوم وnode.js حيث يسمح هذا البرنامج بإنشاء برامج رسومية باستخدام تكنولوجيا الويب: جافاسكريبت، HTML & صفحات الطرز المتراصة (CSS).
وعلى صعيد آخر، كما أنه ومع إطلاق وندوز8 أصبح بإمكان المطورين برمجة تطبيقات Metro Style App بواسطة تكنولوجيا الويب.
قواعد الجافا سكريبت
مثال عن برنامج «أهلا بالعالم»:
إضافةً إلى ذلك، تستعير الجافاسكريبت أغلب قواعدها من جافا، لكنها كذلك ترثُ من أوك وبيرل. مع بعض التأثير الغير مباشر من قبل لغة سالف.
وصف برنارد آيخ قواعد الجافاسكريبت بقوله:
window.alert("Hello World")
while
غير ذلك
كذلك، يُنشِئ حلقة تكرار تُنفِّذ تعبيرًا برمجيًا معيّنًا طالما كان الشرط محققًا (true)، وسيتم التحقق من الشرط قبل تنفيذ التعبير البرمجي.
التعابير الأساسية
وهي تتضمن التعابير والكلمات المحجوزة العامة في JavaScript.
import
يُستخدَم لاستيراد ما صُدِّر من وحدة (module) أخرى.
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟