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