اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

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

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

ولكن كيف يقوم بتنفيذ ما أردته دون إعادة شيء؟

سيفعل ذلك داخل الدالة لكن خارجها أنت لن تحصل على أي قيمة لأنك لم تحدد له ما الـ return ؟

وسأشرح لك بالأمثلة من خلال جافاسكريبت:

function myFunction() {
  return "Hello, world!";
}

console.log(myFunction()); // Hello, world!

لدينا دالة تسمى myFunction()، وتلك الدالة تعيد القيمة "Hello, world!".

وعندما نقوم باستدعاء تلك الدالة، يتم إرجاع القيمة "Hello, world!" إلى الكود الذي استدعاها، والذي يتم طباعته في وحدة التحكم.

والآن مثال آخر، لكن لن نكتب return بل لتنفيذ عملية حسابية داخل الدالة فقط:

function myFunction() {
  let number = 1 + 1
  number += 3
}

console.log(myFunction()); // undefined

ما حدث هنا هو أنني قمت بإنشاء متغير داخل الدالة باسم number ثم أعطيته قيمة 1 + 1 أي قيمة 2.

بعد ذلك قمت بتغيير قيمته بإضافة العدد 3 إليه وبالتالي أصبح 5.

لكن عند محاولة طباعة ذلك من خارج الدالة حصلت على undefined أي غير معرف، وذلك لأنني لم أقم بتحديد ما الذي سيتم إرجاعه من الدالة لم اكتب return.

لاحظ بعد كتابتها ما الذي يحدث:

function myFunction() {
  let number = 1 + 1
 return number += 3
}

console.log(myFunction()); // 5

سيتم طباعة 5 لأنني حددت له إرجاع قيمة number.

وذلك ما أخبرتك به عند سرد قصة أخاك وأنه يمكن تنفيذ ما تريده داخل الدالة لكن خارجها لن يعطيك شيء.

  • 0
نشر
بتاريخ 54 دقائق مضت قال Mustafa Suleiman:

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

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

ولكن كيف يقوم بتنفيذ ما أردته دون إعادة شيء؟

سيفعل ذلك داخل الدالة لكن خارجها أنت لن تحصل على أي قيمة لأنك لم تحدد له ما الـ return ؟

وسأشرح لك بالأمثلة من خلال جافاسكريبت:

function myFunction() {
  return "Hello, world!";
}

console.log(myFunction()); // Hello, world!

لدينا دالة تسمى myFunction()، وتلك الدالة تعيد القيمة "Hello, world!".

وعندما نقوم باستدعاء تلك الدالة، يتم إرجاع القيمة "Hello, world!" إلى الكود الذي استدعاها، والذي يتم طباعته في وحدة التحكم.

والآن مثال آخر، لكن لن نكتب return بل لتنفيذ عملية حسابية داخل الدالة فقط:

function myFunction() {
  let number = 1 + 1
  number += 3
}

console.log(myFunction()); // undefined

ما حدث هنا هو أنني قمت بإنشاء متغير داخل الدالة باسم number ثم أعطيته قيمة 1 + 1 أي قيمة 2.

بعد ذلك قمت بتغيير قيمته بإضافة العدد 3 إليه وبالتالي أصبح 5.

لكن عند محاولة طباعة ذلك من خارج الدالة حصلت على undefined أي غير معرف، وذلك لأنني لم أقم بتحديد ما الذي سيتم إرجاعه من الدالة لم اكتب return.

لاحظ بعد كتابتها ما الذي يحدث:

function myFunction() {
  let number = 1 + 1
 return number += 3
}

console.log(myFunction()); // 5

سيتم طباعة 5 لأنني حددت له إرجاع قيمة number.

وذلك ما أخبرتك به عند سرد قصة أخاك وأنه يمكن تنفيذ ما تريده داخل الدالة لكن خارجها لن يعطيك شيء.

console.log(number); // 5


ليه حطيت اسم الداله ليه مو اسم المتغير 
 
بخصوص القصه 
هل تقصد بانني اعطي اخي المال ليقوم بشراء لي تفاحه واخبره ان يجلب التفاحه لي هكذا تقصد؟

  • 0
نشر
بتاريخ الآن قال Zyad Alhrbi:

هل تقصد بانني اعطي اخي المال ليقوم بشراء لي تفاحه واخبره ان يجلب التفاحه لي هكذا تقصد؟

صحيح.

بتاريخ الآن قال Zyad Alhrbi:

ليه حطيت اسم الداله ليه مو اسم المتغير 

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

function myFunction(a, b) {
  let number = a + b
 return number += 3
}

console.log(myFunction(1, 1)); // 5

وذلك بدلا من كتابة القيمة بشكل ثابت داخل الدالة، بل نقوم بتمريرها وكتابة ما نريد عند استدعاء الدالة وفي كل مرة بإمكانك كتابة أرقام مختلفة.

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...