الدليل الكامل لتحديثات ECMAScript 2025 للمطورين
يوليو 6, 2025📘 شرح تفصيلي لتحديثات ECMAScript 2025
جميع مميزات ECMAScript 2025، مع أمثلة عملية وفهم ليه الميزة دي مهمة لأي مبرمج واجهة أمامية.
١. مجموعات مسماة مكررة في الـ Regex
دلوقتي تقدر تستخدم نفس اسم المجموعة أكتر من مرة في فروع مختلفة من الـ regex، وده بيسهل التعامل مع تنسيقات متعددة.
const pattern = /ECMAScript(?<version>[0-9]{4})|ES(?<version>[0-9]{2})/;
"ECMAScript2025".match(pattern).groups.version; // "2025"
الأهمية: بتخلي الـ regex أسهل في القراءة وقابل لإعادة الاستخدام.
٢. دوال جديدة لـ Set
اتضافت دوال زي union() وintersection() وdifference() علشان تسهّل عمليات المقارنة والدمج بين المجموعات.
const a = new Set([1, 2, 3]);
const b = new Set([3, 4]);
a.union(b); // Set {1, 2, 3, 4}
الأهمية: مفيش داعي تحوّل الـ Set لـ Array علشان تشتغل عليه، كل حاجة بقت جاهزة ومباشرة.
٣. Modifiers في أجزاء من الـ Regex
بقى ممكن تطبق فلاغ زي i (case-insensitive) على جزء معين من الـ regex من غير ما يطبّق على كله.
const pat = /(?i:bearer)abc/;
"Bearerabc".match(pat);
الأهمية: تحكم أدق في التحقق من النصوص، خصوصًا لو بتتعامل مع مدخلات مختلفة.
٤. import attributes
تقدر تستخدم خصائص إضافية وقت استيراد modules في المتصفح، وده بيساعد في تخصيص طريقة التحميل.
<script type="module" importattributes="mode=auto">
import data from './data.js';
</script>
الأهمية: تحكم أفضل في طريقة تحميل الـ JavaScript modules، خصوصًا في المشاريع الكبيرة.
٥. Iterator Helpers
دلوقتي تقدر تستخدم map() وfilter() وtake() مباشرة على الـ iterator.
for await (const item of someArray[Symbol.iterator]().filter(x => x > 3)) {
console.log(item);
}
الأهمية: بتقلل الكود وتخليه أوضح لما تتعامل مع بيانات بتتغير باستمرار.
٦. Promise.try()
طريقة جديدة تخلّيك تبدأ promise وفي نفس الوقت تتعامل مع الأخطاء جوّه try/catch من غير تعقيد.
Promise.try(() => {
if (Math.random() > 0.5) throw new Error('Oops');
return 42;
})
.then(console.log)
.catch(console.error);
الأهمية: كود أنضف وأسهل في التعامل مع العمليات اللي ممكن ترجع خطأ.
٧. Float16Array
نوع جديد من الـ typed arrays بيستخدم 16-bit بس، وده بيوفر في الذاكرة وبيسرّع الأداء.
const arr = new Float16Array(4);
arr[0] = 1.5;
console.log(arr[0]);
الأهمية: مفيد في الجرافيكس أو التعامل مع بيانات كتير وعايز أداء سريع.
٨. RegExp.escape()
بتديك طريقة آمنة تهرب بيها أي نص علشان تستخدمه جوه regex من غير مشاكل.
const unsafe = "hello?*";
const safe = RegExp.escape(unsafe);
const re = new RegExp(safe);
الأهمية: بتمنع الأخطاء والهجمات الناتجة عن إدخال المستخدم اللي فيه رموز regex.
المدونة
يوليو 27, 2025
أدوات قوية تقدر تستخدمها لتطوير تطبيقات Laravel بشكل احترافي: Inertia.js v2، وView Creators، وحزمة Laravel HLS لبث الفيديوهات بأمان. ١. Inertia.j...
يوليو 16, 2025
🌐 إتقان CSS الحديثة: قوة if()، Popover Hints، والتنسيقات الذكية CSS دلوقتي بقت أذكى بكتير. دالة if()، وميزة popover="hint"، وازاي نكتب تنسيقات متج...
فبراير 05, 2026
شرح تحديث Redux Toolkit 2.9.0 إصدار Redux Toolkit 2.9.0 ركّز بشكل أساسي على تحسين أداء RTK Query، وتنظيم طريقة التعامل مع الطلبات غير المتزامنة (...
يوليو 24, 2025
🧠 يعني إيه Dynamic Import؟ الديناميـك إمبورت ببساطة هو إنك تحمّل ملف أو موديول JavaScript "وقت الحاجة بس" مش من أول الصفحة. الميزة دي بتقلل حجم ال...
يوليو 01, 2025
حلل كود Laravel باستخدام Laravel Introspect لو بتعمل Refactor كبير أو بتبني أدوات Dev، Laravel Introspect بيسمحلك تستعلم عن الكود: فيوز، مودلز، رو...
يوليو 01, 2025
🎣 شرح React Hooks وبأمثلة عملية 🧠 useState بيعمل إيه: بيضيف حالة داخلية (state) جوا أي مكون شغال بوظيفة. مثال عملي: import React, { useSta...