تعلم جافا سكريبت في 10 أيام /الدرس الثالث: الدوال

 


نشرح في درس اليوم مفهوم الدوال  (Functions) في جافا سكريبت للمبتدئين.

ما هي الدوال؟

الدوال هي مجموعة من التعليمات التي تنفذ معًا لأداء مهمة معينة. تعد الدوال أحد أساسيات البرمجة في جافا سكريبت وتساعد في تنظيم وإعادة استخدام الشيفرة.


 كيف تعرف الدالة في جافا سكريبت؟

يمكن تعريف الدالة في جافا سكريبت باستخدام الكلمة الرئيسية function متبوعة بالاسم الذي تختاره للدالة. ثم تأتي قائمة المعاملات المدخلة داخل قوسين مربعين. تكون جسم الدالة محاطًا بالأقواس المنحنية الزوجية `{}` ويتضمن التعليمات التي يجب تنفيذها.

function functionName(parameter1, parameter2) {

    // Function body

    // Instructions to be executed

}


 كيف تستدعي الدالة؟

بعد تعريف الدالة، يمكنك استدعائها باستخدام اسمها متبوعًا بقوسين في حال كانت هناك معاملات أو وسطاء محددة للدالة، يجب تمريرها عند استدعائها بالشكل التالي:

functionName(argument1, argument2);


 مثال1 على دالة في جافا سكريبت

دعونا نقدم مثالًا بسيطًا على كيفية إنشاء واستخدام الدوال سأعرف دالة لجمع عددين كما يلي:

// simple function that adds two numbers

function add(number1, number2) {

    let result = number1 + number2;

    return result;

}


// Call the function and pass numbers as arguments

let sum = add(5, 3);


// Print the result

console.log("Sum: " + sum);



هذا المثال يعرض دالة  تقوم بجمع رقمين وإرجاع الناتج. ثم تستدعى الدالة وتمرير الأرقام 5 و 3 كمعاملات، ويتم طباعة ناتج الجمع في النهاية.


مثال2 على دالة في جافا سكريبت لتعديل النص في صفحة ويب

بفرض لديك  صفحة HTML تحتوي على مجموعة من العناصر مثلًا  العنصر <h1> ونريد تعريف دالة لتغيير نصه وإضافة زر لتغيير النص أي عند النقر فوقه  نستدعي الدالة المطلوبة. 

لتحقيق هذا الهدف، سنعرف دالة changeText تعمل هذه الدالة على تحديد العنصر`<h1> باستخدام `getElementById ثم، تقوم بتغيير نص العنصر باستخدام innerHTML إلى النص الجديد الذي نريد عرضه 

هذا الكود المطلوب:

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>JavaScript Example</title>

</head>

<body>

    <h1 id="demo">مرحبًا بك في صفحة الويب</h1>

    <button onclick="changeText()">تغيير النص</button>


    <script>

        // تعريف الدالة changeText() التي تقوم بتغيير نص العنصر الذي يحمل id "demo"

        function changeText() {

            var element = document.getElementById("demo");

            element.innerHTML = "تم تغيير النص!";

        }

    </script>

</body>

</html>






يعطي الكود السابق هذا الخرج

 

بمجرد النقر على الزر تغيير النص سوف تجد أن نص العنصر <h1> يتغير فوراً إلى تم تغيير النص! 


مثال3 على دالة في جافا سكريبت، ما خرج الكود التالي؟



// تعريف الدالة getName(class_selector) التي تقوم باختيار عنصر HTML <input />
function getName(class_selector) {

// تحديد عنصر HTML <input />
var nameElement = document.querySelector( class_selector );

// الحصول على قيمة العنصر HTML <input />
// إذا كنت بحاجة إلى الحصول على قيمة عنصر عادي، استخدم .innerHTML
var name = nameElement.value;

// استبدال "AMIN" بـ "TAHER"
// هذا مثال فقط على تعديل النص.
var newName = name.replace('AMIN', 'TAHER');

// إرجاع الاسم الجديد.
return newName;

// الحصول على الاسم الأول من حقل <input />
// لا تأخذ أي معاملات
function getFirstName() {
// تشغيل الدالة getName() باستخدام محدد .name
// سيعيد هذا "WAEL TAHER" لأنه قام بتبديل "AMIN" بـ "TAHER"
var name = getName('.name');

// تقسيم الاسم الكامل بواسطة المسافات.
// .split() يمنحنا مصفوفة (قائمة)
var firstname = name.split(" ");

// إرجاع العنصر الأول في القائمة، والذي يمثل الاسم الأول.
return firstname[0];
}

// تعريف متغير جديد يشغل الدالة getFirstName()
var firstname = getFirstName();

// تسجيل النتيجة في متصفح الويب.
console.log(firstname);


هذه الشيفرة تعرف دالتين:
1. `getName(class_selector) التي تبحث عن عنصر HTML من خلال المحدد وتسترجع قيمته بعد استبدال أي كلمة "AMIN" بـ "TAHER".

2. الدالة getFirstName لا تأخذ معاملات أو وسطاء وإنما تقوم بتشغيل الدالة السابقة getName باستخدام المحدد nam، ثم تقسم الاسم الكامل إلى أجزاء باستخدام المسافات وترجع الجزء الأول من الاسم.

خرج الكود سيكون  WAEL  وهو الاسم الأول الذي يتم طباعته باستخدام console.log.



Next Post Previous Post
No Comment
Add Comment
comment url