جافا سكريبت

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث
جافا سكريبت
Unofficial JavaScript logo 2.svg

ظهرت في 1995
صممها برندان آيخ
التطوير
المطور نتسكيب, مؤسسة موزيلا
آخر إصدار 1.8.1(2014)

جافا سكريبت (بالإنجليزية: JavaScript) هي لغة برمجة وتأتي كلمة جافا من الإنجليزية وتعني قهوة الجافا الإندونيسية، وهي جزيرة إندونيسية، ولا علاقة لمنشأ اللغة باسمها. طورت جافاسكريبت من قبل شركة نيتسكيب (بالإنجليزية: Netscape) وصن مايكروسيستمز (بالإنجليزية: Sun Microsystems). تختلف الجافا سكريبت عن لغة الجافا من شركة صن مايكروسيستمز والتشابه في الاسم لا يرجع لأنهما مثل بعضهما، وفائدة هذه اللغة هي بثّ الحياة إلى شبكة الإنترنت، حيث تستخدم لإنشاء صفحات إنترنت أكثر تفاعلية (ديناميكية).

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

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

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

في الاونة الأخيرة مع إطلاق وندوز 8 أصبح بإمكان المطورين برمجة تطبيقات Metro Style App بواسطة الجافاسكربت والـ HTML5 بدمجها مع واجهة برمجة التطبيقات الجديدة WinRT إلا انها لا تنفذ على متصفحات الويب وتعمل كتطبيقات Standalone تحت نظام Windows8 والأجهزة المتوافقة معه.

الكائنات Objects[عدل]

الكائنات Objects مثلا هي الصور والأزرار والصفحات والبيانات وكل ما في ذاكرة الحاسب من أشياء يتم التعامل معها كأنها كائنات. وكل كائن له خصائص تميزه وطرق (Methods) ووظائف (Functions) تستخدم للتعامل مع كل كائن للقيام بالوظائف الخاصة به.

المتغيرات Variables[عدل]

تعتبر كذاكرات تحفظ قيما وتحمل اسما معينا ويمكن استرجاع القيمة أو تعديلها أئناء التشغيل الفعلي للكود (Run time)، كما أنه في لغة جافاسكربت يمكن تعديل نوع البيانات (Data Type) المخزنة في هذا المتغير أيضا أثناء التشغيل الفعلي للكود وتسمى هذه الخاصية تغيير النوع التفاعلي (Dynamic typing). و تقوم بأنشاء المتغيرات عن طريق هذا الكود:: var nameOfVariable;

الدوال Functions[عدل]

و تسمى أيضا وظائف.

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

ويتم كتابة دالة بلغة جافا سكريبت عن طريق كتابة الكلمة المحجوزة function ومن ثم يتبعها اسم الدالة + () وثم يتم فتح جسم الدالة وكتابة الجمل البرمجية التي ستنفذها تلك الدالة مثل

function print(){
  window.alert("welcome"); 
}

التكراريات Loops[عدل]

تمكن من تنفيذ مجموعة تعليمات بطريقة تكرارية أو دورية.

ومنها:

Commons-emblem-no-copyright.svg انتبه! قد يكون محتوى هذه المقالة أو هذا القسم انتهاكا لحقوق التأليف والنشر.

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

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

نص هذه المقالة أو هذا المقطع منسوخ من:
Commons-emblem-no-copyright.svg انتبه! قد يكون محتوى هذه المقالة أو هذا القسم انتهاكا لحقوق التأليف والنشر.

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

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

نص هذه المقالة أو هذا المقطع منسوخ من:
Commons-emblem-no-copyright.svg انتبه! قد يكون محتوى هذه المقالة أو هذا القسم انتهاكا لحقوق التأليف والنشر.

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

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

نص هذه المقالة أو هذا المقطع منسوخ من:

لاستخدام هذا القالب: {{خرق|الموقع المنسوخ منه|{{نسخ:يوم حالي}}|{{نسخ:اسم الشهر الحالي}}|~~~~}}

