12 ميزات ES10 في 12 أمثلة بسيطة

إليك ترجمة لمقال من مدونة كارلوس كاباليرو على موقع Medium.com. سيخبرنا المؤلف عن الميزات التي ظهرت في إصدار 2019 ES10.



ES10 هو أحدث إصدار من ECMAScript لعام 2019. لا يحتوي على العديد من الابتكارات مثل إصدار ES6 الذي تم إصداره في عام 2015 ، ولكنه تضمن العديد من الميزات المفيدة.

في هذه المقالة ، يتم وصف الميزات التي تم تقديمها في ES10 على أنها أمثلة التعليمات البرمجية البسيطة. يمكنك فهمها بسرعة دون تفسير مفصل. بالطبع ، هذا سوف يتطلب معرفة جافا سكريبت الأساسية.

ميزات JavaScript الجديدة في ES2019 هي:

  • Array#{flat,flatMap}
  • Object.fromEntries
  • String#{trimStart,trimEnd}
  • Symbol#description
  • try { } catch {} // الربط الاختيارية try { } catch {} //
  • JSON ⊂ ECMAScript
  • حسن تشكيل JSON.stringify
  • Array#sort ثابت Array#sort
  • تم تحديث الدالة # toString
  • BigInt - نوع بسيط (المرحلة 3)
  • استيراد ديناميكي (المرحلة 3)
  • global This موحد global This الكائن (المرحلة 3).

Array.flat () و Array.flatMap ()


هناك طريقتان Array جديدتان:

  • تُرجع الطريقة Array.flat() صفيفًا جديدًا تم فيه رفع جميع عناصر الطبقات الفرعية المتداخلة بشكل متكرر إلى مستوى العمق المحدد.
  • الأسلوب Array.flatMap() أولاً يطبق دالة على كل عنصر ، ثم يحول النتيجة إلى بنية مسطحة ويضعها في صفيف جديد. هذا مطابق لوظيفة map() ، متبوعًا باستخدام دالة flat() بمعلمة عمق 1 ، لكن flatMap() أكثر غالبًا ما يكون أكثر فاعلية ، لأنه يجمع بين كلا النهجين في طريقة واحدة.



Object.fromEntries ()


يحول قائمة الرموز وأزواج القيمة إلى كائن.



String.prototype.matchAll


عند مطابقة سلسلة مع تعبير عادي ، تقوم طريقة matchAll() بإرجاع مكرر على كل النتائج ، بما في ذلك مجموعات الالتقاط.



String.trimStart () و String.trimEnd ()


هناك طريقتان جديدتان في String لإزالة المسافات من السلسلة:

  • الأسلوب trimStart() يزيل المساحة في بداية السطر.
  • الأسلوب trimEnd() يزيل المسافة في نهاية السطر.



Symbol.Description


إضافة خيار جديد للحصول على وصف Symbol . الآن ، عند إنشاء Symbol ، يمكنك إضافة سطر كتوصيف - ES10 له حق الوصول إلى هذا المؤشر.



try/catch اختياري try/catch ملزمة


سابقًا ، كان التعبير catch من إنشاء try/catch بحاجة إلى متغير. اليوم ، يمكن للمطورين استخدام try/catch دون إنشاء روابط غير ضرورية.



JSON ⊂ ECMAScript


لم تكن أحرف فاصل الأسطر غير المصفاة U+2028 وفاصل الفقرة U+2029 موجودة في الإصدارات السابقة من ECMAScript.

  • U + 2028 - فاصل الفقرة.
  • U + 2029 - فاصل الخط.



شكل جيد JSON.stringify ()


JSON.stringify() إرجاع الأحرف بين U+D800 و U+DFFF كقيم لا يوجد لها ما يعادل حرف UTF-8. ومع ذلك ، يتطلب تنسيق JSON ترميز UTF-8. تم اقتراح حل لتقديم نقاط كود بديلة غير مقيدة كتسلسلات JSON محمية بدلاً من تركها كوحدات رمز UTF-16 واحدة.



Stray Array.prototype.sort ()


في التنفيذ السابق لمحرك V8 ، تم استخدام خوارزمية فرز سريع غير مستقرة للصفائف التي تحتوي على أكثر من 10 عناصر.

خوارزمية الفرز المستقرة هي خوارزمية فرز حيث يظل كائنان بنفس المفاتيح في نفس الترتيب الذي كانا عليه قبل الفرز.



وظيفة محدثة. إلى سلسلة ()


إرجاع الأسلوب toString() تمثيل سلسلة التعليمات البرمجية المصدر للدالة. في ES6 ، عند استدعاء toString() للحصول على دالة ، يمكن أن تُرجع نتيجة مختلفة اعتمادًا على التنفيذ المحدد لمشغل ECMAScript. إذا كان ذلك ممكنًا ، تم إرجاع الكود المصدر ، وإلا فإن كعب الروتين القياسي.



BigInt - أعداد صحيحة من الطول التعسفي


BigInt هو النوع البدائي السابع ، عدد صحيح من الطول التعسفي. يمكن أن تتكون المتغيرات من هذا النوع من 253 حرفًا ، ولا تقتصر على قيمة رقمية 9007199254740992 .



استيراد ديناميكي


import() الحيوي import() بإرجاع وعد لكائن مساحة الاسم في الوحدة النمطية المطلوبة. لذلك ، يمكن الآن تعيين الاستيراد لمتغير باستخدام async/await .



عالمي موحدهذا الكائن


لم يتم globalThis الكائن globalThis حتى ظهور ES10. في كود التطبيق النهائي ، كان لا بد من رفعه إلى المعيار للعديد من المنصات من تلقاء نفسه ، وكتابة شيء مرهق ، على سبيل المثال:



استنتاج


جافا سكريبت هي لغة حية ، وهي مواتية للغاية لبرمجة الويب. لقد شهدنا تطورها الديناميكي منذ ظهور ES6 في عام 2015. في هذه المقالة ، أبرزنا الميزات التي ظهرت في إصدار 2019 ES10. تم أيضًا تقديم بعض الميزات التي ستحقق الاستقرار في ES11 (2020) ، حيث إنها في 3 مراحل من التنفيذ ومن المحتمل أن يتم توحيدها للإصدار التالي.
قد لا تكون العديد من هذه الميزات ضرورية لإنشاء تطبيق الويب الخاص بك. ومع ذلك ، فإنها جميعًا تجعل من الممكن الاستغناء عن الحيل العبقرية أو كتابة الكثير من التعليمات البرمجية حيث كانت مطلوبة من قبل.

Source: https://habr.com/ru/post/ar471142/


All Articles