جافا سكريبت

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث
جافا سكريبت
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[عدل]

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

ومنها:

الشرطيات Conditions[عدل]

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

ومنها:

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

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

<!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"> 
//SAMIR KONRAD ABUSALIM
name=window.prompt("أدخل اسمك.","هنا "); 
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 "حظك حافل";
}