الفرق بين المراجعتين لصفحة: «JavaScript/return»

من موسوعة حسوب
لا ملخص تعديل
 
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}'
 
سطر 95: سطر 95:
* معيار [http://www.ecma-international.org/ecma-262/5.1/#sec-12.9 ECMAScript 5.1].
* معيار [http://www.ecma-international.org/ecma-262/5.1/#sec-12.9 ECMAScript 5.1].
* معيار [http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%201st%20edition,%20June%201997.pdf ECMAScript 1st Edition] .  
* معيار [http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%201st%20edition,%20June%201997.pdf ECMAScript 1st Edition] .  
[[تصنيف:JavaScript]]
[[تصنيف:JavaScript|{{SUBPAGENAME}}]]
[[تصنيف:JavaScript Statement]]
[[تصنيف:JavaScript Statement|{{SUBPAGENAME}}]]

المراجعة الحالية بتاريخ 15:42، 28 يناير 2018

التعبير البرمجي return يؤدي إلى إنهاء تنفيذ الدالة ويُحدِّد قيمةً لتُعيدها الدالة إلى التعبير الذي استدعاها.

البنية العامة

return [[expression]];

expression

التعبير البرمجي الذي ستُعاد قيمته، وإذا لم يُحدَّد فستُعاد القيمة undefined.

الوصف

عندما يُستخدَم التعبير البرمجي return في جسم الدالة، فسيتوقف تنفيذ الدالة؛ وستُعاد القيمة المعطية (إن وجِدَت) إلى التعبير الذي استدعى الدالة. فعلى سبيل المثال، ستعيد الدالة الآتية مربّع الوسيط x، على أن يكون الوسيط x رقميًا:

function square(x) {
   return x * x;
}
var demo = square(3);
// قيمة المتغير هي 9

تذكَّر أنَّ القيمة اختيارية، وإذا لم تُحدَّد فستُعاد القيمة undefined؛ لاحظ أنَّ جميع التعابير البرمجية الآتية ستوقف تنفيذ الدالة:

return;
return true;
return false;
return x;
return x + y / 3;

الإضافة التلقائية للفاصلة المنقوطة

لاحظ أنَّ التعبير return يتأثر بالإضافة التلقائية للفواصل المنقوطة (ASI)، لذا لا يجوز وضع سطر فارغ بين الكلمة المحجوزة return والتعبير. إذ إنَّ ما يلي:

return
a + b;

سيُفسَّر كما يلي بسبب الإضافة التلقائية للفواصل المنقوطة:

return; 
a + b;

وسيظهر لك التحذير «unreachable code after return statement» في بعض المتصفحات.

أمثلة

مقاطعة تنفيذ الدالة

سيتوقف تنفيذ الدالة مباشرةً عند استدعاء التعبير return:

function counter() {
  for (var count = 1; ; count++) {  // حلقة تكرار لا نهائية
    console.log(count + 'A'); // حتى التكرار 5
      if (count === 5) {          
        return;
      }
      console.log(count + 'B');  // حتى 4
    }
  console.log(count + 'C');  // لن تحدث أبدًا
}

counter();

// الناتج
// 1A
// 1B
// 2A
// 2B
// 3A
// 3B
// 4A
// 4B
// 5A

إعادة دالة من دالة أخرى

تسمى هذه التقنية بالتعابير المغلقة closures:

function magic(x) {
  return function calc(x) { return x * 42; };
}

var answer = magic();
answer(1337); // 56154

دعم المتصفحات

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي نعم نعم نعم نعم نعم

مصادر ومواصفات