Roog Roog نشر 22 مايو 2023 أرسل تقرير نشر 22 مايو 2023 (معدل) مرحبا، لماذا في الحالة الاولى الناتج رقم ٢. اما في الحالة الثانية الناتج رقم ١. شكرا. تم التعديل في 22 مايو 2023 بواسطة Mustafa Suleiman تعديل عنوان السؤال 1 اقتباس
0 عبدالباسط ابراهيم نشر 22 مايو 2023 أرسل تقرير نشر 22 مايو 2023 سأشرح لك الاختلافات بين الوظيفتين بالتفصيل: الوظيفة الأولى: تأخذ هذه الوظيفة واحدًا من المعاملات (`num`) وتزيد قيمته بواحد باستخدام المشغل `++`. ثم تسجل القيمة المضافة إلى `num` في وحدة التحكم باستخدام `console.log()`. عند استدعاء الوظيفة `increase(1)`، ستزيد الوظيفة قيمة `num` إلى `2` وتقوم بطباعتها في وحدة التحكم. الوظيفة الثانية تأخذ هذه الوظيفة واحدًا من المعاملات (`number`) وتستخدم المشغل `++` لزيادة قيمة `number` بواحد، لكنها تعيد القيمة الأصلية لـ `number` قبل زيادتها باستخدام المشغل `++`. عند استدعاء الوظيفة `increase1(1)`، ستعيد الوظيفة القيمة `1`، وليس القيمة المضافة `2`، لأن `return` يعيد القيمة الأصلية لـ `number` قبل زيادتها باستخدام `++`. بالإضافة إلى ذلك، يمكن ملاحظة أن الوظيفة الأولى تستخدم `console.log()` لإظهار القيمة في وحدة التحكم، بينما تستخدم الوظيفة الثانية `return` لإرجاع القيمة من الوظيفة. بشكل عام، يمكن القول أن الفرق بين الوظيفتين هوأن الوظيفة الأولى تزيد القيمة الممرة إليها وتعرض القيمة المضافة في وحدة التحكم، في حين تعيد الوظيفة الثانية القيمة الأصلية الممرة إليها وتزيد القيمة بعد ذلك. 1 اقتباس
0 Mustafa Suleiman نشر 22 مايو 2023 أرسل تقرير نشر 22 مايو 2023 الدالة الأولى: function increase(num) { num++; console.log(num); } تستقبل معامل واحد يُسمى num، وداخل الدالة، يتم استخدام المعامل المؤقت ++ لزيادة قيمة num بمقدار واحد. ثم طباعة القيمة المحدثة لـ num، في هذه الحالة، سيتم زيادة قيمة num من 1 إلى 2، وبعد ذلك ستُطبع القيمة 2. الدالة الثانية: function increase(number) { return number++; } الدالة أيضًا تستقبل معامل واحد يُسمى number، داخل الدالة، يستخدم المعامل المؤقت ++ لزيادة قيمة number بمقدار واحد. ومع ذلك، يتم إرجاع القيمة الأصلية لـ number (قبل زيادتها)، حيث ستُرجع الدالة قيمة 1 (القيمة الأصلية لـ number) وليس القيمة المحدثة (2). ولكن ما السبب؟ السبب يكمن في المعامل ++، فهو معامل يُستخدم لزيادة قيمة متغير بمقدار واحد. وهناك فرق بين استخدام ++ قبل اسم المتغير وبعده. فإذا استخدمته قبل اسم المتغير ويعرف باسم pre-increment: ++num ستتم زيادة قيمة المتغير ومن ثم يتم استخدام القيمة المحدثة. أما إذا استخدمته بعد اسم المتغير، ويعرف باسم post-increment: num++، فسيتم استخدام القيمة الأصلية للمتغير ومن ثم يتم زيادة قيمته. مثال لتوضيح الاستخدام: let num = 1; console.log(++num); // ستُطبع القيمة 2 (تم زيادة القيمة قبل الاستخدام) console.log(num++); // ستُطبع القيمة 2 (ت بمعنى أنك لو أردت أن يتم إرجاع قيمة 2 من الدالة الثانية وليس 1 عليك تعديل المعامل ليصبح قبل المتغير بالشكل التالي: function increase(number) { return ++number; } 1 اقتباس
0 بلال زيادة نشر 22 مايو 2023 أرسل تقرير نشر 22 مايو 2023 الفرق بين الدالتين: الدالة increase(num): في هذه الدالة، يتم زيادة قيمة المعامل num بواحد (num++) ثم يتم طباعة القيمة الجديدة على الإخراج (console.log(num)). في حالة استدعاء الدالة increase(1)، يتم تمرير القيمة 1 كقيمة المعامل num. بما أن العملية num++ تزيد القيمة بعد الاستخدام، فإن قيمة num ستكون 2 وهي قيمة المخرج (console.log) في هذه الحالة. الدالة increase1(number): في هذه الدالة، يتم إرجاع قيمة المعامل number ثم يتم زيادة قيمة المعامل بواحد (number++). في حالة استدعاء الدالة increase1(1)، يتم تمرير القيمة 1 كقيمة المعامل number. وبما أن العملية number++ تزيد القيمة بعد الاستخدام، فإن قيمة المعامل المُرجَعَة ستكون 1 وليس 2. ومع ذلك، في المثال المعطى، لم يتم طباعة القيمة المُرجَعَة من الدالة increase1() بواسطة console.log، لذلك لن يتم عرضها في الإخراج. في الحالة الأولى، الدالة increase() تقوم بطباعة القيمة المحدثة من num بعد الزيادة (2)، بينما في الحالة الثانية، الدالة increase1() تقوم بإرجاع القيمة الأصلية من number قبل الزيادة (1). 1 اقتباس
السؤال
Roog Roog
مرحبا،
لماذا في الحالة الاولى الناتج رقم ٢.
اما في الحالة الثانية الناتج رقم ١.
شكرا.
تعديل عنوان السؤال
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.