مقدمة في Spread syntax في JavaScript

ما هو ولماذا نحتاجه؟

تم تقديم صيغة الانتشار في مواصفات ES6 لجافا سكريبت. وقد أثبت منذ ذلك الحين أنه جزء قيم من التعليمات البرمجية مما يجعل الشفرة نظيفة وسهلة الفهم.

تعرف MDN ... على النحو التالي:

يسمح بناء جملة الانتشار بتوسيع قابل للتكرار مثل تعبير مصفوفة أو سلسلة في الأماكن التي يُتوقع فيها صفر أو أكثر من الوسيطات (لاستدعاءات الوظائف) أو العناصر (للمصفوفات الحرفية) ، أو توسيع تعبير كائن في الأماكن التي يكون فيها صفر أو أكثر من المتوقع أن تكون أزواج المفاتيح والقيمة (للكائنات الحرفية).

دعونا نتفق جميعًا على أن التعريف أعلاه هو حفنة ولم يكتشف أحد منا كلمة يحاول قولها. لذلك لنبدأ بالأشياء الأساسية حول صيغة الانتشار.

  • عامل الانتشار هو 3 نقاط فقط ...
  • يمكن استخدامه على العناصر التكرارية مثل مصفوفة أو سلسلة.
  • يوسع تكرارا لعناصره الفردية
  • يمكن أن يوفر استدعاء دالة مع مصفوفة (أو أي متكرر آخر) حيث كان من المتوقع وجود 0 أو أكثر من الوسيطات.

مثال

يحتوي المقتطف أدناه على دالة تسمى sum والتي تتوقع 3 وسيطات x و y و z. لدينا مصفوفة مكونة من 3 عناصر ، ونريد تمرير العناصر في المصفوفة كوسيطات للدالة.

قبل تقديم عامل الانتشار ، تم ذلك عبر وظيفة التطبيق.

بعد إدخال عامل الانتشار ، يمكن القيام بذلك بكل بساطة:

كما يتضح من المقتطف أعلاه مع عامل الانتشار ، لا يتعين علينا استخدام وظيفة التطبيق. هذا يحفظنا من كتابة المزيد من التعليمات البرمجية.

يقدم المثال أعلاه فكرة تقريبية ومختصرة عن عامل الانتشار. أولاً ، دعنا ندخل في مزيد من التفاصيل المتعلقة بنفس الشيء ، ثم سنرى المزيد من الأمثلة.

بناء الجملة

يمكن استخدام عامل الانتشار بعدة طرق وسيناريوهات مثل

  • مكالمات الوظائف الداخلية

عند استخدامها في السيناريو أعلاه ، تسمى بقية المعلمة. سنرى أمثلة متعلقة بهذا في قسم الأمثلة.

  • إنشاء / تمديد مصفوفة / قابلة للتكرار:

أمثلة

  • كالباقي

… كوسيطة لوظيفة متغيرة. الوظيفة المتغيرة هي وظيفة يمكن أن تحتوي على عدد متغير من المعلمات.

هنا عندما نعيد args ، نرى أننا استعدنا المصفوفة التي مررناها كقيم منفصلة في الاستدعاء. هذا يدل على أن العامل الباقي يعمل في الواقع عكس صيغة الانتشار. واحد يتوسع والآخر يكثف القيمة.

هناك شيء آخر يجب الإشارة إليه وهو أنه لا يوجد عدد محدد من المعلمات المذكورة في تعريف الوظيفة. هذا يعني استخدام ... يمكن أن تحتوي الوظيفة على عدد n من الوسائط. لا نحتاج إلى تحديد المعلمات مسبقًا.

هذه طريقة مرنة جدًا بشكل خاص لتلقي وسيطات لدالة لم يتم تحديد أعداد معينة من الوسيطات لها مثل دالة Math.max و Math.min. إنها وظائف متغيرة حيث يمكن أن تكون أعداد المدخلات غير محدودة بالنسبة لهم.

عد إلى المثال ، للحصول على مجموع كل الحجج

علينا أن نكرر المصفوفة ونضيف كل العناصر الفردية لإنتاج النتيجة.

  • دفع العناصر في مصفوفة

تُستخدم الدالة push () لدفع العناصر إلى المصفوفة. الحد من الدفع هو أنه يتعين علينا دفع العناصر واحدة تلو الأخرى (دفع (1،2،3)). إذا كان هناك مصفوفة سيتم إدراج عناصرها في المصفوفة باستخدام الدفع ، فسنحصل على مصفوفة متعددة الأبعاد ، وهو ما لم نطلبه.

تنطبق مرة أخرى على الإنقاذ

كما يمكننا أن نرى أن استخدام التطبيق لا يبدو أنيقًا للغاية ونحن بحاجة إلى بناء جملة بسيط وصغير للقيام بذلك. دعونا نستخدم السبريد ...

أنيق!

  • نسخ مصفوفة

بسيط!

يمكن الحصول على نفس النتيجة باستخدام كائن

  • تسلسل 2 صفيفتين

يتم إجراء التسلسل باستخدام وظيفة concat

يمكن تحقيق نفس الشيء باستخدام عامل التشغيل…

  • تحويل سلسلة إلى مصفوفة

يمكن القيام بذلك باستخدام كل من دالة الانقسام وعامل التشغيل…

  • استخدم في وظائف max و min

يميل المقتطف أدناه إلى العثور على الحد الأقصى للعنصر في المصفوفة ، لذلك نقوم بتمرير المصفوفة بأكملها في الدالة ولكن نحصل على النتيجة كـ NaN

يمكننا استخدام تطبيق ، لكن كما رأينا من الأمثلة السابقة ، أكره استخدامه

نفس الشيء لمدة دقيقة

استنتاج

لقد رأينا العديد من المواقف التي يكون فيها عامل الانتشار مفيدًا ويقلل من الكود الخاص بنا ويجعله أيضًا سهل الفهم.

إذا كنت ترغب في ذلك Clap؟ ومتابعة؟ للمزيد من.