اعتمدت ECMA International رسميًا مواصفة ECMAScript 2026، الإصدار السابع عشر من معيار JavaScript. الإصدار الجديد يُضيف مجموعة متنوعة من الدوال والتحسينات تطال المصفوفات، التشفير، الـ Iterators، الـ JSON، والـ Math — وهي إضافات عملية تحل مشاكل حقيقية يواجهها المطورون يوميًا.

أبرز الإضافات في ES2026

Error.isError()

يتحقق مما إذا كانت القيمة المُعترضة في try/catch هي فعلًا كائن خطأ، بغض النظر عن مصدره — سواء كان من وحدة نمطية أخرى، Web Worker، أو iframe. يحل مشكلة عدم الاتساق عند التعامل مع تطبيقات متعددة الوحدات.

Math.sumPrecise()

بسبب طبيعة الأرقام العشرية في JavaScript واعتمادها على الفاصلة العائمة، تُفقد الدقة عند جمع أرقام كثيرة تتابعيًا. Math.sumPrecise() يجمع مصفوفات الأرقام بأعلى دقة ممكنة — حل مثالي للتطبيقات المالية التي تعالج آلاف السجلات.

Array.fromAsync()

كان Array.from() لا يعمل مع المصادر غير المتزامنة مثل الـ Streams أو الـ Paginated APIs، مما يجبر المطورين على كتابة حلقات انتظار يدوية. Array.fromAsync() يُعالج هذا مباشرةً بطريقة نظيفة وبديهية.

Iterator.concat()

يتيح ربط مُكرِّرَين (Iterators) أو أكثر في تسلسل واحد يُستهلك كما لو كان مُكرِّرًا واحدًا — دون الحاجة لـ Generators كما كان الحال سابقًا.

JSON.parse وJSON.stringify — تحسينات

تحديث سلوك JSON.parse ليمنح دوال الـ reviver وصولًا لنص المصدر الأصلي. كما يدعم JSON.stringify الآن العناصر النائبة لقيم JSON الخام.

Map.prototype وWeakMap.prototype — قيم افتراضية

دوال جديدة تُعيد القيمة المرتبطة بمفتاح إن وُجد، أو تُدرج المفتاح بقيمة افتراضية إن لم يكن موجودًا — حل أنيق لمشكلة التحديث الشرطي في الـ Maps.

Uint8Array — تحويل Base64 وHex

دوال جديدة لتحويل البيانات الثنائية إلى سلاسل Hexadecimal وBase64 والعكس — مباشرةً دون مكتبات خارجية.

ECMAScript 2026 ليس ثورة في بنية اللغة، بل هو ترسيخ للنضج — إضافات مدروسة تُغلق ثغرات حقيقية يعمل حولها المطورون منذ سنوات، والمواصفة الكاملة متاحة الآن على موقع ECMA الرسمي.

المصدر:

I Programmer