🟨 مرجع دوال JavaScript بالعربي
كل دالة قياسية بالعربي: ماذا تفعل، صياغتها، مثال حي تعدّله وترى نتيجته فورًا، وأشهر الأخطاء. حاليًا 48 دالة — والقائمة تكبر.
طرق المصفوفات
map()
تحويل كل عنصر بمصفوفة
map() تُرجع مصفوفة جديدة بنفس الطول، كل عنصر فيها ناتج تطبيق دالة على العنصر المقابل بالأصل.
filter()
اختيار عناصر بشرط
filter() تُرجع مصفوفة جديدة تحتوي فقط العناصر التي حقّقت شرطًا معيّنًا.
reduce()
اختزال المصفوفة لقيمة واحدة
reduce() تمرّ على كل عناصر المصفوفة وتبني قيمة تراكمية واحدة — مجموع، حاصل ضرب، أو حتى كائن جديد.
forEach()
تنفيذ فعل على كل عنصر
forEach() تُنفّذ دالة على كل عنصر بالمصفوفة دون إرجاع أي مصفوفة جديدة — لتنفيذ أفعال جانبية فقط.
find()
إيجاد أول عنصر مطابق
find() تُرجع أول عنصر يحقّق شرطًا معيّنًا، أو undefined إذا لم يوجد أي عنصر مطابق.
includes()
فحص وجود عنصر
includes() تُرجع true أو false — هل توجد قيمة معيّنة داخل المصفوفة (تعمل أيضًا مع النصوص).
some()
هل عنصر واحد على الأقل يحقّق شرطًا؟
some() تُرجع true إذا حقّق عنصر واحد على الأقل الشرط الممرَّر، وfalse إذا لم يحقّقه أي عنصر.
every()
هل كل العناصر تحقّق شرطًا؟
every() تُرجع true فقط إذا حقّق كل عنصر بالمصفوفة الشرط الممرَّر، وfalse إذا فشل عنصر واحد.
sort()
ترتيب مصفوفة
sort() ترتّب عناصر المصفوفة في مكانها (تُعدّل الأصل)، افتراضيًا كنصوص أبجديًا — تحتاج دالة مقارنة للأرقام.
slice()
قص جزء من مصفوفة
slice() تُرجع مصفوفة جديدة تحتوي جزءًا من الأصل بين فهرسين، دون تعديل الأصل إطلاقًا.
splice()
إضافة أو حذف عناصر بمكانها
splice() تُعدّل المصفوفة الأصلية مباشرة — تحذف عناصر و/أو تضيف عناصر جديدة بموضع محدد، وتُرجع العناصر المحذوفة.
join()
دمج مصفوفة كنص واحد
join() تحوّل كل عناصر المصفوفة لنص واحد، بفاصل مخصّص بينها (فاصلة افتراضيًا).
at()
الوصول لعنصر بفهرس سالب
at() تُرجع عنصر المصفوفة عند فهرس معيّن، وتدعم الفهارس السالبة للعدّ من النهاية مباشرة — بعكس الأقواس [].
flat()
تسطيح مصفوفة متداخلة
flat() تُرجع مصفوفة جديدة بعد دمج العناصر الفرعية (المصفوفات المتداخلة) بمستوى واحد افتراضيًا، بعمق تتحكم به.
flatMap()
تحويل ثم تسطيح بخطوة واحدة
flatMap() تدمج map() وflat(1) بعملية واحدة أكفأ — تحوّل كل عنصر (وقد يُرجع عدة عناصر أو لا شيء) ثم تسطّح النتيجة مستوى واحد.
Array.from()
بناء مصفوفة من Iterable أو كائن شبيه بمصفوفة
Array.from() تبني مصفوفة حقيقية جديدة من أي كائن قابل للتكرار (Set، Map، نص) أو شبيه بمصفوفة (له length)، مع دالة تحويل اختيارية.
Array.isArray()
التحقق من أن القيمة مصفوفة فعلًا
Array.isArray() تُرجع true فقط إذا كانت القيمة الممرَّرة مصفوفة حقيقية — الطريقة الموثوقة الوحيدة لهذا الفحص.
toSorted() / toReversed() / toSpliced() / with()
نسخ آمنة لا تعدّل المصفوفة الأصلية
أربع دوال حديثة (ES2023) توأم لـ sort/reverse/splice وتعديل عنصر بفهرس، لكنها تُرجع مصفوفة جديدة دون لمس الأصل إطلاقًا.
طرق النصوص
split()
تقسيم نص لمصفوفة
split() تقسّم نصًا لمصفوفة أجزاء بناءً على فاصل محدد (نص أو تعبير نمطي).
slice()
استخراج جزء من نص
slice() تُرجع جزءًا من النص بين فهرسين، دون تعديل النص الأصلي (النصوص أصلًا غير قابلة للتعديل).
replace() / replaceAll()
استبدال جزء من نص
replace() تستبدل أول تطابق فقط، وreplaceAll() تستبدل كل التطابقات — كلاهما يُرجع نصًا جديدًا.
trim()
إزالة الفراغات الزائدة
trim() تُرجع نصًا جديدًا بلا فراغات في البداية والنهاية — مفيدة جدًا لتنظيف مدخلات المستخدم.
toUpperCase() / toLowerCase()
تحويل حالة الأحرف
toUpperCase() تحوّل كل الأحرف لكبيرة، وtoLowerCase() لصغيرة — مفيدة جدًا للمقارنة غير الحسّاسة لحالة الأحرف.
startsWith() / endsWith()
فحص بداية أو نهاية نص
startsWith() وendsWith() تُرجعان true/false — هل يبدأ أو ينتهي النص بجزء معيّن.
padStart() / padEnd()
حشو نص لطول معيّن
padStart() تضيف أحرفًا بالبداية حتى يصل النص لطول معيّن — شائعة جدًا لتنسيق أرقام (مثل 05 بدل 5).
at()
الوصول لحرف بفهرس سالب
at() على النصوص تُرجع الحرف عند فهرس معيّن، وتدعم الفهارس السالبة للعدّ من نهاية النص مباشرة.
matchAll()
كل تطابقات تعبير نمطي مع مجموعاته
matchAll() تُرجع كل تطابقات تعبير نمطي بالنص، مع الوصول الكامل لكل مجموعة أسر (capturing group) بكل تطابق — بعكس match() التي تفقد المجموعات مع علامة g.
طرق الكائنات
Object.keys()
استخراج مفاتيح كائن
Object.keys() تُرجع مصفوفة بأسماء كل خصائص الكائن الخاصة به (لا الموروثة)، بترتيب الإدراج.
Object.values()
استخراج قيم كائن
Object.values() تُرجع مصفوفة بكل قيم خصائص الكائن الخاصة به، بنفس ترتيب Object.keys().
Object.entries()
تحويل كائن لأزواج مفتاح-قيمة
Object.entries() تُرجع مصفوفة أزواج [مفتاح, قيمة] — مثالية للمرور على كائن بـ for...of.
Object.fromEntries()
بناء كائن من أزواج مفتاح-قيمة
Object.fromEntries() تعمل بعكس Object.entries() تمامًا — تبني كائنًا من مصفوفة أزواج [مفتاح, قيمة].
Object.assign()
دمج كائنات
Object.assign() تنسخ خصائص كائن أو أكثر إلى كائن هدف وتُرجعه — تُستخدم غالبًا لدمج إعدادات أو نسخ كائن.
Object.freeze()
تجميد كائن (منع التعديل)
Object.freeze() يمنع أي إضافة أو حذف أو تعديل لخصائص الكائن — يجعله ثابتًا فعليًا وقت التشغيل.
Object.groupBy()
تجميع عناصر مصفوفة حسب معيار
Object.groupBy() (ES2024) تبني كائنًا يجمع عناصر أي Iterable في مجموعات، كل مفتاح فيه هو نتيجة دالة تصنيف تطبّقها على كل عنصر.
structuredClone()
نسخ عميق حقيقي لأي قيمة
structuredClone() تبني نسخة عميقة كاملة من كائن أو مصفوفة — تشمل كل مستوى تداخل، بعكس النسخ السطحي لـ {...obj} أو Object.assign().
Math وJSON
Math.round() / Math.floor() / Math.ceil()
تقريب الأرقام
Math.round() تقرّب لأقرب عدد صحيح، Math.floor() تقرّب للأسفل دائمًا، وMath.ceil() تقرّب للأعلى دائمًا.
Math.random()
توليد رقم عشوائي
Math.random() تُرجع رقمًا عشريًا عشوائيًا بين 0 (شامل) و1 (غير شامل) — الأساس لأي عشوائية بجافاسكريبت.
Math.max() / Math.min()
أكبر وأصغر قيمة
Math.max() وMath.min() تُرجعان أكبر أو أصغر قيمة من عدة أرقام ممرَّرة كمعاملات منفصلة.
Math.abs() / Math.pow()
القيمة المطلقة والأس
Math.abs() تُرجع القيمة المطلقة (بلا إشارة سالبة)، وMath.pow() تحسب رقمًا مرفوعًا لأس معيّن.
JSON.stringify()
تحويل كائن لنص JSON
JSON.stringify() تحوّل كائن أو مصفوفة جافاسكريبت لنص بصيغة JSON — ضروري لإرسال البيانات عبر الشبكة أو حفظها.
JSON.parse()
تحويل نص JSON لكائن
JSON.parse() تحوّل نص JSON (مثل الوارد من fetch أو localStorage) إلى كائن جافاسكريبت حقيقي قابل للاستخدام.
طرق Set
Set.prototype.union()
اتحاد مجموعتين
union() (ES2025) تُرجع مجموعة جديدة تحوي كل عناصر هذه المجموعة والمجموعة الممرَّرة معًا، بلا تكرار.
Set.prototype.intersection()
تقاطع مجموعتين
intersection() (ES2025) تُرجع مجموعة جديدة تحوي فقط العناصر المشتركة بين هذه المجموعة والمجموعة الممرَّرة.
Set.prototype.difference()
فرق مجموعتين
difference() (ES2025) تُرجع مجموعة جديدة تحوي عناصر هذه المجموعة التي لا تظهر في المجموعة الممرَّرة.
Set.prototype.symmetricDifference()
الفرق التماثلي بين مجموعتين
symmetricDifference() (ES2025) تُرجع مجموعة جديدة تحوي العناصر الموجودة في مجموعة واحدة فقط من الاثنتين، وليست مشتركة بينهما.
Set.prototype.isSubsetOf()
فحص الاحتواء داخل مجموعة أخرى
isSubsetOf() (ES2025) تُرجع true إذا كانت كل عناصر هذه المجموعة موجودة في المجموعة الممرَّرة.
Set.prototype.isSupersetOf()
فحص شمول مجموعة أخرى
isSupersetOf() (ES2025) تُرجع true إذا كانت كل عناصر المجموعة الممرَّرة موجودة داخل هذه المجموعة — عكس isSubsetOf() تمامًا.
Set.prototype.isDisjointFrom()
فحص عدم وجود أي عنصر مشترك
isDisjointFrom() (ES2025) تُرجع true إذا لم يوجد أي عنصر مشترك بين هذه المجموعة والمجموعة الممرَّرة.
🎓 تريد التعلم بالترتيب بدل المرجع السريع؟ ابدأ من مسار JAVASCRIPT الكامل بالعربي.