جافا سكريبت في 2025: نظرة عامة على الإمكانيات الجديدة للمبتدئين
تواصل جافا سكريبت تطورها السريع، وكان عام 2025 علامة فارقة لكل من يدرس هذه اللغة أو يعمل بها. تجعل ابتكارات ECMAScript 2025 (ES2025) وتحديثات منصة Node.js الكود أنظف وأسرع وأكثر أمانًا. في هذه المقالة، سنستعرض التغييرات الرئيسية التي ستكون مفيدة لكل من المبتدئين والمطورين ذوي الخبرة. ستتعرف على الإمكانيات الجديدة التي ظهرت وكيفية تطبيقها عمليًا.
1. Temporal API: عصر جديد للعمل مع التواريخ والوقت
كان أحد أكثر الابتكارات المنتظرة هو Temporal API. سابقًا، كان يُستخدم الكائن القديم Date للعمل مع التواريخ، والذي كان يعاني من العديد من المشاكل: القابلية للتغيير، والارتباك مع المناطق الزمنية، وعدم دعم التقاويم. يحل Temporal كل هذه المشاكل.
الآن أصبحت التواريخ والوقت غير قابلة للتغيير (immutable)، وأصبح العمل مع المناطق الزمنية بديهيًا. لنلق نظرة على مثال:
// Temporal API في العملconst now = Temporal.Now.plainDateTimeISO();console.log(now.toString()); // 2025-03-15T14:30:00
// إنشاء تاريخ مع تحديد المنطقة الزمنيةconst meeting = Temporal.ZonedDateTime.from({ timeZone: 'Europe/Moscow', year: 2025, month: 12, day: 25, hour: 10, minute: 0});console.log(meeting.toLocaleString('ar-SA')); // 25/12/2025, 10:00الآن يمكنك بسهولة مقارنة التواريخ، وإضافة أيام أو أشهر دون خطر التغييرات:
const start = Temporal.PlainDate.from('2025-01-01');const end = start.add({ months: 3 });console.log(end.toString()); // 2025-04-01بالنسبة للمبتدئين، هذا يعني أنه لم يعد هناك حاجة لاستخدام مكتبات مثل Moment.js أو date-fns — كل شيء متاح مباشرة.
2. الديكورات: دعم رسمي في المعيار
الديكورات هي أداة قوية لتعديل سلوك الفئات وطرقها. في عام 2025، حصلت أخيرًا على وضع رسمي في ECMAScript. سابقًا، كان يمكن استخدامها فقط من خلال TypeScript أو Babel، والآن — في جافا سكريبت الخالصة.
إليك كيف يبدو ديكور بسيط لتسجيل استدعاء الطريقة:
// ديكور للتسجيلfunction log(target, context) { const methodName = context.name; const originalMethod = target;
return function (...args) { console.log(`استدعاء ${methodName} مع الوسائط: ${JSON.stringify(args)}`); const result = originalMethod.call(this, ...args); console.log(`النتيجة: ${result}`); return result; };}
class Calculator { @log add(a, b) { return a + b; }}
const calc = new Calculator();calc.add(2, 3); // الإخراج: استدعاء add مع الوسائط: [2,3]// الإخراج: النتيجة: 5الديكورات مفيدة بشكل خاص للمصادقة، والتخزين المؤقت، والتحقق من صحة البيانات، وغيرها من المهام الشاملة. يجب على المبتدئين تذكر الشيء الرئيسي: الديكور هو مجرد دالة تغلف دالة أخرى، مضيفةً إليها سلوكًا جديدًا.
3. طرق محسنة للمصفوفات والمجموعات
في عام 2025، أصبح العمل مع المصفوفات أكثر سهولة. ظهرت طرق جديدة تبسط الفرز والبحث وتحويل البيانات. لنستعرض أكثرها فائدة.
الطريقة Array.prototype.groupBy()
تسمح بتجميع عناصر المصفوفة حسب مفتاح. سابقًا، كان يجب كتابة حلقات أو استخدام reduce() للقيام بذلك.
const users = [ { name: 'آنا', role: 'admin' }, { name: 'إيفان', role: 'user' }, { name: 'ماريا', role: 'admin' }, { name: 'بيتر', role: 'user' }];
const grouped = users.groupBy(user => user.role);console.log(grouped);// {// admin: [{ name: 'آنا', role: 'admin' }, { name: 'ماريا', role: 'admin' }],// user: [{ name: 'إيفان', role: 'user' }, { name: 'بيتر', role: 'user' }]// }الطريقة Array.prototype.toSorted()
على عكس