Quick Table of Contents
[Edit] الدوال
الدوال functions جزء أساسي من أي لغة برمجة و توجد عدد من الدوال الموجودة في بناء اللغة نفسه و دوال يقوم المستخدم بتعريفها و سنستعرض في درسنا وصف مبسط للأثنين.
الدوال الموجودة مسبقا في اللغة:
ربما أسهل طريقة لأن نوضح ما هي الدالة أن نستخدم مثال على دالة و لتكن دالة الـ alert.و التي هي من الدوال الموجودة في بناء الجافا سكريبت نفسه built in ووظيفتها هي أنها تظهر النص الذي تعطيه لها في صندوق كما سترى في المثال التالي :
مثال1
و من الأمثلة الأخرى على الدوال الموجودة في الجافا سكريبت دالة document.write و التي تعرض النص الذي تعطيه لها في صفحة المتصفح نفسها و أيضا داوال مثل toUpperCase()و التي تحول حروف النص إلى حروف كبيرة UpperCase .
ستعرف بعد ذلك معنى النقطة الموجودة في هذه الدوال في الدرس الخاص بالكائنات أي الـobjects و ستعرف أنها تسمى بإسم آخر أيضا و هو الـ method.و المثال التالي يوضح كيفية عمل هذه الدوال:
<html> <script type="text/javascript"> alert("wellcome to awcore") </script> </html> Try it yourself »Click on the "Try it yourself" button to see how it works مثال 2
و كما ترى يوجد بعد أي دالة قوسين قد توضع فيهم بيانات تسمى بالـ parameter و في بعض الأحيان لا توضع .و البرامتر هو دخل
الدالة الذي يتحدد على أساسه قيمة الخرج فمثلا في دالة alert النص الذي أدخلناه بين القوسين كبرامتر هو النص الذي ظهر في الصندوق
و كذلك مع الدالة document.write و لكن كما ترى مع دالة toUpperCase لم نضع شيئا بين القوسين فهي دالة لا تحتاج إلى دخل حيث تنفذ على النص الذي وضع قبل النقطه السابقة لها .و الخلاصة هي أن كل دالة يتبعها قوسين قد يوضع فيهم برامترز تأثر على الناتج و أحيانا
توجد بعض الدوال لا تحتاج لبرامترز.
و يوجد كثير جدا من الدوال الموجودة في لغة الجافا سكريبت تقوم بعديد من الوظائف و سنتعرض لكثير منها على مدار الدروس القادمه.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Functions</title> </head> <body> <script language="javascript" type="text/javascript"> var str = "hello!"; str = str.toUpperCase(); document.write(str); </script> </body> </html> Try it yourself »Click on the "Try it yourself" button to see how it works الدوال المعرفة بواسطة المبرمج: الدالة يتم تكوينها من مجموعة من الأوامر المتتالية و التي تشكل بناء يكون له إسم معين تناديها به ,و كل دالة يجب أن يكون لها وظيفة محددة تقوم بها و كما قمنا بتعريف المتغير من خلال كلمة var فإن للدالة طريقة لتعريفهايتم تعريف الدالة من خلال إستخدام كلمة function ثم بعدها إسم الدالة يتبعه قوسين يتم وضع البرامترز فيهم ثم بعد ذلك قوسي مجموعة يوضع بينهم الأوامر التي تحتويها الدالة.أي وفق هذا النموزج function functionName([parameters]) { [statements] }و المثال التالي يوضح تعريف لدالة تقوم بحساب مربع رقم و منداتها قم بتفحصه وبعدها سأقوم بشرحه تعريف الدالة
و إذا ما نظرنا للمثال بالأعلى سنجد أنه بعد كلمة function و ضعنا إسم الدالة square ثم وضعنا في القوس البرامتر number ثم
بعد ذلك فيما بين القوسين وضعنا الأوامر التي ستنفذ عند مناداة الدالة و هي كالتالي:
<HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"> function square(number) { var square=number * number; document.write("The call passed ", number, // the function's parameter " to the function.<BR>", number, // the function's parameter " square is ", square, ".<BR>") } // *** add function call square(3) </SCRIPT> </HEAD> <BODY> </BODY> </HTML> Try it yourself »Click on the "Try it yourself" button to see how it works var square=number * number يقوم بضرب البرامتر في نفسه و وضع قيمة الناتج في المتغير square و يستبدل البرامتر بالقيمة التي ترسل في موضعه عند مناداة الدالة. أما الأمر التالي :document.write("The call passed ", number, // the function's parameter " to the function.<BR>", number, // the function's parameter " square is ", square, ".<BR>") فهو يقوم بعرض الناتج في الصفحه. و لا تعمل الدالة فور تعريفها لكن تعمل عندما تناديها و إذا نظرت في المثال بعد تعريف الدالة ستجد الأمر square(3) وهو عبارة عن مناداة الدالة من خلال كتابة إسمها و كتابة القيمة التي تريدها أن تكون للبرامتر . وقبل أن ننتهي من تقديم الدوال أود أن أذكر شيئين:
دالة لا تقبل برامترز
و يمكن أيضا أن نصنع دالة تقبل أكثر من برامتر و كمثال على ذلك دالة تحسب حاصل ضرب تلت أرقام كما بالمثال التالي
<HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"> function disp() { var text="This text is from function"; alert(text); } disp(); </SCRIPT> </HEAD> <BODY> </BODY> </HTML> Try it yourself »Click on the "Try it yourself" button to see how it works دالة تقبل ثلاثة برامترز
أما بالنسبة لإرجاع البيانات فكل الدوال التي عرضناها بالأمثلة السابقة لا ترجع بيانات و معنى إرجاع البينات أننا بدلا من أن ننادي على
الدالة هكذا functionName() ننادي عليها هكذا data=functionName()و في المتغير الذي نضع الدالة تساويه يوضع ناتج الدالة .
و إذا ما نادينا أيا من الدوال السابقة بالطريقة الثانية فإنها لن ترجع لشيء لأنها لا ترجع بيانات و لكي تجعل الدالة ترجع بيانات
فأنت تستخدم الكلمة return ثم تضع بعدها المتغير الذي تريد إرجاع قيمته و يمكننا تعديل مثال إيجاد مربع رقمين لجعله بدلا من أن يعرض
الناتج مباشرة ,يقوم بإرجاعه ووضعه في متغير كما بالمثال التالي :
<HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"> function mul(a,b,c) { var result=a* b*c; document.write(a+"*"+b+"*"+c+"="+result); } // *** add function call mul(3,2,4) </SCRIPT> </HEAD> <BODY> </BODY> </HTML> Try it yourself »Click on the "Try it yourself" button to see how it works دالة ترجع بيانات
و من الجدير بالذكر أن الأمر return يوقف الدالة أيضا بالإضافة لإرجاع قيمة المتغير فالأوامر التي تليه لا تنفذ و لذا يجب ان يوضع في نهاية الدالة .
<HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"> function mul(a,b,c) { var result=a* b*c; return result; } // *** add function call data=mul(3,2,4) document.write("the result is "+data) </SCRIPT> </HEAD> <BODY> </BODY> </HTML> Try it yourself »Click on the "Try it yourself" button to see how it works
December 18, 2011
|
This Page is Under Construction! - If You Want To Help Please Send your CV - Advanced Web Core (BETA)
© Advanced Web Core. All rights reserved