أحدث مميزات ECMAScript 2025

يونيو 30, 2025

أحدث مميزات ECMAScript 2025

في 25 يونيو 2025، تم اعتماد ES2025 رسميًا. الإضافات الجاية هتسهل عليك كتابة الكود:

1. 📦 Import Attributes و JSON Modules

دلوقتي تقدر تجيب JSON بشكل مباشر وتحط نوعه بوضوح:

// استيراد ثابت
import config from './config.json' with { type: 'json' };

// استيراد ديناميكي
const cfg = await import('./config.json', { with: { type: 'json' } });
console.log(cfg.default);

2. Iterator Helper Methods

أضيفت ميثودز جديدة للـ iterator عشان تسهّل السلسلة operations:

const arr = ['a','', 'b', '', 'c', '', 'd'];
const result = arr.values()
  .filter(x => x.length > 0)
  .drop(1)
  .take(2)
  .map(x => `=${x}=`)
  .toArray();
// النتيجة: ['=b=', '=c=']

3. مميزات جديدة للـ Set

دلوقتي تقدر تعمل عمليات set مباشرة من الجافاسكريبت:

const a = new Set(['a','b','c']);
const b = new Set(['b','c','d']);
console.log([...a.union(b)]); // ['a','b','c','d']
console.log(a.isSubsetOf(b)); // false

4. RegExp.escape() و Inline Flags

const safe = RegExp.escape('hello?');
// مثال على inline flags
/^x(?i:HELLO)x$/.test('xHELLOx'); // true
/^x(?i:HELLO)x$/.test('xhellox'); // true

5. Duplicate Named Capture Groups

const re = /(?a+)|(?b+)/v;
console.log(re.exec('aaa').groups.chars); // 'aaa'
console.log(re.exec('bb').groups.chars);  // 'bb'

6. Promise.try()

Promise.try(() => {
  const x = syncThatMightThrow();
  return asyncWork(x);
}).then(...).catch(...);

7. دعم float16

دلوقتي في الجافاسكريبت: Float16Array، DataView.getFloat16/setFloat16، وMath.f16round().

المدونة

إزاي تستخدم Web Components ببساطة وذكاء

يوليو 06, 2025

إزاي تستخدم Web Components ببساطة وذكاء كتير من المطورين بيفكروا إن Web Components معمولة عشان تبقى بديل كامل لفريموركات زي React أو Vue. بس الحقيق...

Laravel 12.19: استخدام Attributes لتنظيم الـ Query Builder

يوليو 07, 2025

Laravel 12.19: استخدام Attributes تنظّم Query Builder في Laravel 12.19، دلوقتي تقدر تستخدم Attribute اسمه #[UseEloquentBuilder] علشان تحدد Query Bu...

تحديث Laravel 12.18.0

يونيو 17, 2025

تحديث Laravel 12.18.0 صدر نسخه Laravel 12.18.0 فيها شوية ميزات جامدة كده: توابع لتشفير وفك تشفير النصوص باستخدام Stringable ديركت في chain strings...

البرمجة الكائنية (OOP) – المفاهيم الأساسية

أغسطس 09, 2025

البرمجة الكائنية التوجه (Object Oriented Programming - OOP) هي أسلوب حديث في تطوير البرمجيات يُقسّم التطبيق إلى وحدات تسمى كائنات (Objects) تتفاعل م...

Redux Toolkit 2.9.0 - شرح التحديثات وتحسينات RTK Query بالتفصيل

فبراير 05, 2026

شرح تحديث Redux Toolkit 2.9.0 إصدار Redux Toolkit 2.9.0 ركّز بشكل أساسي على تحسين أداء RTK Query، وتنظيم طريقة التعامل مع الطلبات غير المتزامنة (...

مكونات واجهة المستخدم والتفاعل الأساسية في React Native

يوليو 01, 2025

مكونات واجهة المستخدم والتفاعل الأساسية في React Native React Native بتوفرلك مجموعة قوية من المكونات الجاهزة اللي تقدر تستخدمها لبناء تطبيقات موباي...