جافا سكريبت هي واحدة من لغات البرمجة الأكثر شعبية لإنشاء صفحات ويب تفاعلية وديناميكية. يسمح للمطورين بإنشاء وظائف يمكنها إجراء عمليات مختلفة ، بما في ذلك العمل مع المتغيرات. ومع ذلك ، في بعض الأحيان يصبح من الضروري إزالة متغير من وظيفة من أجل استخدامه في جزء آخر من التعليمات البرمجية. في هذا الدليل ، سننظر في عدة طرق للقيام بذلك.
الطريقة الأولى هي استخدام الكلمة الرئيسية الإرجاع. عندما تقوم دالة بإرجاع قيمة باستخدام عبارة الإرجاع ، يمكن تخزين هذه القيمة في متغير واستخدامها لاحقا. على سبيل المثال:
وظيفة جيتنام () {
عودة'جون';
}
اسم فار = جيتنام();
وحدة التحكم.سجل (الاسم) ؛ / / المخرجات'جون'
في هذا المثال ، تقوم دالة جيتنام بإرجاع السلسلة ' جون ' ، ويتم كتابة قيمة هذا المتغير إلى متغير الاسم. ثم يتم إخراج قيمة الاسم إلى وحدة التحكم باستخدام وحدة التحكم.وظيفة السجل.
الطريقة الثانية هي إعلان متغير خارج الوظيفة وتغيير قيمته داخل الوظيفة:
فار العمر;
وظيفة جيتاج () {
العمر = 25;
}
جيتاج();
وحدة التحكم.سجل (العمر) ؛ / / النواتج 25
في هذا المثال ، يتم الإعلان عن متغير العمر خارج دالة جيتاج ثم يتم تغيير قيمة هذا المتغير داخل الدالة. بعد استدعاء الدالة ، يتم إخراج قيمة متغير العمر إلى وحدة التحكم. لاحظ أنه لا يتم استخدام عامل الإرجاع في هذه الحالة ، لأن الوظيفة لا تقوم بإرجاع قيمة.
الطريقة الثالثة هي استخدام الكائن:
وظيفة جيتبرسون () {
فار شخص = {
الاسم:'جون',
العمر: 25
};
عودة الشخص;
}
فار بيرسونداتا = جيتبرسون();
وحدة التحكم. سجل(personData.name ) ؛ / / المخرجات'جون'
وحدة التحكم.سجل (بيرسونداتا.العمر); // النواتج 25
في هذا المثال ، تقوم دالة جيتبرسون بإرجاع كائن شخص يحتوي على خصائص الاسم والعمر. يمكن بعد ذلك استخدام قيم هذه الخصائص عن طريق الوصول إليها من خلال متغير بيرسونداتا.
- كيفية حفظ قيمة متغير من وظيفة جافا سكريبت: دليل مطور كامل
- 1. إرجاع القيمة من الدالة
- 2. استخدام المتغيرات العالمية
- 3. استخدام الكائنات والخصائص
- خاتمة
- الطريقة رقم 1: إرجاع قيمة من دالة
- الطريقة رقم 2: استخدام متغير عمومي
- الطريقة رقم 3: استخدام كائن أو صفيف
- الطريقة رقم 4: الإغلاق
- الطريقة رقم 5: استخدام الوعد
- سؤال وجواب
- هل من الممكن الوصول إلى متغير أعلن داخل وظيفة من نطاق خارجي?
- هل يمكنني تغيير قيمة متغير أعلن داخل وظيفة من نطاق خارجي?
كيفية حفظ قيمة متغير من وظيفة جافا سكريبت: دليل مطور كامل
عندما نقوم بإنشاء متغير داخل وظيفة جافا سكريبت ، فإنه عادة ما يكون محدودا بنطاق الوظيفة ولا يتوفر إلا بداخله. هذا يعني أن المتغير يتوقف عن الوجود بعد تنفيذ الوظيفة ، ولا يمكننا الوصول إليه من الخارج.
ومع ذلك ، قد نحتاج أحيانا إلى حفظ قيمة متغير من دالة واستخدامها في مكان آخر في البرنامج النصي الخاص بنا. هناك عدة طرق يمكننا استخدامها للقيام بذلك.
1. إرجاع قيمة من دالة
. يسمح لك بتمرير القيمة مرة أخرى إلى وظيفة الاتصال أو حفظها في متغير آخر.
وظيفة جيتفاريابل () {
متغير فار = 'قيمة متغيرة';
متغير العائد;
}
فار سافيدفارايبل = جيتفارايبل ();
وحدة التحكم.سجل (حفظ متغير) ؛ / / الإخراج: قيمة متغيرة
. ثم نقوم بإخراج قيمة المتغير إلى وحدة التحكم ، والحصول على النتيجة المتوقعة.
2. استخدام المتغيرات العالمية
هناك طريقة أخرى لحفظ قيمة متغير من دالة وهي استخدام المتغيرات العامة. يمكن الوصول إلى المتغيرات العالمية من أي مكان في البرنامج النصي ولا تقتصر على نطاق الوظيفة.
فار جلوبال متغير;
وظيفة سيتفاريابل () {
متغير عالمي = 'قيمة متغيرة';
}
سيتفاريابل();
وحدة التحكم.سجل (متغير عالمي) ؛ / / الإخراج: قيمة متغيرة
وظيفة ، ونحن تعيين قيمة لذلك. ثم نقوم بإخراج قيمة المتغير إلى وحدة التحكم ، ومرة أخرى نحصل على النتيجة المتوقعة.
ومع ذلك ، يجب أن تكون حذرا عند استخدام المتغيرات العامة ، حيث يمكن تغييرها بسهولة من أي مكان في البرنامج النصي ، مما قد يؤدي إلى أخطاء وصعوبات أثناء تصحيح الأخطاء.
3. استخدام الكائنات والخصائص
الطريقة الثالثة لحفظ قيمة متغير من دالة هي استخدام الكائنات والخصائص. يمكننا إنشاء كائن ، إضافة خاصية مع متغير لدينا لذلك ، ومن ثم الوصول إلى هذه الخاصية من أجزاء أخرى من البرنامج النصي لدينا.
فار أوبج = {};
وظيفة سيتفاريابل () {
كائن.متغير = 'قيمة متغيرة';
}
سيتفاريابل();
وحدة التحكم.سجل (كائن.متغير) ؛ / / الإخراج: قيمة متغيرة
وتعيين قيمة لذلك. ثم نقوم بإخراج قيمة الخاصية المتغيرة إلى وحدة التحكم ، والحصول على النتيجة المتوقعة.
قد يكون استخدام الكائنات والخصائص بدلا من المتغيرات العامة هو الأفضل ، لأنها تسمح لنا بتجميع المتغيرات ذات الصلة داخل كائن واحد وتجنب تعارضات التسمية.
خاتمة
لإرجاع القيم ، المتغيرات العالمية للوصول من أجزاء أخرى من البرنامج النصي ، أو الكائنات والخصائص لتجميع المتغيرات.
من المهم اختيار الطريقة المناسبة ، اعتمادا على متطلبات وقيود مشروعنا ، من أجل حفظ قيمة المتغير واستخدامه في المكان المناسب.
الطريقة رقم 1: إرجاع قيمة من دالة
طريقة واحدة للحصول على متغير من وظيفة في جافا سكريبت هو إرجاع قيمة باستخدام الكلمة الرئيسية العودة. بمجرد أن تصل الدالة إلى بيان الإرجاع ، فإنها تتوقف وتعيد القيمة المحددة.
مثال:
وظيفة مضاعفة (أ ، ب) {
العودة أ * ب;
}
نتيجة فار = ضرب (5 ، 3);
وحدة التحكم.سجل (نتيجة) ؛ / / النواتج 15
في المثال أعلاه ، تأخذ دالة الضرب وسيطتين أ و ب وإرجاع المنتج الخاص بهم. ثم نسمي الدالة ، ونمرر الوسيطتين 5 و 3 إليها ، ونحفظ النتيجة في متغير النتيجة. بعد ذلك ، نقوم بإخراج قيمة متغير النتيجة ، وهو 15.
يمكن أن تكون قيمة الإرجاع من أي نوع بيانات: رقم ، سلسلة ، صفيف ، كائن ، إلخ.
باستخدام هذه الطريقة ، يمكنك كتابة الوظائف التي تؤدي إجراءات محددة وإرجاع النتيجة للاستخدام في المستقبل.
الطريقة رقم 2: استخدام متغير عمومي
هناك طريقة أخرى لإخراج متغير من دالة وهي استخدام متغير عمومي. يتم الإعلان عن متغير عمومي خارج دالة ويمكن الوصول إليه من أي جزء من البرنامج.
مثال على استخدام متغير عمومي لإخراج قيمة:
دع العالميةمتغير;
وظيفة ميفونكتيون () {
جلوبال متغير = ' مرحبا ، العالم!';
}
وظيفتي();
وحدة التحكم.سجل (متغير عالمي);
في هذا المثال ، أعلنا المتغير العالمي المتغير خارج دالة ميفونكتيون. ثم قمنا بتعيين القيمة " مرحبا ، العالم!"إلى المتغير المتغير العالمي داخل وظيفة ميفونكتيون. وأخيرا ، نحن إخراج العالميةقيمة متغيرة باستخدام وحدة التحكم.سجل وحصلت على النتيجة المتوقعة.
ومع ذلك ، يجب أن نتذكر أن استخدام المتغيرات العالمية يمكن أن يؤدي إلى آثار جانبية غير مرغوب فيها. يمكن أن يؤدي تعديل المتغيرات العامة داخل الوظائف إلى جعل الكود أقل قابلية للتنبؤ ويصعب تصحيحه. لذلك ، إذا أمكن ، يوصى باستخدام طرق أخرى لنقل القيم بين الوظائف.
الطريقة رقم 3: استخدام كائن أو صفيف
هناك طريقة أخرى لنقل قيمة متغير من دالة إلى نطاق جافا سكريبت العالمي وهي استخدام كائن أو مصفوفة.
للقيام بذلك ، نقوم بإنشاء كائن أو صفيف في النطاق العالمي وتمريره إلى الوظيفة كوسيطة. داخل الوظيفة ، يمكنك تغيير قيم الخصائص أو عناصر المصفوفة ، وستكون هذه التغييرات مرئية خارج الوظيفة.
يمكن أن يكون استخدام هذه الطريقة مفيدا عندما تحتاج إلى تمرير قيم متعددة أو ترتيب القيم التي يتم تمريرها.
مثال على استخدام كائن:
// إنشاء كائن في النطاق العالمي
نتيجة فار = {};
وظيفة محدث نتيجة () {
// تغيير القيمة
من النتيجة.خاصية كائن الرسالة = ' مرحبا ، العالم!';
}
// الاتصال
وظيفة أوبداتيريسولت ();
// إخراج القيمة
من وحدة التحكم.سجل (نتيجة.رسالة) خاصية الكائن;
مثال على استخدام صفيف:
// إنشاء مصفوفة في النطاق العالمي
نتيجة فار = [];
وظيفة محدث نتيجة () {
// إضافة عنصر إلى
النتيجة.دفع مجموعة ('مرحبا العالم!');
}
// الاتصال
وظيفة أوبداتيريسولت ();
// إخراج العنصر
من وحدة التحكم.صفيف السجل (النتيجة [0]);
يمكن أيضا استخدام الكائنات والمصفوفات في المواقف الأكثر تعقيدا حيث يلزم نقل وتعديل قيم متعددة أو بيانات منظمة.
ومع ذلك ، يجب أن تكون حذرا عند استخدام هذه الطريقة حتى لا تواجه مشاكل التزامن والآثار الجانبية غير المرغوب فيها.
الطريقة رقم 4: الإغلاق
الإغلاق هو دالة تتذكر المتغيرات من السياق المحيط بها. في جافا سكريبت ، يتم إنشاء إغلاق بإعلان وظيفة داخل وظيفة أخرى.
أحد الاستخدامات الرئيسية للإغلاق هو القدرة على الوصول إلى المتغيرات الموجودة داخل الوظيفة وإعادتها إلى سياق خارجي.
في ما يلي مثال بسيط يوضح كيفية استخدام الإغلاق لإرجاع قيمة المتغير:
وظيفة كريتكونتر () {
دعونا العد = 0;
وظيفة العودة () {
count++;
عد العودة;
}
}
كونست عداد = كريتيكونتر();
وحدة التحكم.سجل (عداد ()) ؛ / / 1
وحدة التحكم.سجل (عداد ()) ؛ / / 2
وحدة التحكم.سجل (عداد ()) ؛ / / 3
.
كما ترى ، يتيح لك الإغلاق حفظ حالة المتغيرات واستخدامها في سياقات مختلفة. هذه آلية قوية جدا في جافا سكريبت ، والتي تستخدم على نطاق واسع في البرمجة الوظيفية وعند العمل مع التعليمات البرمجية غير المتزامنة.
الطريقة رقم 5: استخدام الوعد
في جافا سكريبت ، الوعد هو كائن يستخدم لإجراء عمليات غير متزامنة ومعالجة نتائجها. هذه الطريقة هي إحدى طرق تمرير قيمة من دالة.
مثال على استخدام الوعد لإرجاع قيمة من دالة:
وظيفة ميفونكتيون () {
عودة وعد جديد ((حل ، رفض) = > {
// إجراء عملية غير متزامنة
دع النتيجة = 42;
حل (نتيجة);
});
}
وظيفتي()
.ثم ((القيمة) = > {
// معالجة النتائج
وحدة التحكم.سجل (قيمة);
})
.قبض ((خطأ) = > {
// معالجة الأخطاء
وحدة التحكم.خطأ (خطأ);
});
مع وجود خطأ.
يسمح لك للتعامل مع الأخطاء.
وبالتالي ، فإن استخدام الوعد يسمح لنا بإرجاع قيمة من دالة عن طريق إجراء عملية غير متزامنة ومعالجة نتيجة اكتمالها.
سؤال وجواب
هل من الممكن الوصول إلى متغير أعلن داخل وظيفة من نطاق خارجي?
لا ، لا يمكنك الوصول مباشرة إلى متغير معلن داخل دالة من نطاق خارجي. هذا يرجع إلى نطاق المتغيرات في جافا سكريبت. ومع ذلك ، كما هو مذكور في الإجابة السابقة ، يمكنك إرجاع قيمة متغير من دالة باستخدام الكلمة الرئيسية الإرجاع وتخزينها في متغير آخر أو استخدامها مباشرة.
هل يمكنني تغيير قيمة متغير أعلن داخل وظيفة من نطاق خارجي?
لا ، لا يمكنك تغيير قيمة المتغير المعلن داخل دالة من النطاق الخارجي. إذا كنت بحاجة إلى تغيير قيمة متغير ، فيمكنك تمريره كوسيطة إلى دالة وتغيير قيمته داخل الدالة. وذلك لأن المتغيرات في جافا سكريبت لها نطاق كتلة والتغييرات التي يتم إجراؤها داخل الوظيفة لن تؤثر على المتغيرات التي تحمل الاسم نفسه في النطاق الخارجي.