return
في JavaScript
التعبير البرمجي 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 |
---|---|---|---|---|---|
الدعم الأساسي | نعم | نعم | نعم | نعم | نعم |
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).
- معيار ECMAScript 5.1.
- معيار ECMAScript 1st Edition .