إذا كنت تنوي إصلاح هذه الصفحة، أزل هذه الرسالة، لكن لا تزلها من الصفحات التي أنشأتها بنفسك، وإن كنت لا توافق على اقتراح الحذف ، رجاء أضف تحت قالب الخرق مباشرة:

{{طلب عدم الشطب}}

نبّه مُنشئ هذه الصفحة بوضع ما يلي في صفحة نقاشه: {{نسخ:تنبيه خرق|جافا سكريبت}} --~~~~

قد أبلغ عن الخرق: {{{4}}}

لاستخدام هذا القالب: {{خرق|الموقع المنسوخ منه|{{نسخ:يوم حالي}}|{{نسخ:اسم الشهر الحالي}}|~~~~}}

إذا كنت تنوي إصلاح هذه الصفحة، أزل هذه الرسالة، لكن لا تزلها من الصفحات التي أنشأتها بنفسك، وإن كنت لا توافق على اقتراح الحذف ، رجاء أضف تحت قالب الخرق مباشرة:

{{طلب عدم الشطب}}

نبّه مُنشئ هذه الصفحة بوضع ما يلي في صفحة نقاشه: {{نسخ:تنبيه خرق|جافا سكريبت}} --~~~~

قد أبلغ عن الخرق: {{{4}}}

لاستخدام هذا القالب: {{خرق|الموقع المنسوخ منه|{{نسخ:يوم حالي}}|{{نسخ:اسم الشهر الحالي}}|~~~~}}

إذا كنت تنوي إصلاح هذه الصفحة، أزل هذه الرسالة، لكن لا تزلها من الصفحات التي أنشأتها بنفسك، وإن كنت لا توافق على اقتراح الحذف ، رجاء أضف تحت قالب الخرق مباشرة:

{{طلب عدم الشطب}}

نبّه مُنشئ هذه الصفحة بوضع ما يلي في صفحة نقاشه: {{نسخ:تنبيه خرق|جافا سكريبت}} --~~~~

قد أبلغ عن الخرق: {{{4}}}== الشرطيات Conditions ==

مجموعة تعليمات تنفذ في حالة تحقق شرط معين.

ومنها:

استخدام جافا سكربت في صفحات الوب[عدل]

يمكن دعم جافا سكربت ضمن صفحة HTML لإنشاء دوال تفاعلية مع الصفحة وهذا ما تستخدمه العديد من الشركات امثال ياهوو وهوتميل. هنا مثال بسيط لصفحة وب محتوية على كود جافا سكربت:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html dir = "rtl">
  <head><title>صفحة وب مبسطة..</title></head>
  <body>
    <script type="text/javascript">
      document.write('مرحبا بالعالم!');
    </script>
    <noscript>
<html>
      <p>يبدوا ان متصفحك لايدعم الجافا سكربت او ان اعدادات الامان لاتسمح بذلك. اذا رغبت بالاستمرار في تنفيذ هذا البرنامج يجب حل المشكلة اولا!</p>
</html>
    </noscript>
  </body>
</html>

أو بطريقة أخرى

<SCRIPT LANGUAGE="Javascript"> 
name=window%252Eprompt%2528"أدخل اسمك.","هنا "); 
document.write("<H1 align=center>اهلا بك يا "+name+".</H1>") 
//-->
</script>

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

فمثلا يمكن إعادة تعريف دوال الجيب وجيب التمام الموجودة اصلا في مكتبة الجافا سكربت بالكلمات sin و cos لتصبح بالعربية جا وجتا كما يلي:

 جا = sin;
 جتا = cos;

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

جا(1)-3/2*جتا(1-جا(1.2));

ويمكن أيضا تعريف دوال جديدة مثل حظ():

function حظ()
{
   //هذه الدالة تستدعي دالة العشوائية
   if(Math.random()*10<5) return "حظك عاثر";
   else return "حظك حافل";
}