Professional Documents
Culture Documents
Kotobati - الكافى فى برمجة جافاسكربت الجزء الاول
Kotobati - الكافى فى برمجة جافاسكربت الجزء الاول
Kotobati - الكافى فى برمجة جافاسكربت الجزء الاول
الكافى
فى
JavaScript
الجزء االول
الحظ هنا ان الجملة اصبحت غير مفهومة الى حد ما او غير مرتبة بشكل
صحيح الن بعض الكلمات نقلت من مكانها بسبب وضع كلمات انجليزية
وسط الجمل العربية فافى مثل هذة الحاالت حاول ان تستنتج الجمله بنفسك
وتفهما
3 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
4 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
فهرس الكتاب
...................................................................................3ملحوظة مهمة جدا
...........................................................................................5فهرس الكتاب
........................................................15مقدمة قصيرة عن جافاسكربت
............................................................17ماذا ستتعلم فى هذة السلسة
..............................................18ما هى برامج جافاسكربت المستقلة
مميزات جافاسكربت فى برمجة التطبيقات المستقلة
.........................................................................19والسيرفرات وااللعاب
.........................................................................................19الميزة االولى
.........................................................................................20الميزة الثانية
..........................................................................................21الميزة الثالثة
.........................................................................................22الميزة الرابعة
......................................................................................23الميزة الخامسة
.....................................................................................24الميزة السادسة
.......................................................................................25الميزة السابعة
.........................................................................................26الميزة الثامنة
................................................................................27عيوب جافاسكربت
....................................................................................................28ملحوظة
.............................................................28فوائد التعلم من خالل األمثلة
...........................................................................................28يعنى بختصار
.............................29كيف استخدام جافاسكربت فى تغير المحتوى
......................................................................................30تغيير الخصائص
....................................................................30كيف تغيير قيم الخصائص
..............................................................................31كيف اخفاء العناصر
.............................................................31كيف اظهار العناصر المخفية
<script>.....................................................................................32العالمة
.....................................................................................32وظائف وأحداث
......................32كيف اضافة بلوكات من اﻻكواد فى نفس الصفحة
.................................................................33قسم الهد او راس الصفحة
..33اكتب جافاسكربت داخل البودى واستدعيها من داخل البودى
................................................34كتابة جافاسكربت فى ملف خارجى
.................................................35مزايا جافاسكربت فى ملف خارجى
..................................................................................35المراجع الخارجية
...........................................................................................36دوال االخراج
..........................................................36دوال تمكنك من عرض البيانات
HTML....................................................36استخدام المحتوى الداخلي
........................................................37كيف كتابة البيانات فى الصفحة
............................................................38كيف اظهار رسالة للمستخدم
...........................................................39كيف التسجيل داخل الكونسل
..................................................40الطباعة الخارجية فى جافاسكربت
5 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
......................................................40تعريف البيانات فى جافاسكربت
............................................................41كيف تكوين البيانات البرمجية
......................................................41كيف اﻻعالن عن متغيرات عديدة
...............................................................................42المسافات الفارغة
.........................42طول السطر فى جافاسكربت وفواصل األسطر
...............................................................................................43كتل اﻻكود
................................................43الكلمات المحجوزة فى جافاسكربت
.........................................................................44طرق انشاء المتغيرات
...................................................................................44التعامل مع القيم
..............................................................................45التعامل مع الحروف
................................................................................................45المتغيرات
..............................................................................45المعامالت الحسابية
.................................................................................................46التعبيرات
................................................................................46الكلمات المحجوزة
.................................................................................................47التعليقات
............................................................................47المعرفات او الأسماء
....................................................................................................48ملحوظة
...............................................................48احظر حساسة حالة األحرف
...........................................................................................48تكوين الجمل
...........................................................................................49ترميز الكتابة
....................................................................................49انشاء التعليقات
........................................................49كيف انشاء تعليقات سطر واحد
................................................50كيف انشاء تعليقات متعددة األسطر
.......................................................50استخدام التعليقات لمنع التنفيذ
...........................................................................51متغيرات جافاسكربت
.................................................................................52ما هي المتغيرات؟
...................................................................53؟ متى استخدام الكلمةvar
..............................................................53؟ متى استخدام الكلمةconst
........................................................................53استخدام معمالت الجبر
....................................................................................................54ملحوظة
..............................................................54ما هى معرفات جافاسكربت
....................................................................................................54ملحوظة
..........................................................................................54عامل التعيين
....................................................................................................55ملحوظة
..........................................................................55أنواع البيانات السائدة
.........................................................................55كيف اإلعالن عن متغير
....................................................................................................56ملحوظة
........................................56كيف عمل اعالن واحد ،لجميع المتغيرات
................................................................57كيف جعل القيمة غير محدد
..................................................................57إعادة اإلعالن عن متغيرات
....................................................................................................58ملحوظة
.....................................................................58انشاء العمليات الحسابية
6 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
....................................................................................................59ملحوظة
.....................................................................59استخدام عالمة الدوالر $
................................................................60جافاسكربت و االندرسكول
......................................60احظر هذا الخطا عند استخدام الكلمة Let
.............................................................................61ما هو نطاق الكتلة }{
...............................................................62إعادة اإلعالن عن المتغيرات
......................................................................62إعادة اإلعالن للمتغيرات
...................................64كيف استخدام المتغيرات قبل االعالن عنها
.........................................................................64استخدام الكلمة const
.......................................................................65خصائص الكلمة كونست
.................................................................................65يجب أن يتم تعيينه
.............................................................................65؟ constمتى تستخدم
.........................................................................66الكائنات والمصفوفات
........................................................66تطبيق عملى على المصفوفات
........................................................................67مثال اخر على الكائنات
...................................................................67نطاق المتغير داحل الكتلة
.........................................................68كيف إعادة اإلعالن عن المتغير
......................................................69المذيد عن الرفع واعادة االعالن
................................................................71أنواع معامالت جافاسكربت
.........................................................71معامالت جافاسكربت الحسابية
...............................................................72معامالت تعيين جافاسكربت
..........................................73إضافة ودمج النصوص فى جافاسكربت
..........................................................................74إضافة نصوص وأرقام
..................................................................................74معامالت المقارنة
............................................75عوامل المنطقية فى ووضع الشروط
......................................................................................75معامالت االنواع
....................................................................................75معامالت Bitwise
..............................................................................76المعامالت الحسابية
..................................................76كيف استخدام المعامالت الحسابية
........................................76مذيد من االمثلة على العمليات الحسابية
...................................................................................77ما هى المعامالت
.....................................................77كيف االستخدام فى عملية الجمع
.......................................................................................................78الطرح
......................................................................................................78الضرب
....................................................................................................78القسمة
...........................................................................................79بقية القسمة
...........................................................................79الجمع بالذيادة الثابتة
.......................................................................................................79الطرح
..........................................................................................................80األس
..............................................................80أسبقية المشغل فى التنفيذ
....................................................................................................81ملحوظة
...........................................................81تعرف على المشغالت باالمثلة
7 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
....................................................82مشغالت التعيين فى جافاسكربت
...........................................................................82مشغلي مهمة التحول
Bitwise.........................................................................82مشغلي تعيين
..................................................................82مشغلي التعيين المنطقي
.................................................................................................82المشغل =
..............................................................................................83المشغل =+
...............................................................................................83المشغل =-
..............................................................................................84المشغل =*
............................................................................................84المشغل =**
...............................................................................................84المشغل =/
.............................................................................................84المشغل =%
...............................................................................................85العامل <<=
............................................................................................85المشغل >>=
..........................................................................................85المشغل =>>>
..............................................................................................86المشغل =&
...............................................................................................86المشغل |=
..............................................................................................86المشغل ^=
...........................................................................................87المشغل &&=
..............................................................................................87المشغل ||=
............................................................................................88المشغل =??
............................................................................88أنواع البيانات العامة
......................................89أمثلة على انشاء انواع من البيانات العامة
....................................................................................................89ملحوظة
...........................................................................89مفهوم أنواع البيانات
....................................................................................................90ملحوظة
...........................................................91أنواع جافاسكربت الديناميكية
.............................................................................91نصوص جافاسكربت
.....................................................................92األرقام فى جافاسكربت
...................................................................................92األسية فى الجبر
....................................................................................................93ملحوظة
................................................................................94نوع البيانات BigInt
..................................................94جافاسكربت و االساليب المنطقية
............................................................95المصفوفات فى جافاسكربت
...................................................................95الكائنات فى جافاسكربت
...............................................................96كيف معرفة االنواع للبيانات
.....................................96االعالن عن نوع غير معرف وليس له قيمة
.........................................................................................97القيم الفارغة
..................................................................97الوظائف فى جافاسكربت
......................................................................97كيف بناء جملة الوظيفة
........................................................................98كيف استدعاء الوظيفة
............................................98التحكم فى االرجاع من داخل الوظيفة
.....................................................................99لماذا نستخدم الوظائف؟
8 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
............................................99استخدام الوظيفة الرجاع ناتج العملية
...........................................100كيف استخدام الوظائف كقيم متغيرة
...................................................................100نطاق المتغيرات المحلية
............................................................................101كائنات جافاسكربت
.......................................................................................102تعريف الكائن
.................................................................................102خصائص الكائنات
............................................................102الوصول إلى خصائص الكائن
..........................................................................................103طرق الكائن
.....................................104كيف االشارة الى الكائن بدون ذكر اسمة
......................................104تشير الكلمة المحجوزة إلى كائن ، this.
.................................................................................................104ملحوظة
.............................................................................................104أنظر أيضا:
..................................................................104كيف استخدام كلمة ذيس
......................................................104كيف الوصول الى اعضاء الكائن
...................................................................105ال تستخدم هذة الطريقة
............................................................................105أحداث جافاسكربت
HTML.........................................................................................106أحداث
................................................................107أالحداث الشائعة لــ HTML
...........................................................107معالجات أحداث جافاسكربت
...........................................................................108التعامل مع النصوص
...................................................109كيف معرفة عدد حروف النصوص
..............................................................109كيف استثناء بعض الحروف
...................................................................110كيف تحديد طول السطر
................................................111طريقة استخدام النصوص ككائنات
......................................................................................113دوال النصوص
.........................................................................................114الدالة length
........................................................114كيف استخراج أجزاء من النص
.............................................................114طرق التقطيع الدالة االولى
.................................................................................................115ملحوظة
...............................................................116تابع طرق تقطيغ النصوص
...........................................117كيف البحث واالستبدال فى النصوص
...............................................................................................117ملحوظة1
...............................................................................................118ملحوظة2
...............................................................................................119ملحوظة3
..................................................................................119دالة)(replaceAll
...............................................................................................119ملحوظة4
........................................119التحويل إلى األحرف الكبيرة والصغيرة
...........................................................................120دالة)( toUpperCase
............................................................................120دالة)(toLowerCase
.........................................................................................120الدالة concat
.................................................................................................121ملحوظة
.............................................................................................121دالة )(Trim
9 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
...............................................................................121الدالة)( TrimStart
....................................................................................122دالة)( TrimEnd
............................................................................122دوال اخرى لالضافة
...................................................................................122دالة)( PadStart
.................................................................................................123ملحوظة
.................................................................................123دعم المتصفحات
...................................................................................123الدالة)( PadEnd
.................................................................................................124ملحوظة
.................................................................................124دعم المتصفحات
...........................................124كيف استخراج أحرف معينة من النص
....................................................................................124الدالة)( charAt
...........................................................................125الدالة)(charCodeAt
.......................................................................125جلب الحرف بالفهرس
.................................................................................................125ملحوظة
...................................................................126تحويل نص إلى مصفوفة
..................................................................126الطريقة العادية للتحويل
.......................................127كتاب المرجع الكامل فى الجافاسكربت
..............................................................127كيف جلب الفهرس للحرف
.................................................................................................127ملحوظة
..........................................................................128الدالة )( lastIndexOf
...........................................................................129استخدام دالة البحث
.................................................................................................129ملحوظة
.............................................129كيف البحث اﻻحترافى فى النصوص
.................................................................................................130ملحوظة
................................................................................130الدالة)( matchAll
..............................................................................................131ملحوظات
..............................................131كيف معرفة نص البحث موجود ام ﻻ
..............................................................................................132ملحوظات
...............................................132طرق اخرى للتشييك على النصوص
..............................................................................................133ملحوظات
.......................................................133كيف البحث فى نهاية النصوص
..............................................................................................134ملحوظات
......................................................................................134االقتباس الحر
.......................................................135اقتباسات داخل االقتباس الحر
..............................................................................135تابع اﻻقتباس الحر
.................................................................................................135ملحوظة
..................................................136مثال اخر لستخدام االقتباس الحر
....................................................136طريقة دمج اكواد داخل النصوص
........................................................................................137قوالب HTML
.................................................................................137دعم المتصفحات
..............................................137كتاب المرجع الكامل فى جاسكربت
..................................................................137طرق التعامل مع اﻻرقام
10 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
..................................................................................138االعداد الصحيحة
...................................................................................139االعداد العشرية
..........................................................139إضافة األرقام والنصوص معا
................................................................................141النصوص الرقمية
.............................................................................................142الكلمةNaN
....................................................................................144القيمة اال نهاية
................................................................................145السداسي عشري
...................................................................................146أالرقام ككائنات
............................................................................146ال ينصح باستخدامها
.................................................................................147امثلة على BigInt
......................................................................147مكون اﻻعداد الصحيحة
.....................................................148كيفية إنشاء نوع البيانات BigInt
............................................................................................148تابع BigInt:
........................................................................................149مشغل BigInt
..............................................................................................149ملحوظات
...................................................................150الكسور العشرية الكبيرة
.......................150استخدم الهيكس ،أوالكتال اوالثنائي فى BigInt
.....................................................................................150تقريب المكون
.................................................................................151دعم المتصفحات
...................151الحد األدنى والحد األقصى لألعداد الصحيحة اآلمنة
.........................................................................151طرق او دوال األرقام
..............................................................151طريقة )(Number.isInteger
.....................................................152طريقة )(Number.isSafeInteger
..................................................................152طرق ا رقام جافاسكربت
toString ()..............................................................................152طريقة
toExponential()....................................................................153طريقة
toFixed().................................................................................153طريقة
toPrecision().........................................................................154طريقة
..................................................................154طرق اخرى لجلب القيمة
...........................................................155لتحويل المتغيرات إلى أرقام
...............................................................155الطريقة االولى )(Number
..........................................................155كيف تحويل التاريخ)(Number
...............................................................156الطريقة الثانية )(parseInt
..........................................................156الطريقة الثالثة )( parseFloat
......................................................................157شرح اهم دوال االرقام
..................157ال يمكن استخدام األساليب الرقمية في المتغيرات
....................................................................158دالة)(Number.isInteger
...........................................................158دالة)(Number.isSafeInteger
................................................................158دالة)(Number.parseFloat
.................................................................................................159ملحوظة
.................................................................159الدالة)(Number.parseInt
................................................160كتاب المرجع الكامل لجافاسكربت
11 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
.................................................................................160خصائص االرقام
...................................................................................160خاصية ابسيلون
.................................................................................................161ملحوظة
...........................................................................161خاصية MAX_VALUE
.....................161ال يمكن استخدام خصائص األرقام في المتغيرات
............................................................................162خاصية MIN_VALUE
..........................................................162خاصية MAX_SAFE_INTEGER
............................................................162خاصيةMIN_SAFE_INTEGER
.............................................................163خاصيةPOSITIVE_INFINITY
...........................................................163خاصيةNEGATIVE_INFINITY
.............................................................................................164شرح NaN
.........................................................................................164المصفوفات
...........................................................165لماذا استخدام المصفوفات؟
..........................................................................165كيف إنشاء مصفوفة
...................................................................166استخدام الكلمة كونست
.......................................................167الوصول إلى عناصر المصفوفة
...........................................................167كيف تغيير عناصر المصفوفة
.....................................................167الوصول إلى المصفوفة بلكاملة
....................................................................168المصفوفات هي كائنات
.....................................168يمكن أن تكون عناصر المصفوفة كائنات
...........................................................169خصائص المصفوفة وطرقها
..........................................................169كيف معرفة طول المصفوفة
......................................................169كيف الوصول إلى العنصر األول
....................................................170كيف الوصول إلى العنصر األخير
.................................................................170كيف عرض جميع العناصر
......................................171كيف إضافة عناصر فى نهاية المصفوفة
......................................................................172المصفوفات الترابطية
.................................................173الفرق بين المصفوفات والكائنات
................173متى تستخدم المصفوفات و متى تستخدم الكائنات.
...............................................................173كيف استخدام)(new Array
........................................................174كيفية التعرف على المصفوفة
...............................................................................175طرق المصفوفات
............................................175اوالا تحويل المصفوفات إلى نصوص
............................................................................176تعديل المصفوفات
......................................176كيف ازالة العنصر االخير من المصفوفة
...............................................177كيف اضافة عنصر جديد فى النهاية
.....................................................................................177اساليب الحذف
......................................178كيف حذف العنصر اﻻول من المصفوفة
.............178كيف اضافة عنصر الى البداية والغاء اﻻزاحة للمفاتيح
.....................................................179كيف استبدال قيمة عنصر معين
.......................................179كيف استخدام مجموع العناصر لالضافة
.............................................................180حذف عناصر من المصفوفة
12 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
.......................................................................180كيف دمج المصفوفات
..............................................181اضافة عناصر فى وسط المصفوفة
....................................181كيف اضافة عناصر فى وسط المصفوفة
.........................................182ازالة عناصر من محددة فى المصفوفة
.......................................................................182كيف تجزئة المصفوفة
.................................................................................................183ملحوظة
...........................................184كيف تحويل المصفوف الى نص عادى
.................................................................................................184ملحوظة
................184كيف إيجاد القيم القصوى والصغرى في المصفوفة
.................................................184كيف الفرز والترتيب للمصفوفات
..........................................................185اشهر طرق الفرز للمصفوفة
..........................................................185كيف عكس ترتيب المصفوفة
...............................................185كيف عمل ترتيب رقمى للمصفوفة
..................................................................................186وظيفة المقارنة
.......................................................187فرز مصفوفة بترتيب عشوائي
............................................................................187طريقة فيشر ييتس
.....................................188ابحث عن أعلى أو أدنى قيمة للمصفوفة
Math.max().........................................................................189استخدام
Math.min()..........................................................................189استخدام
Min / Max................................................................189طرق خاصة بي
...................................................................190فرز مصفوفات الكائنات
............................................................191تكرار مصفوفة جافاسكربت
forEach ().............................................................................................191
......................................................................192استخدام دالة الخريطة
............................................193كيف تصفية المصفوفة والبحث فيها
............................................194كيف التقليل والتصفية للمصفوفات
..........................................................195ازاحة المصفوفة الى اليمين
.........................................................................196تابع طرق المصفوفة
..........................................................................197طريقة اخرى للبحث
...................................................198كيف التحكم عن طريق الفهارس
lastIndexOf ()...........................................198مصفوفة جافاسكربت
...........................................................................199طريقة اخرى للبحث
.......................................................................................200دعم المتصفح
...................................................................................200دالة)( findIndex
.......................................................................................200دعم المتصفح
Array.from()........................................................................................201
.......................................................................................201دعم المتصفح
..........................................201كيف الحصول على مفاتيح المصفوفة
.......................................................................................202دعم المتصفح
.............................................................................202إدخاالت المصفوفة
.......................................................................................202دعم المتصفح
...................................................................203التتضمن فى المصفوفة
13 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
.......................................................................................203دعم المتصفح
.....................................................203استخدام كونست مع المصفوفة
(ES6)...................................................................203إيكماسكربت 2015
..........................................................................204ال يمكن إعادة تعيينها
.................................................................204المصفوفات ليست ثوابت
................................................................204يمكن إعادة تعيين العناصر
.......................................................................................205دعم المتصفح
..........................................................................205تم تعيينه عندما أعلن
.............................................................................206نطاق كتلة كونست
.................................................................206إعادة تعريف المصفوفات
................................................208كتاب المرجع الكامل لجافاسكربت
14 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
جافاسكربت هى وسلة قوية وسريعة للتحكم فى طرق االخراج
البيانات الى العميل والتحكم فى خصائص العناصر وتغيرها فى اى وقت
العميل
البيانات
طرق االخراج
جافاسكربت
المتصفح
البيانات
15 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
جافاسكربت هي لغة البرمجة األكثر شعبية في العالم لكونها اللغة المعترف بها من
منظمة الويب العالميه كلغة اساسية لجميع متصفحات االنترنت فى العالم حيث انها
مدعومة من مئة بالمئه من متصفحات االنترنت الحديثة فى جميع انحاء العالم وجميع
انظمة التشغيل المختلفة الحديثة وجميع الشركات المنتجة للمتصفحات على مستوى
العالم كله بال استثناء وجميع انظمة تشغيل السرفرات بال استثناء ال يوجد سيرفر ويب
على وجة االرض ال يدعم جافاسكربت يعنى اى تشغيل محلى الى متصفح سواء كان
هذا للموبايل او الكمبيوتر فهى مدعومة وهى لغة مهمه جدا و يجب تعلمها مهما كان
تخصصك فى البرمجة النك السيما ستحتاج اليها عند التعامل االحترافى مع اى متصفح
انترنت محلى او اى سيرفر مهما كانت لغتة االم وهى سهلة التعلم وبسيطة ومختصرة
وتستطيع من خاللها انتاج تطبيقات مستقلة قائمه بذاتها ال تعتمد على اى سيرفر او
متصفح ناهيك عن استخدمها فى الجرافيكس داخل برامج ادوبى وغيرها تستطيع تخصيص
سكربتات داخل ادوبى افتر افكت للخدع السينمائية وكذالك انشاء اسكربتات خاصه
بالجافاسكربت داخل ادوبى فوتوشوب وسننشاء كتاب خاص باذن اهلل تعالى الاستخدام
جافاسكربت من داخل الفوتوشوب وكيف تكتب اسمك على االاف الصور وتغير
الخلفيات وااللون المئات االاف من الصور بضغطة زر واحدة بالجافاسكربت من داخل
برنامج الفوتوشوب وكذلك جميع برامج ادوبى وكل التطبيقات التى ستخدمها فختصارا
جافاسكربت تعمل فى اى مكان غير امكانتها المزهلة فى التحكم فى المتصفحات
لالنترنت وكيف انشاء تطبيقات حرة تعمل على اى نظام تشغيل تتخيلة خاص موبايل
او كمبيوتر وذلك باستخدام اطار عمل (النود جى اس) هذا االطار الذى اعتبره انا قنبلة
متفجرة فى عالم التقنيات و البرمجيات وهو بمثابة استقالليه لجافاسكربت حيث
يجعلها تعمل خارج المتصفح ويتم تحويلها الى لغة الباينارى الثنائية التى يفهما
الكمبيوتر
16 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
ماذا ستتعلم فى هذة السلسة
ستتعلم من هذة السلسة (سلسة الكافة فى الجافاسكربت)كل استخدمات اللغة من البداية إلى
المستوى االحترافى باذن اهلل تعالى وهى خمس اجزاء قابل للذيادة منهم اربع اجزاء متتالية والجزء
الخامس عبارة عن مرجع شامل لكل دوال اللغة بال اسثناء سيغطى هذا المرجع كل طرق وخصائص
ودوال وكالسات ومكتبات اللغة كاملة باذن اهلل تعالى
17 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
ما هى برامج جافاسكربت المستقلة
برنامج الكمبيوتر المستقل هو عبارة عن قائمة من "التعليمات" التي سيتم "تنفيذها"
تلقائيا بواسطة الكمبيوتر فقط وال تحتاج الى وسيط يعنى برنامج قائم بذاتة ال يحتاج الى
تطبيقات لتشغيله والمقصود بالوسيط هنا هو المتصفح او السيرفر او برنامج مساعد مثل
مشغل الفالش الذى ال تستطيع تنفيذ برامج الفالش بدونة و الستخدام جافاسكربت
مستقلة تعمل بذاتها على اى جهاز يجب تنصيب( النود جى اس) اوال وهو فريمورك
سيجعلك تستخدم جافاسكربت خارج المتصفح يتم تنفيذها تلقائيا بدون وسيط لتنتج
تطبيقات لجميع انظمة التشغيل سواء الموبايل او الكمبيوتر و سيجعلك تستخدمها ايضا
كاسيرفر مثل ال(بى اتش بى) تمام لتنتج مواقع ويب تعتمد على تخزين البيانات
.واستدعائها كالفيسبوك واليوتيوب وغيرهم
في لغة البرمجة ،تسمى تعليمات البرمجة هذه البيانات الثنائية و سميت ثنائية النها
تتكون من الزيرو و الواحد فقط لن نتطرق الى هذا االن سننتج كتاب خاص لشرح لغة
البينارى الثانئية ان شاء اهلل تعالى وهى اللغة التى يفهمها اى كمبيوتر والتى يتم
تحويل جميع لغات البرمجة بختالف انواعها الى هذة اللغة المكونة من الزيرو و الواحد
فقط وسنتعرف باذن اهلل تعالى فى كتاب لغة البينارى كيف يفهم الكمبيوتر البيانات
بالتفصيل الغير ممل .
يعنى اختصارا برنامج جافاسكربت المستقل عبارة عن قائمة من البيانات البرمجة يتم
تنفيذها تلقائيا بدون تطبيقات مساعدة حيث انها تترجم للغة الكمبيوتر ترجمة فورية وهذا
.يسمى ال(رن تايم) ترجمة وقت التشغيل
انما يتم تنفيذ برامج جافاسكربت المدعومة فى صفحات الويب والمعترف بها من ،
.منظمة الويب العالمية بداخل متصفحات الويب كاجزء من المتصفح
18 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مميزات جافاسكربت فى برمجة التطبيقات المستقلة
والسيرفرات وااللعاب
لالسف الشديد منتشر بين الناس ان لغة جافا وكتلن و سي شارب وغيرهم هما
افضل لغات لبرمجة االندريد وغيرة من انظمة تشغيل الموبايل وهى معلومة
غير صحيحة كما سنعرف االن
اوال ساذكر لك مميزات جافاسكربت التى تنفرد بها فى برمجة تطبيقات مستقلة
وبرمجة السيرفرات والمواقع وبرمجة انظمة تشغيل الموبايل و الكمبيوتر و
المميزات الغير موجودة فى اللغات الكبرى مثل جافا وروبى وبايثون وسى
شارب وغيرها بمعنى انها مميزات حصرية لجافاسكربت سنتعرف عليها االن
واحدة تلو االخرى ان شاء اهلل تعالى
الميزة االولى
هى اكواد جافاسكربت الثابته ومعنى ثابتة اى انها ال تتغير على كل انظمة التشغيل
الموبايل والكمبيوتر والمتصفحات والسيرفرات وكل شى وهذا يعنى انك ستتعلم مرة
واحدة فقط اكواد تعمل على كل شى تقريبا مما يجعل االمور فى غاية السهولة وهذا
على عكس اللغات االخرى فكل نظام تشغيل له مكتباتة الخاصة التى يجب ان
تستدعيها وتدرس اكواد جديدة تعمل عليها لكل نظام يعنى مثال اذا كنت مبرمج
بايثون المصنفة ك اسهل لغة فى العالم ال يمكن ان تبرمج ببايثون لالندرويد اال اذا
قمت باستدعا مكتبة تسمى( اندرويد) وهى مكتبة كبيرة جدا ومتشعبة ناهيك عن
عشرات المكتبات المساعدة لها كل هذة المكتابات ال تعمل اال لنظام اندريد فقط ثم
اذا اردة البرمجة ببايثون لالىفون له مكتباتة الخاصة ايضا وعشرات المكتبات المساعدة
وكذلك جميع لغات البرمجة مما يذيد االمر تعقيدا وصعوبة
19 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
الميزة الثانية
جافاسكربت تستخدم لغة( السي اس اس) فى تنسيقات واجهة المستخدم فى
التطبيقات المستقلة والسيرفرات والمواقع وكل شى وهى اسهل لغة تنسيق
واجهات فى العالم تكتب اسم الخاصية وامامها القيمة فقط كانك تكتب جواب
لشخص ال يوجد فيها غموض مثل لغات البرمجة المعهودة اعتقد انة ال يوجد
اسهل منها فى تاريخ البرمجة فى تنسيقات الواجهات فلقد درست انا جميع
لغات الدت نت من ميكرو زفت حتى لغات البيسك القديمة درستها بدايتا من
فيجوال بيسك 6وحتى اطارات الدت نت واعلم جيدا معنا كلمة صعوبة تنسيق
الوجهات للتطبيقات المستقلة خصوصا فى سي شارب وكل اصدارات فيشوال
بسيك القديم والحديثة وجافا وجميع عائلة السي وغيرها حتى بايثون المصنفة
انها اسهل لغة فى العالم تنسيق الوجهات فيها اصعب من (السي اس اس)
وحتى لغات انكل قوقل الذى يدعى كذبا انها سهلة مثل لغة( ار) ليست اسهل
من( السي اس اس) فى تنسيقات واجهة المستخدم فلن تجد منافس لهذة
الميزة ال تبحث
20 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
الميزة الثالثة
جافسكربت فى برمجة التطبيقات المستقلة تسخدم ادوات الكنترول الخاصة بل(اتش تى
ام ال) والمقصود بادوات الكنترول يعنى(ادوات التحكم) مثل االزرار ومربعات الحوار
والرسائل المنبثقة ومربعات االدخال وغيرها هذة تسمى ادوات التحكم واختصارا لن تجد
فى تاريخ البرمجة القديد والحديث والماضى والحاضر والذى لم يحضر ادوات تحكم
اسهل من ادوات (اتش تى ام ال) حتى ادوات (تى كى انتر) التابعه السهل لغة فى
العالم وهى بايثون بتصنيفات عمو قوقل ليست اسهل من ادوات (اتش تى ام ال)
ناهيك عن قوة هذة االدوات بعد دعم( النود جى اس) الذى ال حصر لمستودعاتة البرمجية
وسنتصدر له سلسة كاملة ان شاء اهلل المتعالى
21 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
الميزة الرابعة
قام موقع (جيتهاب) بتصنيف جافاسكربت فى برمجة السيرفرات باستخدام
فريمورك (نود جى اس) بانها اسرع ريسبونس وريكويست فى العالم يصل الى
600ارسال فى الثانية الواحدة وهذا اسرع من( بى اتش بى) عشر مرات والسر
الكامن فى هذة السرعة الجبارة و الرهيب هى ان برمجة السيرفرات فى الخوادم
االخرى تعتمد اعتماد كلى على( بيروسيسور) السيرفر يعنى بختصار اذا
اعداد كبيرة جدا دخلت بالماليين الى الموقع سيكون حمل كبير جدا على
السيرفر و سيختفى الموقع من على االنترنت بمجرد سقوط السيرفر من كثرة
التحميل علية ولكن مع سيرفر جافاسكربت االمر مختلف تماما فتستطيع
تخصيص جزء كبير جدا من كود جافاسكربت ليطبق على اجهزة العمالء
مستخدما ماليين البريسوسيرات للعمالء الذين دخلو الى الموقع بسبب دعم
جميع متصفحات الويب بال استثناء الكواد جفاسكربت مما يؤدى الى سرعة
كبيرة جدا فى التنفيذ اىا كان نظام تشغيل العميل ال تشغل بالك بهذا االمر
تاكد ان متصفح العميل يدعم جافاسكربت بنسبة مئة بالمئة فكل
المتصفحات الحديثة تدعمها بال استثناء وهذا يجعل (بيروسيسور) السيرفر فى
ثبات وقوة كبيرة ولذلك سيرفر( نود جى اس) هو اخف سيرفر فى العالم و فشل
اللغات االخرى فى منافستة فى سرعة التنفيذ التى تكمن فى هذة الميزة
المنتزعة من الخوادم االخرى وميزات اخرى سنذكرها فيما بعد ان شاء اهلل
تعالى حتى لغة (السى بلص بلص) المشهورة بالقوة و السيطرة و السرعة النها
تفسر للغة االلة مباشرتا لم تستطع منافسة (نود جى اس) فى السرعة بسبب
ميزة دعم المتصفحات المنفردة بها جافاسكربت فسرعة (نود جى اس) ليس لها
منافس لتصبح جافاسكربت هى اللغة الوحيدة فى العالم التى تستطيع تسخير و
توظيف بيروسوسرات العمالءعبر المتصفحات
22 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
الميزة الخامسة
خادم جافاسكربت المسمى (نود جى اس) يستطيع دمج اكواد(الباك اند) مع
(الفرونت اند) وتنفذها دفعه و احدة بسبب ان كل االكواد
المكتوب( جافاسكربت فى جافاسكربت )كلها اكواد واحدة و مصدر الدعم واحد
فتنفذ دفعة واحدة مما يؤدى الى ذيادة السرعة فى التنفيذ وهذا مالم تستطع
فعلة الخوادم االخرى بسبب ان اكواد( الباك اند) فى الخوادم االخرى مختلفة
عن( الفرونت اند) يعنى مثال بختصار فى لغة (بى اتش بى) تكتب اكواد
الباكاند بلغة (بى اتش بى) التى تعتمد فى التنفيذ على لغة (بيرل) المحملة
على السيرفر و (الفرونتاند) يعتمد على ال (فى )8المحمل ايضا على السرفر
فدمج هذة االكواد مستحيلة الن مصادر الدعم مختلف والبد من كل تقنية ان
تلجا للمصدر الذى يدعمها للتنفيذ انما فى سيرفر جافاسكربت االمر اكثر سهول
(البك اند) جافاسكربت و(الفرونت اند) جافاسكربت ايضا تنفذ دفعة وهذة
احدى الميزات التى تذيد فى سرعة سيرفر جافاسكربت(نود جى اس)
23 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
الميزة السادسة
فى برمجة السيرفرات االخرى اذا اردت ارسال قيمة متغير من اكواد( الباك اند)
الى (الفرونت اند) او العكس فهذا امر معقد جدا وستحتاج الى مكتبات خاصة
لتنفيذة يعنى مثال فى لغة (بى اتش بى) ستحتاج الى مكتبة تسمى ( بى اتش
بى دت جى اس ) لتنفيذ هذا االمر او انك ستلجا لتقنة اجاكس التى ستجبرك
على انشاء ملف خاص ل(بى اتش بى) وملف خاص للجافاسكربت الذى
سيرسل باكواد االجاكس باستخدام مكتبة اخرى ستقوم بتحميلها تسمى
جيكويرى اجاكس والتى سترسل البيانات الى ملف ال ( بى اتش بى) الذى
سيعيد ارساله مرة اخرى بعد المعالجة لتعود البيانات للملف االول الذى
اطلقت البيانات منه و هو ال (فرونت اند ) كل هذة الخطواط الكثيرة و المعقدة
لكى تقوم فقط بارسال قيمة متغير من اكواد الباك اند الى اكواد الفرونت اند وقد
تفشل العملية بعد كل هذا التعب اما فى سيرفر جافاسكربت االمر فى منتهى
السهولة و اليسر فستطيع كتابت الباك اند داخل الفرونت اند بال ادنى مشكلة
و(الفرونت اند) داخل (الباك اند) بال ادنى مشكله النة ال يوجد لغة دخيلة فى
السيرفر كلها لغة واحدة ستطبق دفعة واحدة بنقرة واحدة وهى جافاسكربت
24 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
الميزة السابعة
فى برمجة السيرفرات باللغات االخرى اذا اردت انشاء موقع يعتمد على
المحتوى الديناميكى من داخل الصفحة مثال فى لغة (بى اتش بى ) انشاء هذا
االمر ستحتاج الى عمل االف االقواس المتعرجة والتى بدورها ستفصل اكواد
(بى اتش بى ) عن الصفحة حتى يتعرف عليها السيرفر وينفذها النها تقنية
مختلفة تعتمد على مصدر خارجى وليست من تقنية المتصفحات وهذا امر
حقيقتا تنفيذة مرهق جدا وفى بعض االحيان كثرة هذة االقواس المتداخلة تؤدى
الى حدوث ربكة عند قرائة الكود فيما بعد او تؤدى كثرتها الى اخطا فادحة
ناهيك عن البطء فى التنفيذ الى جانب انه امر مزعج جدا لكثير من المطورين
ولكن مع سيرفر جافاسكربت (نود جى اس) لن تحتاج الى فصل االكواد الن كل
االكواد المكتوبه جافاسكربت لها مصدر واحد مما يسهل عليك الكتابة والتنسيق
وقرائة الكود وكل شى فى صفحة واحدة
25 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
الميزة الثامنة
هذة الميزة ساتركك تعاينها بنفسك ادخل على عمو غوغل واكتب فى البحث
محركات العاب جافاسكربت مفتوحة المصدر او المجانية ولن اخبرك بانك
ستجد عشرات المحركات االلعاب المجانية التى ستبرهك وكلها احسن من
,i`h d[uبعضها وبكفائه عالية جدا فجافاسكربت لغة قوية وسريعة فى التحريك
ولذلك تفضلها معظم الشركات والمطورين المتطوعين فى صنع االلعاب حيث
ان العاب جافاسكربت خفيفة جداو سريعة و يوجد محرك العاب اسمة (جى
ديفيلوب) ذو وجهه عربية كاملة العبد الفقير الى اهلل ساهم فى تعريبة بنسة
90بالمئة عشرات االاف من الجمل وفقنا اهلل فى تعربها والحمد هلل رب
العالمين ليصبح هذا المحرك االن ذو وجة عربية كاملة ويدعم االخراج لكل
المنصات الموبايل والكمبيوتر وكل شى مهيئ للمبرمجين وغير المبرمجين فله
واجهة سحب وافالت واحداث جاهزة وقوالب واشياء اخرى كثيرة انصح بتجربتة
وستجد العشرات من محركات االلعاب المجانية المنافسة له التى تستخدم
جافاسكربت ايضا
26 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
عيوب جافاسكربت
لن اذكر لك عيوب جافاسكربت هنا واذا اردت ان تعرف عيوب جافاسكربت
اقراء الكتاب الذى سانشرة فى خالل ايام ان شاء اهلل تعالى اسمة الفرق بين
البرامج الهجينه والبرامج االصلية سيشرح هذا الكتاب كيف يتم تنفيذ البرامج
الهجينة واالصلية على الكمبيوتر والفرق بينهم
استخدام محرر "جربه بنفسك" ،لن نفرض عليك محرربعينة حيث ان هذة اللغة مدعومة من جميع
المحررات القديمة والحديثة و المعروفة والغير معروفة حتى المحررات التى صنعت تحت بير السلم تدعم
جافاسكربت ببراعة وكل المحررات تقريبا ولن تجد صعوبة فى ايجاد محرر ولكن ننصح بالفيجوال ستوديو
.كود الن هو الذى سنعمل علية فى هذا الكتاب باذن اهلل تعالى
27 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كتاب الكافى فى جافاسكربت الجزء االول ابو حبيب الحسينى
ملحوظة
.نوصي بقراءة هذا الكتاب ،بالتسلسل المدرج حتى يتيثر عليك الفهم
.إذا كان لديك كمبيوتر ،فستكون افضل من الموبايل النة يجب تجربة االكواد بنفسك على الكمبيوتر
☰ .إذا كنت تقرا من الموبايل فعليك ان تحفظ النتائج بستمرا
إذا قمت بتجربة جميع األمثلة ،فسوف تتعلم الكثير عن االكتفاء بتجربة الكتاب ،النك ستجرب المثال ⇣⇣ بطرق كثيرة و
! مختلفة في وقت قصير ج ًدا ان شاء اهلل تعالى
يعنى بختصار
:جافاسكربت هي إحدى اللغات الثالث التي يجب على جميع مطوري الويب تعلمها
28 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
) ES1 ES2 ES3 (1997-1999بدايتا من جافاسكربت االصدار األصلي و االول •
• )ES5 (2009
)• ES6 (2015
اهم اإلضافات تم اصدارها فى هذة السنين (• )2023 ،2019 ،2018 ،2017 ،2016
29 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
مثال ✅ ⇣⇣
;"document.getElementById('Habib').innerHTML = 'Easy-to Abu Habib Al-Husini
تغيير الخصائص
<img>:للعالمة )المصدر( srcفي هذا ال✅ مثال ⇣⇣ ،تغير جافاسكربت قيمة السمة
30 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;"document.getElementById("Habib").style.fontSize = "35px
مثال ✅ ⇣⇣
;"document.getElementById("Habib").style.display = "none
مثال ✅ ⇣⇣
;"document.getElementById("Habib").style.display = "block
.في عام ECMA 1997في عام ،1995وأصبح معيار Brendan Eichتم اختراع جافاسكربت بواسطة
31 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
> <scriptالعالمة
</script>.العالمات> <scriptيتم إدراج كود جافاسكربت بين HTML،في
مثال ✅ ⇣⇣
><script
;"document.getElementById("Habib").innerHTML = "Easy-to Abu Habib Al-Husini
></script
وظائف وأحداث
".عبارة عن كتلة من تعليمات جافاسكربت البرمجية ،والتي يمكن تنفيذها عند "االستدعاء functionجافاسكربت
.على سبيل ال✅ مثال ⇣⇣ ،يمكن استدعاء دالة عند وقوع حدث ما ،مثل عندما ينقر المستخدم على زر
32 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
قسم الهد او راس الصفحة
HTML.قسم صفحة> <headفي هذا ال✅ مثال ⇣⇣ ،يتم وضع جافاسكربت فيfunction
مثال ✅ ⇣⇣
><!DOCTYPE html
><html
><head
><script
{ )(function Husini
;"document.getElementById("Habib").innerHTML = "Abu Habib Al-Husini changed.
}
></script
></head
><body
></body
></html
مثال ✅ ⇣⇣
><!DOCTYPE html
><html
33 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
><body
><script
{ )(function Husini
;"document.getElementById("Habib").innerHTML = "Abu Habib Al-Husini changed.
}
></script
></body
></html
.تعتبر الكود الخارجية عملية عند استخدام نفس الكود في العديد من صفحات الويب المختلفة
.js .ملفات جافاسكربت لها امتداد الملف
<script>:للعالمة )المصدر( srcالستخدام برنامج نصي خارجي ،ضع اسم ملف الكود في السمة
مثال ✅ ⇣⇣
><script src="Habib_Script.js"></script
34 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
.كما تريد> <bodyأو> <headيمكنك وضع مرجع نصي خارجي في
موجودا بالضبط في المكان الذي
ً .توجد فيه العالمة> <scriptسوف يتصرف الكود كما لو كان
:إلضافة عدة ملفات نصية إلى صفحة واحدة -استخدم عدة عالمات نصية
مثال ✅ ⇣⇣
><script src="Habib_Script1.js"></script
><script src="Habib_Script2.js"></script
المراجع الخارجية
:يمكن الرجوع إلى الكود الخارجي بثالث طرق مختلفة
مثال ✅ ⇣⇣
><script src="https://www.ab_habib_alhosiny.com/js/Habib_Script.js"></script
35 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
><script src="/js/Habib_Script.js"></script
مثال ✅ ⇣⇣
><script src="Habib_Script.js"></script
HTML .يمكنك قراءة المزيد حول مسارات الملفات في الفصل مسارات ملفات
دوال االخراج
36 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
✅ مثال ⇣⇣
<!DOCTYPE html>
<html>
<body>
<p id="Habib"></p>
<script>
document.getElementById("Habib").innerHTML = 5 + 6;
</script>
</body>
</html>
✅ مثال ⇣⇣
<!DOCTYPE html>
<html>
<body>
<script>
document.write(5 + 6);
</script>
37 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
></body
></html
مثال ✅ ⇣⇣
><!DOCTYPE html
><html
><body
></body
></html
مثال ✅ ⇣⇣
><!DOCTYPE html
><html
><body
><script
38 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
;)window.alert(5 + 6
></script
></body
></html
مثال ✅ ⇣⇣
><!DOCTYPE html
><html
><body
><script
;)alert(5 + 6
></script
></body
></html
مثال ✅ ⇣⇣
><!DOCTYPE html
><html
39 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
><body
><script
;)console.log(5 + 6
></script
></body
></html
.ال يمكنك الوصول إلى أجهزة اإلخراج من جافاسكربت اﻻ بمكتبات خاصة وهى كثيرة جدا وكلها تتنافس فى سرعة النفيذ
.الموجودة في المتصفح لطباعة محتوى النافذة الحالية)( window.printاالستثناء الوحيد هو أنه يمكنك استدعاء الطريقة
مثال ✅ ⇣⇣
><!DOCTYPE html
><html
><body
></body
></html
مثال ✅ ⇣⇣
let x, y, z; // Statement 1
;x = 5 // Statement 2
;y = 6 // Statement 3
z = x + y; // Statement 4
40 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كتاب الكافى فى جافاسكربت الجزء االول ابو حبيب الحسينى
مثال ✅ ⇣⇣
;"document.getElementById("Habib").innerHTML = "Abu Habib Al-Husini
أمثلة
let a, b, c; // Declare 3 variables
;a = 5 // Assign the value 5 to a
;b = 6 // Assign the value 6 to b
c = a + b; // Assign the sum of a and b to c
41 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
:عند الفصل بينها بفواصل منقوطة ،يُسمح بعدة عبارات في سطر واحد
;a = 5; b = 6; c = a + b
المسافات الفارغة
.يتجاهل جافاسكربت مسافات متعددة .يمكنك إضافةمسافة فارغة إلى الكود لجعله أكثر قابلية للقراءة
:األسطر التالية مكافئة
;let x = y + z
مثال ✅ ⇣⇣
= document.getElementById("Habib").innerHTML
;"!"Abu Habib Al-Hosini
42 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كتل اﻻكود
{...}.يمكن تجميع عبارات جافاسكربت ً
معا في كتل تعليمات برمجية ،داخل قوسين متعرجين
معا
.الغرض من كتل التعليمات البرمجية هو تحديد البيانات التي سيتم تنفيذها ً
معا في كتل هو وظائف جافاسكربت
:أحد األماكن التي ستجد فيها العبارات مجمعة ً
مثال ✅ ⇣⇣
{ )(function Husini
;"!document.getElementById("Habib1").innerHTML = "Abu Habib Al-Hosini
;"?document.getElementById("Habib2").innerHTML = "How are you
}
.في هذا الكتاب ،نستخدم مسافتين من المسافة البادئة لكتل التعليمات البرمجية
.سوف تتعلم المزيد عن الوظائف باذن اهلل تعالى في هذا الكتاب او فى الجزء الثانى
حمل كتاب المرجع الكامل للكلمات المحجوز فى جافاسكربت يحتوى على جدل جميع
.الكلمات المحجوزة لجافاسكربت مع الشرح
:فيما يلي قائمة ببعض الكلمات المحجوزة التي ستتعرف عليها في هذا الكتاب
43 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
try ينفذ معالجة األخطاء لكتلة من البيانات
.الكلمات المحجوزة لجافاسكربت هي كلمات محجوزة .ال يمكن استخدام الكلمات المحجوزة كأسماء للمتغيرات
;var x
;let y
;x = 5
;y = 6
;let z = x + y
التعامل مع القيم
:يحدد بناء جملة جافاسكربت نوعين من القيم
القيم الثابتة•
القيم المتغيرة•
.تسمى القيم الثابتة بالحرفيات
.تسمى القيم المتغيرة بالمتغيرات
44 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
التعامل مع الحروف
:أهم قواعد بناء الجملة للقيم الثابتة هي
:تتم كتابة األرقام مع أو بدون الكسور العشرية 1.
10.50
1001
:النصوص النصية عبارة عن نص مكتوب بين عالمتي اقتباس مزدوجتين أو مفردتين 2.
المتغيرات
.في لغة البرمجة ،يتم استخدام المتغيرات لتخزين قيم البيانات
.عن المتغيرات constلإلعالن letتستخدم جافاسكربت الكلمات المحجوزةvar
.يتم استخدام عالمة المساواة لتعيين قيم للمتغيرات
نظرا) لـ xفي هذا ال✅ مثال ⇣⇣ ،يتم تعريف
:القيمة x 6كمتغير .ثم يتم تعيين ( ً
;let x
;x = 6
المعامالت الحسابية
:تستخدم جافاسكربت العوامل الحسابية ( )/ * - +لحساب القيم
(5 + 6) * 10
45 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
:تستخدم جافاسكربت عامل التعيين ( =) لتعيين قيم للمتغيرات
;let x, y
;x = 5
;y = 6
التعبيرات
.التعبير عبارة عن مجموعة من القيم والمتغيرات وعوامل التشغيل ،والتي تحسب القيمة
.ويسمى الحساب التقييم
:على سبيل ال✅ مثال ⇣⇣ 10 * 5 ،يساوي 50
5 * 10
x * 10
الكلمات المحجوزة
.تُستخدم كلمات جافاسكربت المحجوزة لتحديد اإلجراءات التي سيتم تنفيذها
:المحجوزة المتصفح بإنشاء متغيرات letتخبر الكلمة
46 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
;let x, y
;x = 5 + 6
;y = x * 10
;var x, y
;x = 5 + 6
;y = x * 10
.سوف يؤدي إلى نفس النتيجة letأو varفي هذه األمثلة ،استخدام
.في هذا الكتاب letباذن اهلل تعالى varسوف تتعلم المزيد عنه
التعليقات
.ال يتم "تنفيذ" كافة عبارات جافاسكربت
.*/يتم التعامل مع الكود بعد الشرطة المائلة المزدوجة //أو */بينهما كتعليق
:يتم تجاهل التعليقات ،ولن يتم تنفيذها
المعرفات او الأسماء
.المعرفات هي أسماء جافاسكربت
47 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
.يتم استخدام المعرفات لتسمية المتغيرات والكلمات المحجوزة والوظائف
.قواعد األسماء القانونية هي نفسها في معظم لغات البرمجة
:يجب أن يبدأ اسم جافاسكربت بـ
ملحوظة
.ال يسمح باستخدام األرقام كحرف أول في األسماء
تكوين الجمل
:تاريخيًا ،استخدم المبرمجون طرقًا مختلفة لضم كلمات متعددة في اسم متغير واحد
:الواصالت
االسم األول ،اسم العائلة ،اسماء ،بين المدن يعنى اسم وصفى للشى يعبر عنة حتى ﻻ تتعب نفسك فى كتابة تعليقات كثيرة
.للكود
الشرطة السفلية :او ما تعرف باالندرسكول تستخدم لفصل اﻻسماء لتسهيل القراءة
48 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
.الواصالت غير مسموح بها في جافاسكربت .وهي محجوزة للطرح
:يميل مبرمجو جافاسكربت إلى استخدام حالة الجمل التي تبدأ بحرف صغير
.الحرف األول ،ﻻ يكون رقم االسم األخير ،مترك لك بحرية
ترميز الكتابة
Unicode .يستخدم جافاسكربت مجموعة أحرف
.جميع األحرف وعالمات الترقيم والرموز الموجودة في العالم )تقريبًا( Unicodeيغطي
انشاء التعليقات
.يمكن استخدام تعليقات جافاسكربت لشرح تعليمات جافاسكربت البرمجية ،ولجعلها أكثر قابلية للقراءة
أيضا استخدام تعليقات جافاسكربت لمنع التنفيذ عند اختبار التعليمات البرمجية البديلة
.يمكن ً
.سيتم تجاهل أي نص بين //السطر ونهايته بواسطة جافاسكربت (لن يتم تنفيذه)
:يستخدم هذا ال✅ مثال ⇣⇣ تعليقًا من سطر واحد قبل كل سطر من التعليمات البرمجية
مثال ✅ ⇣⇣
// Change heading:
;"document.getElementById("Habib1").innerHTML = "Abu Habib Al-Husini
49 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كتاب الكافى فى جافاسكربت الجزء االول ابو حبيب الحسينى
:يستخدم هذا ال✅ مثال ⇣⇣ تعليقًا من سطر واحد في نهاية كل سطر لشرح الكود
مثال ✅ ⇣⇣
let x = 5; // Declare x, give it the value of 5
let y = x + 2; // Declare y, give it the value of x + 2
مثال ✅ ⇣⇣
*/
The code below will change
"the heading with id = "Habib1
"and the Abo Habib Al-Husini with id = "Habib2
in my web page:
*/
;"document.getElementById("Habib1").innerHTML = "Abu Habib Al-Husini
;"document.getElementById("Habib2").innerHTML = " Abo Habib Al-Husini.
50 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
:يستخدم هذا ال✅ مثال ⇣⇣ //لمنع تنفيذ أحد أسطر التعليمات البرمجية
مثال ✅ ⇣⇣
;"//document.getElementById("Habib1").innerHTML = "Abu Habib Al-Husini
;"document.getElementById("Habib2").innerHTML = " Abo Habib Al-Husini.
:يستخدم هذا ال✅ مثال ⇣⇣ كتلة تعليق لمنع تنفيذ أسطر متعددة
مثال ✅ ⇣⇣
*/
;"document.getElementById("Habib1").innerHTML = "Abu Habib Al-Husini
;"document.getElementById("Habib2").innerHTML = " Abo Habib Al-Husini.
*/
متغيرات جافاسكربت
letاستخدام •
constاستخدام •
51 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
ما هي المتغيرات؟
.المتغيرات عبارة عن حاويات لتخزين البيانات (تخزين قيم البيانات)
:المحجوزة varهي متغيرات تم اإلعالن عنها باستخدام الكلمة zو و و yو ⇣⇣، xفي هذا ال✅ مثال
مثال ✅ ⇣⇣
;var x = 5
;var y = 6
;var z = x + y
مثال ✅ ⇣⇣
;let x = 5
;let y = 6
;let z = x + y
:هي متغيرات غير معلنة zو و و yو ⇣⇣، xفي هذا ال✅ مثال
مثال ✅ ⇣⇣
;x = 5
;y = 6
;z = x + y
من جميع األمثلة المذكورة أعاله ،يمكنك تخمين :نوع المتغير بمجرد تخزين القيم فى الذاكرة
يخزن القيمة •x 5
يخزن القيمة •y 6
يخزن القيمة •z 11
52 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
؟ متى استخدام الكلمةvar
دائما عن متغيرات جافاسكربت باستخدام
ً const.أو letأو varأعلن
.يتم استخدام الكلمة المحجوزة في جميع أكواد جافاسكربت من عام 1995إلى عام var2015
let.constتمت إضافة الكلمات المحجوزة والكلمات المحجوزة إلى جافاسكربت في عام 2015
var.إذا كنت تريد تشغيل التعليمات البرمجية في المتصفحات القديمة ،فيجب عليك استخدام
مثال ✅ ⇣⇣
;const price1 = 5
;const price2 = 6
;let total = price1 + price2
53 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
;let x = 5
;let y = 6
;let z = x + y
.من ال✅ مثال ⇣⇣ أعاله ،يمكنك تخمين أن اإلجمالي قد تم حسابه ليكون 11
ملحوظة
.المتغيرات هي حاويات لتخزين القيم
.أو أسماء وصفية أكثر (العمر ،المجموع ،الحجم اإلجمالي) )yو xمثل( يمكن أن تكون المعرفات أسماء قصيرة
ملحوظة
عامل التعيين
".في جافاسكربت ،عالمة المساواة ( =) هي عامل تشغيل "إسناد" ،وليس عامل تشغيل "يساوي
54 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
:وهذا يختلف عن الجبر .سيحددها المتصفح بعد تخمين نوغ البيانات او المتغيرات و ما يلي ال معنى له في الجبر
x=x+5
ملحوظة
مثال ✅ ⇣⇣
;const pi = 3.14
;"let hAbiB = "Abu Bakr Al-Siddiq
;'!let Text = 'Yes I am
;var hAbiB4
55 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
:أو
;let hAbiB4
;"hAbiB4 = "Hamza
.له " "Hamzaوتخصيص القيمة hAbiB4في ال✅ مثال ⇣⇣ أدناه ،قمنا بإنشاء متغير يسمى
id="Habib":باستخدام HTMLثم نقوم "بإخراج" القيمة داخل فقرة
مثال ✅ ⇣⇣
><p id="Habib"></p
><script
;"let hAbiB4 = "Hamza
;document.getElementById("Habib").innerHTML = hAbiB4
></script
ملحوظة
.جيد ان تقوم بــ لإلعالن عن جميع المتغيرات في بداية الكود لتسهيل الرجوع اليها مرة اخرى
56 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;let hAbiB = "Abu Bakr Al-Siddiq",hAbiB2= "Hamza", hAbiB3= 200
مثال ✅ ⇣⇣
let hAbiB = "Abu Bakr Al-Siddiq",
hAbiB4 = "Hamza",
;hAbiB3= 200
مثال ✅ ⇣⇣
let hAbiB2=undefined ;
;let hAbiB4
57 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;"var hAbiB4 = "Hamza
;var hAbiB4
ملحوظة
const.أو letال يمكنك إعادة تعريف متغير تم تعريفه بـ
:هذا لن يعمل
مثال ✅ ⇣⇣
;let x = 5 + 2 + 3
مثال ✅ ⇣⇣
;"😂😁😀 let x = "Habib" + " " + "Al Husini
أيضا
:جرب هذا ً
58 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;let x = "5" + 2 + 3
ملحوظة
رقما بين عالمتي اقتباس ،فسيتم التعامل مع بقية األرقام كنصوص ،وستكون متنص
.إذا وضعت ً
مثال ✅ ⇣⇣
;"let x = 2 + 3 + "5
مثال ✅ ⇣⇣
;"*_* let $ = "Abu Habib Al Husini
;let $$$ = 2
;let $Habib= 5
شائعا ج ًدا في جافاسكربت ،لكن غالبًا ما يستخدمها المبرمجون فى بى اتش بى ﻻنهم تعودو
ً استخدام عالمة الدوالر ليس
عليها وهى اسلوب احتراف لكونها مستخدمة فى مكتبات كثيرة بهذا الشكل يستخدمها المحترفون كاسم مستعار للوظيفة
.المحجوزة في مكتبة جيكويرى جافاسكربت
على سبيل ال✅ مثال ⇣⇣ ،يتم استخدام الوظيفة المحجوزة $لتحديد عناصر jQuery،في مكتبة جافاسكربت
p".تعني "تحديد جميع عناصر;)" jQuery $("pفي HTML.
59 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
جافاسكربت و االندرسكول
نظرا ألن جافاسكربت تتعامل مع الشرطة السفلية المعروفة باالندرسكول كحرف ،فإن المعرفات التي تحتوي على _ هي
ً
:أسماء متغيرات صالحة
مثال ✅ ⇣⇣
;"let _Name= "tariq ibn Ziad
;let _x = 2
;let _100 = 5
شائعا ج ًدا في جافاسكربت ،ولكن هناك تقليد بين المبرمجين المحترفين هو استخدامها كاسم
ً استخدام الشرطة السفلية ليس
".مستعار للمتغيرات "الخاصة (المخفية)
ملحوظة
60 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;"let x = "Abu Bakr Al-Siddiq
;let x = 0
مثال ✅ ⇣⇣
;"var x = "Abu Bakr Al-Siddiq
;var x = 0
مثال ✅ ⇣⇣
{
;let x = 2
}
// x can NOT be used here
.الكلمة المحجوزة أن تحتوي على نطاق حظر varال يمكن للمتغيرات المعلنة باستخدام
.يمكن الوصول إلى المتغيرات المعلنة داخل الكتلة { } من خارج الكتلة
مثال ✅ ⇣⇣
{
;var x = 2
}
// x CAN be used here
61 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
إعادة اإلعالن عن المتغيرات
.الكلمة المحجوزة إلى حدوث مشكالت varيمكن أن تؤدي إعادة اإلعالن عن متغير باستخدام
أيضا إلى إعادة تعريف المتغير خارج الكتلة
:إعادة تعريف المتغير داخل الكتلة سيؤدي ً
مثال ✅ ⇣⇣
;var x = 10
// Here x is 10
{
;var x = 2
// Here x is 2
}
.الكلمة المحجوزة إلى حل هذه المشكلة letيمكن أن تؤدي إعادة تعريف المتغير باستخدام
:إعادة تعريف المتغير داخل الكتلة لن يعيد تعريف المتغير خارج الكتلة
مثال ✅ ⇣⇣
;let x = 10
// Here x is 10
{
;let x = 2
// Here x is 2
}
62 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;var x = 2
// Now x is 2
;var x = 3
// Now x is 3
مثال ✅ ⇣⇣
var x = 2; // Allowed
let x = 3; // Not allowed
{
let x = 2; // Allowed
let x = 3; // Not allowed
}
{
let x = 2; // Allowed
var x = 3; // Not allowed
}
مثال ✅ ⇣⇣
let x = 2; // Allowed
{
let x = 3; // Allowed
}
{
let x = 4; // Allowed
}
63 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كيف استخدام المتغيرات قبل االعالن عنها
ال انصح بستخدام هذة الطريقة النها تحتم عليك اعطاء امر لجافاسكربت بقراءة الصفحة كاملة قل التنفيذ مما يتيح لك
استخدام المتغيرات قبل االعالن عنها وهذة الطريقة تؤدى الى ارهاق البيروسيسور اقراء كتاب تعلم برمجة جيكويرى
الجزء الثانى لتعرف المذيد عن التحكم فى قرائة صفحات الويب والتحكم فى البيانات بمكتبة جيكويرى
مثال ✅ ⇣⇣
:البأس
;"hAbiB4 = "Hamza
;var hAbiB4
إذا كنت تريد معرفة المزيد عن الرفع ،فقراء كتاب جافاسكربت هوستنج .ا
letملحوظة ال تفعل هذا مع ليت
:المتغير قبل اإلعالن عنه سيؤدي الى خط مع ا letاال تستخدم :
مثال ✅ ⇣⇣
;"hAbiB4 = "Habib
;"let hAbiB4 = "Hamza
64 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
.ال يمكن إعادة تعيين المتغيرات المحددةconst
مثال ✅ ⇣⇣
;const PI = 3.141592653589793
PI = 3.14; // This will give an error
PI = PI + 10; // This will also give an error
صحيح
;const PI = 3.14159265359
غير صحيح
;const PI
;PI = 3.14159265359
65 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مصفوفة جديدة •
كائن جديد •
وظيفة جديدة •
جديد • RegExp
الكائنات والمصفوفات
.مضللة بعض الشيء constالكلمة المحجوزة
مثال ✅ ⇣⇣
// You can create a constant array:
;]"const HaBiB= ["Habib", "Hamza", "Abu Habib Al-Husini
66 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;]"const HaBiB= ["Habib", "Hamza", "Abu Habib Al-Husini
مثال ✅ ⇣⇣
// You can create a const object:
;}"const $_Habib= {use:"Mohamed", age:"20", color:"white
مثال ✅ ⇣⇣
;}"const $_Habib= {use:"Mohamed", age:"20", color:"white
67 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;const x = 10
// Here x is 10
{
;const x = 2
// Here x is 2
}
مثال ✅ ⇣⇣
var x = 2; // Allowed
var x = 3; // Allowed
;x = 4 // Allowed
:إلى نفس النطاق constمتغير letأو varال يُسمح بإعادة اإلعالن عن موجود
مثال ✅ ⇣⇣
var x = 2; // Allowed
const x = 2; // Not allowed
{
let x = 2; // Allowed
const x = 2; // Not allowed
}
{
const x = 2; // Allowed
const x = 2; // Not allowed
}
68 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
:في نفس النطاق const،ال يُسمح بإعادة تعيين متغير موجود
مثال ✅ ⇣⇣
const x = 2; // Allowed
;x = 2 // Not allowed
;var x = 2 // Not allowed
;let x = 2 // Not allowed
const x = 2; // Not allowed
{
const x = 2; // Allowed
;x = 2 // Not allowed
var x = 2; // Not allowed
let x = 2; // Not allowed
const x = 2; // Not allowed
}
:يُسمح بإعادة تعريف متغير باستخدام ،في نطاق آخر ،أو في كتلة أخرىconst
مثال ✅ ⇣⇣
;const x = 2 // Allowed
{
const x = 3; // Allowed
}
{
const x = 4; // Allowed
}
مثال ✅ ⇣⇣
:البأس
69 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
;"hAbiB4 = "Hamza
;var hAbiB4
.إذا كنت تريد معرفة المزيد عن الرفع ،فقراء كتاب المرجع الكامل للجافسكربت
أيضا رفع المتغيرات المعرفة
.بـ إلى األعلى ،ولكن ال تتم تهيئتها constيتم ً
ReferenceError:المتغير قبل اإلعالن عنه سيؤدي إلى constالمعنى :استخدام
مثال ✅ ⇣⇣
;)alert (hAbiB4
;"const hAbiB4 = "Hamza
أمثلة
;let x = 10
70 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
إضافة
;let x = 5
;let y = 2
;let z = x + y
ضرب
;let x = 5
;let y = 2
;let z = x * y
71 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
Operator وصف
+ إضافة
- الطرح
* عمليه الضرب
** ) (ES2016األسي
/ قسم
% المعامل (باقي القسمة)
++ زيادةراتب
-- إنقاص
تكليف
;let x = 10
;x += 5
72 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
إضافة ودمج النصوص فى جافاسكربت
أيضا استخدام عامل +التشغيل إلضافة (تسلسل) النصوص
.يمكن ً
مثال ✅ ⇣⇣
;"let text1 = "Habib
;"😂😁😀 let text2 = "Al Husini
;let text3 = text1 + " " + text2
مثال ✅ ⇣⇣
;" let text1 = "What a very
;"text1 += "nice day
73 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
إضافة نصوص وأرقام
:تؤدي إضافة رقمين إلى إرجاع المجموع ،لكن إضافة رقم ونص سيؤدي إلى إرجاع نص
مثال ✅ ⇣⇣
;let x = 5 + 5
;let y = "5" + 5
;let z = "Easy-to" + 5
10
55
Easy-to5
معامالت المقارنة
المعامل وصف
== يساوي
=== قيمة متساوية ونوع متساو
=! غير متساوي
==! متساو
ٍ قيمة غير متساوية أو نوع غير
> أكثر من
< أقل من
=> أكبر من أو يساوي
=< اقل او يساوي
? عامل ثالثي
74 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
JS .تم وصف عوامل المقارنة بشكل كامل في فصل مقارنات
معامالت االنواع
JS .تم وصف عوامل تشغيل الكتابة بشكل كامل في فصل تحويل نوع
معامالت Bitwise
.يعمل مشغلو البت على أرقام 32بت
.يتم تحويل أي معامل رقمي في العملية إلى رقم 32بت .يتم تحويل النتيجة مرة أخرى إلى رقم جافاسكربت
Operato
وصف مثال Same as Result Decimal
r
& و 5&1 0101 & 0001 0001 1
| أو 5|1 0101 | 0001 0101 5
~ ال ~5 ~0101 1010 10
^ XOR 5^1 0101 ^ 0001 0100 4
<< التحول األيسر 5 << 1 0101 << 1 1010 10
75 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
>> النقلة الصحيحة 5 >> 1 0101 >> 1 0010 2
التحول الصحيح
>>> 5 >>> 1 0101 >>> 1 0010 2
غير الموقعة
المعامالت الحسابية
Operator وصف
+ إضافة
- الطرح
* عمليه الضرب
** ) (ES2016األسي
/ قسم
% المعامل (الباقي)
++ زيادةراتب
-- إنقاص
عامل ثالثي
76 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;let x = 100 + 50
:أو المتغيرات
مثال ✅ ⇣⇣
;let x = a + b
:أو التعبيرات
مثال ✅ ⇣⇣
;let x = (100 + 50) * a
ما هى المعامالت
.تسمى األرقام (في العمليات الحسابية) بالمعامالت
.يتم تعريف العملية (التي سيتم تنفيذها بين المعاملين) بواسطة عامل التشغيل
مثال ✅ ⇣⇣
;let x = 5
;let y = 2
;let z = x + y
77 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كتاب الكافى فى جافاسكربت الجزء االول ابو حبيب الحسينى
الطرح
.يقوم عامل الطرح ( )-بطرح األرقام
مثال ✅ ⇣⇣
;let x = 5
;let y = 2
;let z = x - y
الضرب
.عامل الضرب ( *) يقوم بضرب األرقام
مثال ✅ ⇣⇣
;let x = 5
;let y = 2
;let z = x * y
القسمة
.عامل القسمة ( )/يقسم األرقام
مثال ✅ ⇣⇣
;let x = 5
;let y = 2
;let z = x / y
78 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
بقية القسمة
.يقوم عامل المعامل ( )%بإرجاع باقي القسمة
مثال ✅ ⇣⇣
;let x = 5
;let y = 2
;let z = x % y
مثال ✅ ⇣⇣
;let x = 5
;x++
;let z = x
الطرح
.عامل التناقص ( )--ينقص األرقام
79 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;let x = 5
;x--
;let z = x
األس
.يقوم عامل األس ( **) برفع المعامل األول إلى أس المعامل الثاني
مثال ✅ ⇣⇣
;let x = 5
;let z = x ** 2
مثال ✅ ⇣⇣
;let x = 5
;)let z = Math.pow(x,2
مثال ✅ ⇣⇣
;let x = 100 + 50 * 3
هل نتيجة ال✅ مثال ⇣⇣ أعاله هي نفسها 3*150أم هي نفسها 150 + 100؟
80 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
هل يتم الجمع أم الضرب أوال؟
.كما هو الحال في الرياضيات المدرسية التقليدية ،يتم الضرب أوال
( ).+-الضرب ( *) والقسمة ( ) لهما أسبقية /أعلى من الجمع ( ) والطرح
مثال ✅ ⇣⇣
;let x = (100 + 50) * 3
:عندما يكون للعديد من العمليات نفس األسبقية (مثل الجمع والطرح أو الضرب والقسمة) ،يتم حسابها من اليسار إلى اليمين
أمثلة
;let x = 100 + 50 - 3
ملحوظة
:للحصول على قائمة كاملة بقيم أسبقية عامل التشغيل ،انتقل إلى
81 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مشغالت التعيين فى جافاسكربت
.يقوم مشغلو التعيين بتعيين قيم لمتغيرات جافاسكربت
Operator مثال Same As
= x=y x=y
=+ x += y x=x+y
=- x -= y x=x-y
=* x *= y x=x*y
=/ x /= y x=x/y
=% x %= y x=x%y
=** x **= y x = x ** y
Bitwiseمشغلي تعيين
Operator مثال Same As
=& x &= y x=x&y
=^ x ^= y x=x^y
=| x |= y x=x|y
= المشغل
82 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
أمثلة مهمة بسيطة
;let x = 10
;let x = 10 + y
= +المشغل
.يضيف عامل تعيين اإلضافة قيمة إلى متغير
المشغل =-
.يقوم عامل تعيين الطرح بطرح قيمة من متغير
83 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
المشغل =*
.يقوم عامل تعيين الضرب بضرب متغير
المشغل =**
.يقوم عامل التعيين األسي برفع متغير إلى قوة المعامل
المشغل =/
.يقوم عامل تخصيص القسم بتقسيم المتغير
المشغل =%
.يقوم عامل تعيين الباقيمن القسمة بتعيين الباقي لمتغير
84 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
الباقي ✅ مثال ⇣⇣ لتعيين
;let x = 10
;x %= 5
=<< العامل
.األيسر بإزاحة متغير Shiftيقوم عامل تعيين
=>> المشغل
.األيمن بإزاحة متغير (الموقّع) Shiftيقوم عامل تعيين
المشغل =>>>
.يقوم عامل تعيين التحول األيمن غير الموقع بإزاحة متغير (غير موقع) إلى اليمين
85 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
الموقع ✅ مثال ⇣⇣ لتعيين التحول األيمن غير
;let x = -100
;x >>>= 5
المشغل =&
.على معاملين ويقوم بتعيين النتيجة للمتغير ANDبإجراء عملية Bitwise AND Assignmentيقوم عامل
=| المشغل
.على معاملين ويقوم بتعيين النتيجة للمتغير bitwise ORبإجراء عملية Bitwise OR Assignmentيقوم عامل
=^ المشغل
.على معاملين ويقوم بتعيين النتيجة للمتغير XORبإجراء عملية Bitwise XORيقوم عامل تعيين
86 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
لتعيين ✅ Bitwise XORمثال ⇣⇣
;let x = 10
;x ^= 5
=&& المشغل
.بين قيمتين ANDيتم استخدام عامل التشغيل المنطقي
.إذا كانت القيمة األولى صحيحة ،يتم تعيين القيمة الثانية
=|| المشغل
.بين قيمتين ORيتم استخدام عامل التعيين المنطقي
.إذا كانت القيمة األولى خاطئة ،يتم تعيين القيمة الثانية
87 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
المشغل =??
.بين قيمتين Nullishيتم استخدام عامل تعيين الدمج
.إذا كانت القيمة األولى غير محددة أو فارغة ،فسيتم تعيين القيمة الثانية
نص 1.
رقم 2.
رقم كبير 3.
منطقي 4.
غير محدد 5.
فارغ 5.
رمز 7.
كائن 8.
كائن 1.
مصفوفة 2.
تاريخ 3.
88 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
أمثلة على انشاء انواع من البيانات العامة
// Num:
;let length = 16
;let weight = 7.5
// Strings:
;"let color = "Yellow
;"let lastName = "tariq ibn Ziad
// Booleans
;let x = true
;let y = false
// Object:
;}"😂😁😀 const hAbiB = {firstName:"Habib", lastName:"Al Husini
ملحوظة
يمكن لمتغير جافاسكربت االحتفاظ بأي نوع من البيانات .فى المصفوفة وغير المصفوفة والتحول السريع
;"let x = 16 + "Hamza
هل من المنطقي إضافة "حمزا" إلى الستة عشر؟ هل سينتج خطأ أم سينتج نتيجة؟
89 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
ملحوظة
.عند إضافة رقم ونص ،ستتعامل جافاسكربت مع الرقم كنص
مثال ✅ ⇣⇣
;"let x = 16 + "Hamza
مثال ✅ ⇣⇣
;let x = "Hamza" + 16
:تقوم جافاسكربت بتقييم التعبيرات من اليسار إلى اليمين .تسلسالت مختلفة يمكن أن تنتج نتائج مختلفة
;"let x = 16 + 4 + "Hamza
:نتيجة
20Hamza
:نتيجة
90 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
Hamza164
"Hamza".في ال✅ مثال ⇣⇣ األول ،تتعامل جافاسكربت مع الرقمين 16و 4كأرقام ،حتى تصل إلى
.في ال✅ مثال ⇣⇣ الثاني ،بما أن المعامل األول عبارة عن نص ،فسيتم التعامل مع جميع المعامالت كنصوص
مثال ✅ ⇣⇣
;let x // Now x is undefined
;x = 5 // Now x is a Number
x = "Habib"; // Now x is a String
نصوص جافاسكربت
"Abu Bakr Al-Siddiq".عبارة عن سلسة نصية من األحرف مثل
:تتم كتابة النصوص مع عالمات االقتباس .يمكنك استخدام عالمات االقتباس المفردة أو المزدوجة
مثال ✅ ⇣⇣
// Using double quotes:
;" let hAbiB41 = "Hamza
:يمكنك استخدام عالمات االقتباس داخل النص ،طالما أنها ال تتطابق مع عالمات االقتباس المحيطة بالنص
91 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
// Single quote inside double quotes:
;"let Text1 = "It's alright
.سوف تتعلم المزيد عن النصوص باذن اهلل تعالى في هذا الكتاب او فى الجزء الثانى
األرقام فى جافاسكربت
.يتم تخزين جميع أرقام جافاسكربت كأرقام عشرية (نقطة عائمة)
:يمكن كتابة األرقام مع أو بدون الكسور العشرية
مثال ✅ ⇣⇣
// With decimals:
;let x1 = 34.00
األسية فى الجبر
يمكن كتابة األعداد الكبيرة ج ًدا أو الصغيرة ج ًدا بالترميز العلمي (األسي) او استخدام جميع ادوات الجبر لن نتعمق كثيرا
فى ادوات الجبر داخل الجافاسكربت ﻻنها تحتاج الى كتاب خاص بها ولكن شاهد هذا المثال البسيط فى استخدام اﻻس
:العددى
92 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
let y = 123e5; // 12300000
let z = 123e-5; // 0.00123
انتظر كتاب خاص بادوات الجبر داخل الجافاسكربت وانشاء العمليات والمعادﻻات المعقدة باذن اهلل تعالى
ملحوظة
:تحتوي معظم لغات البرمجة على العديد من أنواع األرقام
ملحوظة
دائما نوع واحد :فى االرقام لن نستخدم غيرة ال تشغل نفسك بهذة االنقسامات واالنواع الكثيرة فهى لها
ً جافاسكربت هي
استخدامتها فى الجبر والمعادالات الدقيقة فقط
93 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
نوع البيانات BigInt
هذا النوع من البيانات ساشرحة من باب العلم فقط فهو نادر االستخدام النة مخصص للحسابات الفلكية الكبيرة داخل
يمكن استخدامه لتخزين قيم عددية كبيرة ج ًدا للحسابات جافاسكربت وهو نوع بيانات جديد تم اصدارة فى ()2020
عادي .الفلكية وهذا يحتاج الى اجهزة كمبيوتر قوية جدا يطلق عليها وركستيشن بحيث ال يمكن تمثيلها برقم جافاسكربت
بت .يتم تخزين جميع أرقام جافاسكربت بتنسيق الفاصلة العشرية 64
مثال ✅ ⇣⇣
;)"let x = BigInt("123456789012345678901234567890
مثال ✅ ⇣⇣
;let x = 5
;let y = 5
;let z = 6
)(x == y // Returns true
)(x == z // Returns false
94 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
المصفوفات فى جافاسكربت
.تتم كتابة مصفوقات جافاسكربت بين قوسين مربعين
.يتم فصل عناصر المصفوفة بفواصل
:تحتوي على ثالثة عناصر (أسماء ) HaBiB،يعلن االكواد التالية بنشا مصفوفة تسمى
مثال ✅ ⇣⇣
;]"const HaBiB= ["Habib", "Hamza", "Abu Habib Al-Husini
.تعتمد فهارس المصفوفات على الصفر ،مما يعني أن العنصر األول هو [ ،]0والثاني هو [ ،]1وهكذا
.سوف تتعلم المزيد عن المصفوفات باذن اهلل تعالى في هذا الكتاب او فى الجزء الثانى
الكائنات فى جافاسكربت
{}.تتم كتابة كائنات جافاسكربت باستخدام األقواس المتعرجة
.تتم كتابة خصائص الكائن على هيئة أزواج االسم :القيمة ،مفصولة بفواصل
مثال ✅ ⇣⇣
const hAbiB = {firstName:"Habib", lastName:"Al Husini 😀😁😂", age:70,
;}"😂😁😀eyeColor:"blue
.الكائن (الشخص) في ال✅ مثال ⇣⇣ أعاله له 4خصائص :االسم األول ،االسم األخير ،العمر ،ولون العين
.سوف تتعلم المزيد عن الكائنات باذن اهلل تعالى في هذا الكتاب او فى الجزء الثانى
95 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كيف معرفة االنواع للبيانات
.عامل تشغيل جافاسكربت للعثور على نوع متغير جافاسكربت typeofيمكنك استخدام
:التشغيل بإرجاع نوع المتغير أو التعبير typeofيقوم عامل
مثال ✅ ⇣⇣
"" typeof "// Returns "string
"typeof "Habib "// Returns "string
"typeof "Abu Bakr Al-Siddiq" // Returns "string
مثال ✅ ⇣⇣
typeof 0 "// Returns "number
typeof 314 "// Returns "number
typeof 3.14 "// Returns "number
)typeof (3 "// Returns "number
)typeof (3 + 4 "// Returns "number
.باذن اهلل تعالى في هذا الكتاب او فى الجزء الثانى typeofسوف تتعلم المزيد من االمثلة عن
مثال ✅ ⇣⇣
let $_Habib; // Value is undefined, type is undefined
96 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
$_Habib= undefined; // Value is undefined, type is undefined
القيم الفارغة
undefined.القيمة الفارغة ليس لها عالقة بـ
.تحتوي النص الفارغة على قيمة قانونية ونوع
مثال ✅ ⇣⇣
"let $_Habib= ""; // The value is "", the typeof is "string
الوظائف فى جافاسكربت
.وظيفة جافاسكربت عبارة عن كتلة من التعليمات البرمجية مصممة ألداء مهمة معينة
.يتم تنفيذ وظيفة جافاسكربت عندما يستدعيها "شيء ما" (يستدعيها)
مثال ✅ ⇣⇣
// Function to compute the product of p1 and p2
{ )function Husini(p1, p2
;return p1 * p2
}
.يمكن أن تحتوي أسماء الوظائف على أحرف وأرقام وشرطات سفلية وعالمات الدوالر (نفس قواعد المتغيرات)
97 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
:قد تتضمن األقواس أسماء البرمترات مفصولة بفواصل
) ( parameter1,parameter2,...
}{ :يتم وضع الكود الذي سيتم تنفيذه بواسطة الوظيفة داخل قوسين متعرجين
.إذا تم استدعاء الوظيفة من عبارة ،فسوف تعود جافاسكربت لتنفيذ التعليمات البرمجية بعد عبارة االستدعاء
":غالبًا ما تحسب الوظائف قيمة اإلرجاع .يتم "إرجاع" القيمة المرجعة إلى "المتصل
مثال ✅ ⇣⇣
98 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
let x = Husini(4, 3); // Function is called, return value will end up in x
12
مثال ✅ ⇣⇣
{ )function toCelsius(fahrenheit
;)return (5/9) * (fahrenheit-32
}
;)document.getElementById("Habib").innerHTML = toCelsius(77
.سيؤدي الوصول إلى وظيفة بدون إلى إرجاع كائن الوظيفة بدال ً من نتيجة الوظيفة
99 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
{ )function toCelsius(fahrenheit
;)return (5/9) * (fahrenheit-32
}
;document.getElementById("Habib").innerHTML = toCelsius
مثال ✅ ⇣⇣
;)let x = toCelsius(77
;"let text = "The temperature is " + x + " Celsius
.سوف تتعلم الكثير عن الوظائف باذن اهلل تعالى في هذا الكتاب او فى الجزء الثانى
100 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
// code here can NOT use hAbiB4
{ )(function Husini
;"let hAbiB4 = "Hamza
// code here CAN use hAbiB4
}
وبما أنه يتم التعرف على المتغيرات المحلية فقط داخل وظائفها ،فيمكن استخدام المتغيرات التي تحمل االسم نفسه في
.وظائف مختلفة
.يتم إنشاء المتغيرات المحلية عند بدء تشغيل الدالة ،ويتم حذفها عند اكتمال الدالة
كائنات جافاسكربت
.لقد تعلمت بالفعل أن متغيرات جافاسكربت عبارة عن حاويات لقيم البيانات
$_Habib:لمتغير اسمه ) (Mohamedيعين هذا الكود قيمة بسيطة
.الكائنات هي متغيرات أيضا .لكن الكائنات يمكن أن تحتوي على العديد من القيم
$_Habib:لمتغير اسمه ) (Mohamed، 500، Whiteيعين هذا الكود العديد من القيم
.تتم كتابة القيم على هيئة أزواج االسم :القيمة (االسم والقيمة مفصولة بنقطتين)
: JS Const .مع الكائنات في الفصل constتعرف على المزيد حول استخدام
101 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
تعريف الكائن
:يمكنك تعريف (وإنشاء) كائن جافاسكربت بكائن حرفي
مثال ✅ ⇣⇣
const hAbiB = {firstName:"Habib", lastName:"Al Husini 😀😁😂", age:50,
;}"eyeColor:"blue
:المسافات وفواصل األسطر ليست مهمة .يمكن أن يمتد تعريف الكائن على عدة أسطر
مثال ✅ ⇣⇣
{ = const hAbiB
firstName: "Habib",
lastName: "Al Husini 😀😁😂",
age: 50,
"eyeColor: "blue
;}
خصائص الكائنات
الخصائص هى عبارة مجموعة من القيم تصف الكائن
objectName.propertyName
أو
]"objectName["propertyName
102 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
✅1 مثال ⇣⇣
;hAbiB.lastName
طرق الكائن
أيضا على طرق
.يمكن أن تحتوي الكائنات ً
.األساليب هي اإلجراءات التي يمكن تنفيذها على الكائنات
.يتم تخزين األساليب في الخصائص كتعريفات الوظيفة
مثال ✅ ⇣⇣
{ = const hAbiB
firstName: "Habib",
lastName : "Al Husini 😀😁😂",
id : 5566,
{ )(fullName : function
;return this.firstName + " " + this.lastName
}
;}
103 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
.يعني خاصية االسم األول للشخص IE this.firstName
ملحوظة
this.ليس متغيرا .إنها كلمة محجوزة .ال يمكنك تغيير قيمةthis
:أنظر أيضا
اقراء قسم الكالسات فى كتاب الكافى فى php
.الوظيفة" fullNameهو كائن الشخص الذي "يمتلك، thisفي ال✅ مثال ⇣⇣ أعاله
.خاصية هذا الكائن firstNameيعني، this.firstNameوبعبارة أخرى
.في كتاب المرجع الكامل لجافاسكربت thisتعرف على المزيد حول الكلمة
)(objectName.methodName
104 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;)(name = hAbiB.fullName
ملحوظة
:إذا قمت بالوصول إلى طريقة بدون األقواس () ،فسوف تُرجع تعريف الوظيفة
مثال ✅ ⇣⇣
;name = hAbiB.fullName
:يتم إنشاء المتغير ككائن " new"،عندما يتم اإلعالن عن متغير جافاسكربت باستخدام الكلمة المحجوزة
.األشياء .إنها تعقد التعليمات البرمجية وتبطئ سرعة التنفيذ Booleanو و Numberو Stringتجنب
.سوف تتعلم المزيد عن الكائنات باذن اهلل تعالى في هذا الكتاب او فى الجزء الثانى
أحداث جافاسكربت
105 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
HTMLأحداث
.يمكن أن يكون حدث اى شيًئا يفعله المتصفح ،أو اى شيًئا يفعله المستخدم
HTML:فيما يلي بعض األمثلة على أحداث
HTMLتم االنتهاء من تحميل صفحة ويب•
HTMLتم تغيير حقل إدخال•
HTMLتم النقر على زر•
.في كثير من األحيان ،عندما تحدث األحداث ،قد ترغب في القيام بشيء ما
.تتيح لك جافاسكربت تنفيذ التعليمات البرمجية عند اكتشاف األحداث
HTML.بإضافة سمات معالج األحداث ،مع كود جافاسكربت ،إلى عناصر HTMLيسمح
:مع عالمات االقتباس المفردة
مثال ✅ ⇣⇣
<button onclick="document.getElementById('Habib').innerHTML = Date()">The time
>is?</button
= "Habib".في ال✅ مثال ⇣⇣ أعاله ،يقوم كود جافاسكربت بتغيير محتوى العنصر بالمعرف
this.innerHTML):باستخدام( في ال✅ مثال ⇣⇣ التالي ،يغير الكود محتوى العنصر الخاص به
مثال ✅ ⇣⇣
><button onclick="this.innerHTML = Date()">The time is?</button
106 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كتاب الكافى فى جافاسكربت الجزء االول ابو حبيب الحسينى
مثال ✅ ⇣⇣
><button onclick="displayDate()">The time is?</button
Event وصف
onchange HTMLتم تغيير عنصر
onclick HTMLيقوم المستخدم بالنقر فوق عنصر
onmouseover HTMLيقوم المستخدم بتحريك الماوس فوق عنصر
onmouseout HTMLيقوم المستخدم بتحريك الماوس بعي ًدا عن عنصر
onkeydown يقوم المستخدم بالضغط على مفتاح لوحة المفاتيح
onload لقد انتهى المتصفح من تحميل الصفحة
107 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
HTMLيمكنك تعيين وظائف معالج األحداث لعناصر•
يمكنك منع إرسال األحداث أو معالجتها•
...و اكثر•
التعامل مع النصوص
.نص جافاسكربت عبارة عن صفر أو أكثر من األحرف المكتوبة داخل عالمات االقتباس
مثال ✅ ⇣⇣
;"let text = "Abu Bakr Al-Siddiq
مثال ✅ ⇣⇣
let hAbiB41 = "Hamza "; // Double quotes
let hAbiB42 = 'Hamza '; // Single quotes
:يمكنك استخدام عالمات االقتباس داخل النص ،طالما أنها ال تتطابق مع عالمات االقتباس المحيطة بالنص
مثال ✅ ⇣⇣
;"let Text1 = "It's alright
;"'let Text2 = "He is called 'habib
;'"let Text3 = 'He is called "habib
108 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كيف معرفة عدد حروف النصوص
length:للعثور على طول نص ،استخدم الخاصية المضمنة
مثال ✅ ⇣⇣
;"let text = "ABCDEFGHIJKLMNOPQRSTUVWXYZ
;let length = text.length
;"let text = "We are the so-called "Vikings" from the north.
مثال ✅ ⇣⇣
;"let text = "We are the so-called \"Vikings\" from the north.
مثال ✅ ⇣⇣
;'let text= 'It\'s alright.
109 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
:يُدرج التسلسل \\ شرطة مائلة عكسية في نص
مثال ✅ ⇣⇣
;"let text = "The character \\ is called backslash.
Code نتيجة
\b مسافة للخلف
\f نموذج اضافة
\n خط جديد
\r إرجاع
\t جدول أفقي
\v جدول عمودي
تم تصميم أحرف االستثناء الستة المذكورة أعاله في األصل للتحكم في اآلالت الكاتبة وأجهزة المبرقة وأجهزة الفاكس .أنها ال
HTML.معنى لها في
:إذا كانت عبارة جافاسكربت ال تتناسب مع سطر واحد ،فإن أفضل مكان لفصلها هو بعد عامل التشغيل
مثال ✅ ⇣⇣
= document.getElementById("Habib").innerHTML
;"!"Abu Habib Al-Hosini
أيضا تقسيم سطر التعليمات البرمجية داخل نصوص ة باستخدام شرطة مائلة عكسية واحدة
:يمكنك ً
110 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
\ document.getElementById("Habib").innerHTML = "Easy-to
;"!HABIB
مثال ✅ ⇣⇣
document.getElementById("Habib").innerHTML = "Easy-to " +
;"!"HABIB
مثال ✅ ⇣⇣
\ = document.getElementById("Habib").innerHTML
;"!"Abu Habib Al-Hosini
;"let x = "Habib
111 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;"let x = "Habib
;)"let y = new String("Habib
.المحجوزة على تعقيد التعليمات البرمجية وإبطاء سرعة التنفيذ newتعمل الكلمة
;"let x = "Habib
;)"let y = new String("Habib
;"let x = "Habib
;)"let y = new String("Habib
112 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كتاب الكافى فى جافاسكربت الجزء االول ابو حبيب الحسينى
دوال النصوص
ملحوظة
اذا اردة الحصول على شرح كامل لدوال جافاسكربت اقرا كتاب المرجع الكامل فى الجافاسكربت
String length
)(String trim
)(String slice
)(String trimStart
)(String substring
)(String trimEnd
)(String substr
)(String padStart
)(String replace
)(String padEnd
)(String replaceAll
)(String charAt
)(String toUpperCase
)(String charCodeAt
)(String toLowerCase
)(String split
)(String concat
113 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
.يتم تناول طرق البحث عن النص في الفصل التالي
الدالة length
:بإرجاع طول النص lengthتقوم الخاصية
مثال ✅ ⇣⇣
;"let text = "ABCDEFGHIJKLMNOPQRSTUVWXYZ
;let length = text.length
مثال ✅ ⇣⇣
114 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
ملحوظة
.جافاسكربت تحسب المواضع من الصفر
أمثلة
:إذا قمت بحذف المعلمة الثانية ،فسوف تقوم الطريقة بتقسيم بقية النص
115 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
تابع طرق تقطيغ النصوص
slice().مشابه ل)(substring
substring().الفرق هو أن قيم البداية والنهاية األقل من 0يتم التعامل معها على أنها 0في
مثال ✅ ⇣⇣
;"let str = "Abu Habib, Al-Husini, Hamza
;)let part = str.substring(7, 13
دالة Substr
slice().مشابه ل)(substr
.الفرق هو أن المعلمة الثانية تحدد طول الجزء المستخرج
مثال ✅ ⇣⇣
;"let str = "Abu Habib, Al-Husini, Hamza
;)let part = str.substr(7, 6
مثال ✅ ⇣⇣
;"let str = "Abu Habib, Al-Husini, Hamza
;)let part = str.substr(7
.إذا كانت المعلمة األولى سلبية ،يتم حساب الموضع من نهاية النص
116 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;"let str = "Abu Habib, Al-Husini, Hamza
;)let part = str.substr(-4
مثال ✅ ⇣⇣
;"!let text = "Please visit Hamza
;)" let newText = text.replace("Hamza", "Abu Habib alhosiny
ملحوظة1
.ال تغير طريقة النص التي يتم استدعاؤها عليها)(replace
مثال ✅ ⇣⇣
;" !let text = "Please visit Hamza and Omar
;)" let newText = text.replace("Hamza", "Abu Habib alhosiny
117 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
سيتم استبدال حمزا االولى فقط
):باألحرف الكبيرة( Hamzaاألسلوب حساس لحالة األحرف .لن تنجح كتابة)(، replaceبشكل افتراضي
مثال ✅ ⇣⇣
;"!let text = "Please visit hamza
;)" let newText = text.replace("Hamza", "Abu Habib alhosiny
مثال ✅ ⇣⇣
;"!let text = "Please visit Hamza
;)" let newText = text.replace(/Hamza/i, "Abu Habib alhosiny
ملحوظة2
.تتم كتابة التعبيرات العادية دون عالمات االقتباس
مثال ✅ ⇣⇣
;"!let text = "Please visit Hamza and Hamza
;)" let newText = text.replace(/Hamza/g, "Abu Habib alhosiny
118 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
ملحوظة3
.سوف تتعلم الكثير عن دوال النصوص والتحكم الكامل في ;كتاب المرجع الكامل لدوال جافاسكربت
دالة)(replaceAll
replaceAll():في عام ،2021قدمت جافاسكربت طريقة لستبدال جميع التطابقات فى النص
مثال ✅ ⇣⇣
;)"text = text.replaceAll("Habib","Mahmoud
;)"text = text.replaceAll("Habib","Mahmoud
مثال ✅ ⇣⇣
;)"text = text.replaceAll(/Habib/g,"Mahmoud
;)"text = text.replaceAll(/Habib/g,"Mahmoud
ملحوظة4
.ال يعمل في إنترنت إكسبلورر)(replaceAll
119 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
دالة)( toUpperCase
مثال ✅ ⇣⇣
;"!*_* let text1 = "Abu Habib Al Husini
*_* let text2 = text1.toUpperCase(); // ABU HABIB AL HUSINI
دالة)(toLowerCase
مثال ✅ ⇣⇣
;"!*_* let text1 = "ABU HABIB AL HUSINI // String
let text2 = text1.toLowerCase(); // text2 is text1 converted to lower
الدالة concat
:دمج النصوص والمتعيرات والبيات نصين أو أكثر)(concat
مثال ✅ ⇣⇣
;"let text1 = "Easy-to
;"let text2 = "Arabic
;)let text3 = text1.concat(" ", text2," ", " ", text1
:هذان الخطان يفعالن نفس الشيء plus .يمكن استخدام الطريقة بدال ً من عامل التشغيل)(concat
مثال ✅ ⇣⇣
;"!text = "Easy-to" + " " + "Arabic
;)"!text = "Easy-to".concat(" ", "Arabic
120 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
ملحوظة
.تقوم كافة أساليب النص بإرجاع نص جديدة .ال يقومون بتعديل النص األصلية
:قال رسميًا
.النصوص غير قابلة للتغيير :ال يمكن تغيير النصوص ،بل استبدالها فقط
دالة )(Trim
:بإزالة المسافة الفارغة من كال جانبي النص )( trimتقوم الطريقة
مثال ✅ ⇣⇣
!*_* let text1 = " Abu Habib Al Husini ;"
;)(let text2 = text1.trim
المسافة الفارغة
الدالة)( TrimStart
.ولكنها تزيل المسافات البيضاء فقط من بداية النص)( ، trimتعمل الطريقة مثل)(trimStart
مثال ✅ ⇣⇣
!*_* let text1 = " Abu Habib Al Husini ;"
;)(let text2 = text1.trimStart
121 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
دالة)( TrimEnd
.ولكنها تزيل المسافات البيضاء فقط من نهاية النص)( ، trimتعمل الطريقة مثل)(trimEnd
مثال ✅ ⇣⇣
!*_* let text1 = " Abu Habib Al Husini ;"
;)(let text2 = text1.trimEnd
دالة)( PadStart
:على ربط نص بنص أخرى)( padStartتعمل الطريقة
مثال ✅ ⇣⇣
;"let text = "5
;)"let padded = text.padStart(4,"x
مثال ✅ ⇣⇣
;"let text = "5
;)"let padded = text.padStart(4,"0
122 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
ملحوظة
.إلضافة رقم ،قم بتحويل الرقم إلى نص أوال ً
مثال ✅ ⇣⇣
;let numb = 5
;)(let text = numb.toString
;)"let padded = text.padStart(4,"0
دعم المتصفحات
ECMAScript 2017.هي إحدى ميزات)(padStart
:وهو مدعوم في جميع المتصفحات الحديثة
الدالة)( PadEnd
:على ربط نص بنص أخرى)( padEndتعمل الطريقة
مثال ✅ ⇣⇣
;"let text = "5
;)"let padded = text.padEnd(4,"x
مثال ✅ ⇣⇣
;"let text = "5
;)"let padded = text.padEnd(4,"0
123 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كتاب الكافى فى جافاسكربت الجزء االول ابو حبيب الحسينى
ملحوظة
.مثل الدالة السابقة تمام إلضافة رقم ،قم بتحويل الرقم إلى نص أوال ً
مثال ✅ ⇣⇣
;let numb = 5
;)(let text = numb.toString
;)"let padded = text.padEnd(4,"0
دعم المتصفحات
تمت االضافة فىpadEnd() ECMAScript 2017.
:وهو مدعوم في جميع المتصفحات الحديثة
Internet Explorer.غير مدعوم في)(padEnd
الدالة)( charAt
:بإرجاع الحرف في فهرس (موضع) محدد في نص)( charAtتقوم الطريقة
124 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;"*_* let text = "Abu Habib Al Husini
;)let char = text.charAt(0
الدالة)(charCodeAt
:بإرجاع الكود الموحد للحرف في فهرس محدد في نص)( charCodeAtتقوم الطريقة
مثال ✅ ⇣⇣
;"*_* let text = "Abu Habib Al Husini
;)let char = text.charCodeAt(0
مثال ✅ ⇣⇣
;"*_* let text = "Abu Habib Al Husini
;]let char = text[0
ملحوظة
:قد يكون الوصول إلى الخصائص غير متوقع إلى حد ما
125 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
.نص فارغة )( charAtإذا لم يتم العثور على أي حرف ،فإن [ ] يُرجع غير محدد ،بينما يُرجع •
ال يعطي أي خطأ (لكنه ال يعمل!) ". str[0] = "Aيتم قراءته فقط •
مثال ✅ ⇣⇣
;"*_* let text = "Abu Habib Al Husini
text[0] = "A"; // Gives no error, but Al Husini 😀😁😂s not work
مثال ✅ ⇣⇣
text.split(",") // Split on commas
text.split(" ") // Split on spaces
text.split("|") // Split on pipe
.إذا تم حذف الفاصل ،فإن المصفوفة التي تم إرجاعها ستحتوي على النص بأكملها في الفهرس []0
:إذا كان الفاصل هو "" ،فستكون المصفوفة التي تم إرجاعها عبارة عن مصفوفة من األحرف المفردة
مثال ✅ ⇣⇣
)""(text.split
126 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كتاب المرجع الكامل فى الجافاسكربت
للتعمق فى جميع دوال المصفوفة والنصوص والتحكم الكامل لكل الدوال بال استثناء
مثال ✅ ⇣⇣
;"*_* let str = "Abu Habib Al Husini
;)"str.indexOf("Habib
ملحوظة
.نعيد للتذكير جافاسكربت تحسب المواضع من الصفر
127 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
الدالة )( lastIndexOf
:بإرجاع فهرس آخر تواجد لنص محدد في نص)( lastIndexOfتقوم الطريقة
مثال ✅ ⇣⇣
;"*_* let text = "Abu Habib Al Husini Habib
;)"text.lastIndexOf("Habib
مثال ✅ ⇣⇣
;" let text = "Abu Habib Al Husini *_* Habib Habib
;)"text.lastIndexOf("Habib
مثال ✅ ⇣⇣
;" let text = "Abu Habib Al Husini *_* Habib
;)text.indexOf("Habib", 15
بشكل عكسي (من النهاية إلى البداية) ،أي :إذا كان المعامل الثاني هو ،15يبدأ البحث من)( lastIndexOfتبحث الطرق
.الموضع ،15ويبحث حتى بداية النص
مثال ✅ ⇣⇣
;"*_* let text = "Abu Habib Al Husini
;)text.lastIndexOf("Habib", 15
128 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
استخدام دالة البحث
:عن نص (أو تعبير عادي) وترجع موضع المطابقة)( searchتبحث الطريقة
أمثلة
;"*_* let str = "Abu Habib Al Husini
;)"str.search("Habib
ملحوظة
هل الدالتين متساويتين؟ search()،و)(، indexOf
الطريقتين ليستا متساويتين .كما تظن :لن اخبرك باالختالف جربة بنفسك وستعرفة من النتيجة
أمثلة
129 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
":إجراء بحث عن "حبيب
;"*_* let text = "Abu Habib Al Husini *_* haBib *_* HABIB
;)text.match(/hAbIB/gi
ملحوظة
المع ِّدل
.فسيُرجع فقط المطابقة األولى في النص)()، matchالبحث العام( gإذا كان التعبير العادي ال يتضمن ُ
الدالة)( matchAll
.بإرجاع مكرر يحتوي على نتائج مطابقة نص مع نص (أو تعبير عادي))( matchAllتقوم الطريقة
مثال ✅ ⇣⇣
;)"const iterator = text.matchAll("Habib
130 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كتاب الكافى فى جافاسكربت الجزء االول ابو حبيب الحسينى
مثال ✅ ⇣⇣
;)const iterator = text.matchAll(/Habib/g
(i):إذا كنت تريد البحث غير حساس لحالة األحرف ،فيجب تعيين العالمة غير الحساسة
مثال ✅ ⇣⇣
;)const iterator = text.matchAll(/Habib/gi
ملحوظات
.ال يعمل في إنترنت إكسبلورر)(matchAll
أمثلة
131 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
:تحقق مما إذا كانت النص يتضمن "الكلمة المراد البحث عنها و .ابدأ من الموضع 12
ملحوظات
.حاله اﻻحرف حساسه)(includes
أمثلة
:يعود صحيحا
:إرجاع كاذبة
132 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
:إرجاع كاذبة
:يعود صحيحا
ملحوظات
.مثل الدالة السابقة حاله اﻻحرف حساسه)(startsWith
أمثلة
133 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
"Arabic":تحقق مما إذا كانت األحرف الـ 11األولى من النص تنتهي بـ
ملحوظات
.مثل الدالة السابقة حاله حساسه)(endsWith
االقتباس الحر
تستخدم القيم الحرفية للنموذج عالمات التجزئة الخلفية (``) بدال ً من عالمات االقتباس ("") لتحديد نص حر غير مقيد بقوانين
:جافاسكربت
مثال ✅ ⇣⇣
;`!*_* let text = `Abu Habib Al Husini
134 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
اقتباسات داخل االقتباس الحر
باستخدام االقتباس الحر ،يمكنك استخدام عالمات االقتباس المفردة والمزدوجة داخل نص ونقل النصوص والرموز وكل شى
:بحرية بدون تطبيق قوانين جافاسكربت عل النصوص
مثال ✅ ⇣⇣
;`"let text = `He's often called "habib
مثال ✅ ⇣⇣
= let text
`The quick
brown fox
jumps over
;`the lazy dog
ملحوظة
تستطيع دمج التغيرات داخل اﻻقتباس الحر و توفر القيم الحرفية لالقتباس الحر طريقة سهلة الستكمال المتغيرات والتعبيرات
.في نصوص
.تسمى هذه الطريقة استيفاء النص
:بناء الجملة هو
}${...
135 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال اخر لستخدام االقتباس الحر
:كما ذكرنا تسمح القيم الحرفية لالقتباس الحر بالمتغيرات في النصوص
مثال ✅ ⇣⇣
;"let firstName = "Habib
;"😂😁😀 let lastName = "Al Husini
مثال ✅ ⇣⇣
;let hAbiB3= 10
;let VAT = 0.25
136 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
قوالب HTML
مثال ✅ ⇣⇣
;"let header = "Templates Literals
;]"let tags = ["template literals", "habib
;`>html += `</ul
دعم المتصفحات
:وهو مدعوم في جميع المتصفحات الحديثة
Internet Explorer.غير مدعوم فيTemplate Literals
نعيد للتذكير تحتوي جافاسكربت على نوع واحد فقط من األرقام .يمكن كتابة األرقام مع أو بدون الكسور العشرية االنواع
.االخرى لن تحتاج اليها فهى لمحترفى الجبر والرياضيات
137 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
let x = 3.14; // A number with decimals
;let y = 3 // A number without decimals
:يمكن كتابة األعداد الكبيرة ج ًدا أو الصغيرة ج ًدا باستخدام التدوين العلمي (األس)
مثال ✅ ⇣⇣
let x = 123e5; // 12300000
let y = 123e-5; // 0.00123
يقوم هذا التنسيق بتخزين األرقام في 64بت ،حيث يتم تخزين الرقم (الكسر) في البتات من 0إلى ،51واألس في البتات من
52:إلى ،62وتسجيل الدخول بت 63
االعداد الصحيحة
.األعداد الصحيحة (األرقام التي ال تحتوي على نقطة أو تدوين أسي) تصل دقتها إلى ً 15
رقما
مثال ✅ ⇣⇣
let x = 999999999999999; // x will be 999999999999999
let y = 9999999999999999; // y will be 10000000000000000
138 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
ملحوظة
.الحد األقصى لعدد الكسور العشرية هو 17
االعداد العشرية
دائما دقيقًا بنسبة 100
ً ٪:حساب النقطة العشرية ليس
139 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;let x = 10
;let y = 20
;let z = x + y
مثال ✅ ⇣⇣
;"let x = "10
;"let y = "20
;let z = x + y
مثال ✅ ⇣⇣
;let x = 10
;"let y = "20
;let z = x + y
مثال ✅ ⇣⇣
;"let x = "10
;let y = 20
;let z = x + y
140 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;let x = 10
;let y = 20
;let z = "The result is: " + x + y
مثال ✅ ⇣⇣
;let x = 10
;let y = 20
;"let z = "30
;let result = x + y + z
النصوص الرقمية
:يمكن أن تحتوي نصوص جافاسكربت على محتوى رقمي
141 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
;"let x = "100
;"let y = "10
;let z = x / y
أيضا
:سيعمل هذا ً
;"let x = "100
;"let y = "10
;let z = x * y
;"let x = "100
;"let y = "10
;let z = x - y
;"let x = "100
;"let y = "10
;let z = x + y
.في ال✅ مثال ⇣⇣ األخير ،يستخدم جافاسكربت عامل التشغيل +لتسلسل النصوص
الكلمة NaN
.هي كلمة محجوزة في جافاسكربت تشير إلى أن الرقم ليس ً
رقما قانونيًاNaN
142 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
رقما( NaNستؤدي محاولة إجراء العمليات الحسابية باستخدام نص غير رقمية إلى
):ليس ً
مثال ✅ ⇣⇣
;"let x = 100 / "Abu Habib
رقما
:ومع ذلك ،إذا كانت النص تحتوي على قيمة رقمية ،فستكون النتيجة ً
مثال ✅ ⇣⇣
;"let x = 100 / "10
مثال ✅ ⇣⇣
;"let x = 100 / "Abu Habib
;)isNaN(x
مثال ✅ ⇣⇣
;let x = NaN
;let y = 5
;let z = x + y
143 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;let x = NaN
;"let y = "5
;let z = x + y
مثال ✅ ⇣⇣
;typeof NaN
مثال ✅ ⇣⇣
;let myNumber = 2
// Execute until Infinity
{ )while (myNumber != Infinity
;myNumber = myNumber * myNumber
}
مثال ✅ ⇣⇣
;let x = 2 / 0
;let y = -2 / 0
144 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;typeof Infinity
السداسي عشري
x.تفسر جافاسكربت الثوابت الرقمية على أنها أرقام ست عشرية إذا كانت مسبوقة بـ 0
مثال ✅ ⇣⇣
;let x = 0xFF
.افتراضيًا ،تعرض جافاسكربت األرقام على هيئة أرقام عشرية ذات أساس 10
.الطريقة إلخراج األرقام من األساس 2إلى األساس toString()36ولكن يمكنك استخدام
.النظام الست عشري هو األساس . 16العدد العشري هو األساس . 10الثماني هو قاعدة . 8ثنائي هو قاعدة 2
مثال ✅ ⇣⇣
;let myNumber = 32
;)myNumber.toString(32
;)myNumber.toString(16
;)myNumber.toString(12
;)myNumber.toString(10
;)myNumber.toString(8
;)myNumber.toString(2
145 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
أالرقام ككائنات
:عاد ًة ما تكون أرقام جافاسكربت عبارة عن قيم بدائية تم إنشاؤها من القيم الحرفية
;let x = 123
مثال ✅ ⇣⇣
;let x = 123
;)let y = new Number(123
.المحجوزة على تعقيد التعليمات البرمجية وإبطاء سرعة التنفيذ newتعمل الكلمة
;let x = 500
;)let y = new Number(500
146 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
;let x = 500
;)let y = new Number(500
تُستخدم متغيرات جافاسكربت لتخزين قيم أعداد صحيحة كبيرة ج ًدا بحيث ال يمكن تمثيلها بواسطة جافاسكربت BigInt
Number.عادي
147 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مكون عدد صحيح
;let x = 999999999999999
;let y = 9999999999999999
IEEE 754).معيار( في جافاسكربت ،يتم تخزين جميع األرقام بتنسيق الفاصلة العشرية 64بت
.باستخدام هذا المعيار ،ال يمكن تمثيل األعداد الصحيحة الكبيرة بشكل دقيق وسيتم تقريبها
:ولهذا السبب ،يمكن لـ جافاسكربت تمثيل األعداد الصحيحة بشكل آمن فقط
أمثلة
;let x = 9999999999999999
;let y = 9999999999999999n
;let x = 1234567890123456789012345n
)let y = BigInt(1234567890123456789012345
تابع BigInt:
":عدد كبير" typeofa BigIntجافاسكربت
148 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;)let x = BigInt(999999999999999
;let type = typeof x
مشغل BigInt
أيضا استخدام العوامل التي يمكن استخدامها في جافاسكربت على Number
BigInt.يمكن ً
ملحوظات
.غير مسموح به (تحويل النوع يفقد المعلومات فى االرقام الكبيرة) a Numberو a BigIntالحساب بين
).ليس له عرض ثابت( BigIntال يمكن إجراء التحول األيمن غير الموقع بهذة العالمة (>>>) على
149 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
الكسور العشرية الكبيرة
.يمكن أن تحتوي على أرقام عشرية BigIntال
;let x = 5n
;let y = Number(x) / 2
تقريب المكون
150 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
⇣⇣ مثال ✅ MAX_SAFE_INTEGER
!!! 9007199254740992 === 9007199254740993; // is true
دعم المتصفحات
:مدعوم في جميع المتصفحات منذ سبتمبر BigInt2020
;let x = Number.MIN_SAFE_INTEGER
طريقة )(Number.isInteger
صحيحا trueتُرجع الطريقة إذا)(Number.isInteger
ً عددا
ً .كانت الوسيطة
151 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ )(⇣⇣: isInteger
;)Number.isInteger(10
;)Number.isInteger(10.5
طريقة )(Number.isSafeInteger
.العدد الصحيح اآلمن هو عدد صحيح يمكن تمثيله بمكون كرقم مزدوج المكون
صحيحا آمنًا trueتُرجع الطريقة إذا)(Number.isSafeInteger
ً عددا
ً .كانت الوسيطة
toString ().طريقة
.بإرجاع رقم كنص)( toStringتقوم الطريقة
152 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
:يمكن استخدام جميع طرق األرقام على أي نوع من األرقام (األحرف الحرفية أو المتغيرات أو التعبيرات)
مثال ✅ ⇣⇣
;let x = 123
;)(x.toString
;)((123).toString
;)((100 + 23).toString
)( toExponentialطريقة
.تقوم بإرجاع نص تحتوي على رقم مقرب ومكتوب باستخدام التدوين األسي)(toExponential
:تحدد المعلمة عدد األحرف خلف العالمة العشرية
مثال ✅ ⇣⇣
;let x = 9.656
;)x.toExponential(2
;)x.toExponential(4
;)x.toExponential(6
)( toFixedطريقة
:تُرجع نصوص ة تحتوي على الرقم المكتوب بعدد محدد من الكسور العشرية)(toFixed
مثال ✅ ⇣⇣
;let x = 9.656
;)x.toFixed(0
;)x.toFixed(2
;)x.toFixed(4
;)x.toFixed(6
153 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كتاب الكافى فى جافاسكربت الجزء االول ابو حبيب الحسينى
)( toPrecisionطريقة
:إرجاع نص برقم مكتوب بطول محدد)(toPrecision
مثال ✅ ⇣⇣
;let x = 9.656
;)(x.toPrecision
;)x.toPrecision(2
;)x.toPrecision(4
;)x.toPrecision(6
مثال ✅ ⇣⇣
;let x = 123
;)(x.valueOf
;)((123).valueOf
;)((100 + 23).valueOf
(typeof = object).أو كائنًا ) (typeof = numberفي جافاسكربت ،يمكن أن يكون الرقم قيمة أولية
.الطريقة داخليًا في جافاسكربت لتحويل كائنات األرقام إلى قيم أولية)( valueOfيتم استخدام هذه
.ال يوجد سبب الستخدامه في التعليمات البرمجية
154 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
لتحويل المتغيرات إلى أرقام
:هناك ثالث طرق جافاسكربت يمكن استخدامها لتحويل متغير إلى رقم
مثال ✅ ⇣⇣
;)Number(true
;)Number(false
;)"Number("10
;)"Number(" 10
;)" Number("10
;)" Number(" 10
;)"Number("10.33
;)"Number("10,33
;)"Number("10 33
;)"Number("Habib
مثال ✅ ⇣⇣
))"Number(new Date("1970-01-01
155 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
.بإرجاع عدد المللي ثانية منذ Number()1.1.1970تقوم الطريقة
مثال ✅ ⇣⇣
))"Number(new Date("1970-01-02
مثال ✅ ⇣⇣
))"Number(new Date("2017-09-30
مثال ✅ ⇣⇣
;)"parseInt("-10
;)"parseInt("-10.33
;)"parseInt("10
;)"parseInt("10.33
;)"parseInt("10 20 30
;)"parseInt("10 years
;)"parseInt("years 10
156 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;)"parseFloat("10
;)"parseFloat("10.33
;)"parseFloat("10 20 30
;)"parseFloat("10 years
;)"parseFloat("years 10
طريقة وصف
)(Number.isInteger صحيحا
ً عددا
ً صحيحا إذا كانت الوسيطة
ً يُرجع
)(Number.isSafeInteger صحيحا آمنًا
ً صحيحا إذا كانت الوسيطة عد ًدا
ً يُرجع
)(Number.parseFloat تحويل نص إلى رقم
)(Number.parseInt تحويل نص إلى عدد صحيح
Number.isInteger().ال يمكن الوصول إلى هذه األساليب فى حالة المتغير وإال ستؤدى الى
157 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
TypeError X.isInteger is not a function.
دالة)(Number.isInteger
صحيحا trueتُرجع الطريقة إذا)(Number.isInteger
ً عددا
ً .كانت الوسيطة
مثال ✅ ⇣⇣
;)Number.isInteger(10
;)Number.isInteger(10.5
دالة)(Number.isSafeInteger
.العدد الصحيح اآلمن هو عدد صحيح يمكن تمثيله بمكون كرقم مزدوج المكون
صحيحا آمنًا trueتُرجع الطريقة إذا)(Number.isSafeInteger
ً عددا
ً .كانت الوسيطة
مثال ✅ ⇣⇣
;)Number.isSafeInteger(10
;)Number.isSafeInteger(12345678901234567890
دالة)(Number.parseFloat
رقما)(Number.parseFloat
.ياخذ نص ويعيد ً
:المساحات مسموحة .يتم إرجاع الرقم األول فقط
158 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;)"Number.parseFloat("10
;)"Number.parseFloat("10.33
;)"Number.parseFloat("10 20 30
;)"Number.parseFloat("10 years
;)"Number.parseFloat("years 10
ملحوظة
)( .Number.parseInt()Number.parseFloatالطريقتان متشابهتان فى النفيذ
)(parseInt()parseFloat
.والغرض من ذلك هو تقسيم الوحدات العامة (لتسهيل استخدام نفس كود جافاسكربت خارج المتصفح)
الدالة)(Number.parseInt
.ياخذ نص ويعيد عددا صحيحا)(Number.parseInt
مثال ✅ ⇣⇣
;)"Number.parseInt("-10
;)"Number.parseInt("-10.33
;)"Number.parseInt("10
;)"Number.parseInt("10.33
;)"Number.parseInt("10 20 30
;)"Number.parseInt("10 years
;)"Number.parseInt("years 10
159 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
رقما)، NaNإذا تعذر تحويل الرقم
.فسيتم إرجاع (ليس ً
.يحتوي المرجع على أوصاف وأمثلة لجميع خصائص وأساليبو و دوال جافاسكربت بال استثناء
خصائص االرقام
Property وصف
EPSILON JS.الفرق بين 1وأصغر رقم
MAX_VALUE أكبر عدد ممكن في جافاسكربت
MIN_VALUE أصغر رقم ممكن في جافاسكربت
MAX_SAFE_INTEGER الحد األقصى لعدد صحيح آمن ()1 - 253
MIN_SAFE_INTEGER الحد األدنى لعدد صحيح آمن )1 - 253(-
POSITIVE_INFINITY إنفينيتي (يرجع الفائض)
NEGATIVE_INFINITY الالنهاية السالبة (التي تم إرجاعها عند الفائض)
NaN رقما
".قيمة "ليست ً
خاصية ابسيلون
.يمثل الفرق بين 1وأصغر رقم الفاصلة العشريةNumber.EPSILON
مثال ✅ ⇣⇣
;let x = Number.EPSILON
160 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كتاب الكافى فى جافاسكربت الجزء االول ابو حبيب الحسينى
ملحوظة
ES6 .هي ميزةNumber.EPSILON
خاصية MAX_VALUE
.هو ثابت يمثل أكبر عدد ممكن في جافاسكربتNumber.MAX_VALUE
مثال ✅ ⇣⇣
;let x = Number.MAX_VALUE
Number.MAX_VALUE.ال يمكن استخدام هذه الخاصية إال كـنوع البيانات االرقام الكبيرة بيج انت
مثال ✅ ⇣⇣
;let x = 6
x.MAX_VALUE
161 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
خاصية MIN_VALUE
.هو ثابت يمثل أقل رقم ممكن في جافاسكربتNumber.MIN_VALUE
مثال ✅ ⇣⇣
;let x = Number.MIN_VALUE
خاصية MAX_SAFE_INTEGER
.يمثل الحد األقصى لعدد صحيح آمن في جافاسكربتNumber.MAX_SAFE_INTEGER
مثال ✅ ⇣⇣
;let x = Number.MAX_SAFE_INTEGER
خاصيةMIN_SAFE_INTEGER
.يمثل الحد األدنى لعدد صحيح آمن في جافاسكربتNumber.MIN_SAFE_INTEGER
مثال ✅ ⇣⇣
;let x = Number.MIN_SAFE_INTEGER
162 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
خاصيةPOSITIVE_INFINITY
مثال ✅ ⇣⇣
;let x = Number.POSITIVE_INFINITY
;let x = 1 / 0
خاصيةNEGATIVE_INFINITY
مثال ✅ ⇣⇣
;let x = Number.NEGATIVE_INFINITY
;let x = -1 / 0
163 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
شرح NaN
.هي كلمة جافاسكربت محجوزة تعنى انه ليس ً
رقما قانونيًاNaN
أمثلة
;let x = Number.NaN
رقما( NaNستؤدي محاولة إجراء العمليات الحسابية باستخدام نص غير رقمية إلى
):ليس ً
المصفوفات
164 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
لماذا استخدام المصفوفات؟
:إذا كانت لديك قائمة بالعناصر (قائمة بأسماء ،على سبيل ال✅ مثال ⇣⇣) ،فقد يبدو تخزين في متغيرات فردية كما يلي
كما ترى فى االعلى هذة ثالث متغيرات لها قيم ماذا لو كنت تريد التنقل والعثور على قيمة معينة بين هذة ،
المتغيرات ؟ وماذا لو لم يكن لديك 3متغيرات فقط بل مليون ماذا ستفعل؟
!الحل هو المصفوفة
يمكن للمصفوفة أن تحتوي على العديد من القيم تحت اسم واحد ،ويمكنك الوصول إلى تخزين كبير جدا لتصبح قاغدة بيانات
.كبيرة من القيم ليسهل الوصول اليها عن طريق اإلشارة إلى رقم الفهرس او بطرق اخرى كثيرة جدا فقد اعدت لذلك
.من الممارسات الشائعة اإلعالن عن المصفوفات باستخدام الكلمة المحجوزة كونست و ليست اجبارىه
مثال ✅ ⇣⇣
;]"const HaBiB= ["Habib", "Hamza", "Abu Habib Al-Husini
:المسافات وفواصل األسطر ليست مهمة .يمكن أن يمتد اإلعالن على عدة أسطر
165 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
[ =const HaBiB
"Habib",
"Hamza",
""Abu Habib Al-Husini
;]
مثال ✅ ⇣⇣
;][ =const HaBiB
;"HaBiB[0]= "Habib
;"HaBiB[1]= "Hamza
;"HaBiB[2]= "Abu Habib Al-Husini
مثال ✅ ⇣⇣
;)"const HaBiB= new Array("Habib", "Hamza", "Abu Habib Al-Husini
تماما
ً .ال✅ مثال ⇣⇣ان أعاله يفعالن نفس الشيء
166 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
new Array().ليست هناك حاجة لالستخدام
.من أجل البساطة وسهولة القراءة وسرعة التنفيذ ،استخدم الطريقة الحرفية للمصفوفة
مثال ✅ ⇣⇣
;]"const HaBiB= ["Habib", "Samir", "Abu Habib Al-Husini
;"* HaBiB[0] = "Hamza
167 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;]"const HaBiB= ["Habib", "Hamza", "Abu Habib Al-Husini
;document.getElementById("Habib").innerHTML = HaBiB
المصفوفات هي كائنات
المصفوفات هي نوع خاص من الكائنات.او البيانات يقوم عامل التشغيل في جافاسكربت بإرجاع "كائن" للمصفوفات او
.العنصر
:يُرجع ] ⇣⇣، hAbiB[0تستخدم المصفوفات األرقام للوصول إلى "عناصرها" .في هذا ال✅ مثال
مثال
;]const hAbiB = ["Habib", "Al Husini 😀😁😂", 406, 4006, 4566
:يُرجع الناتج ب حبيب ⇣⇣، hAbiB.firstNameتستخدم الكائنات األسماء للوصول إلى "أعضائها" .في هذا ال✅ مثال
:هدف
;}const hAbiB = {firstName:"Habib", lastName:"Al Husini 😀😁😂", age:40
يمكن أن يكون لديك كائنات في مصفوفة .يمكن أن يكون لديك وظائف في مصفوفة .يمكن أن يكون لديك مصفوقات في
:مصفوفة
168 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
;Habib_Array[0] = Date.now
;Habib_Array[1] = Husini
;Habib_Array[2] = myHaBiB
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan
;let length = HaBiB.length
سيرجع هذا المثال برقم يذيد بواحد عن رقم المصفوفة ﻻن المصفوفة تبدا من الصفر
169 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كيف الوصول إلى العنصر األخير
✅ مثال ⇣⇣
const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan"];
let fruit = HaBiB[HaBiB.length - 1];
✅ مثال ⇣⇣
const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan"];
let fLen = HaBiB.length;
✅ مثال ⇣⇣
const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan"];
function Husini(value) {
text += "<li>" + value + "</li>";
}
170 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كتاب الكافى فى جافاسكربت الجزء االول ابو حبيب الحسينى
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib
HaBiB.push("Osama"); // Adds a new element (Osama) to HaBiB
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "HamZA", "Abu Habib
HaBiB[HaBiB.length] = "Osama"; // Adds "Osama" to HaBiB
! تحذير
يمكن أن تؤدي إضافة عناصر ذات فهارس عالية إلى إنشاء "فجوات" غير محددة في المصفوفة واﻻفضل ان تترك الترتيب
التلقائى ياخذ مجراه و اتباع الدوال التى سنشرحها للحفاظ على المفاتيح ويجب عمل ملف مستقل للمصفوفة اذا كانت كبيرة
:الحجم ﻻن الكمبيوتر سيعتبرها قاعدة بيانات
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", " * ", "Abu Habib
HaBiB[6] = "Osama"; // Creates undefined "holes" in HaBiB
هنا اصبحت المصفوفة تحتوى على فجوات بين رقم خمسة ورقم ثالثة واال استخدم الكائنات لتحكم اكثر فى
المفاتيح
171 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
المصفوفات الترابطية
.تدعم العديد من لغات البرمجة المصفوفات ذات الفهارس المسماة
مثال ✅ ⇣⇣
;][ = const hAbiB
;"hAbiB[0] = "Habib
;"😂😁😀 hAbiB[1] = "Al Husini
;hAbiB[2] = 46
hAbiB.length; // Will return 3
;]hAbiB[0 "// Will return "Habib
!! تحذير
فهارسا مسماة ،فسوف تقوم جافاسكربت بإعادة تعريف المصفوفة لكائن ما
ً .إذا كنت تستخدم
.لبعد ذلك ،ستؤدي بعض أساليب وخصائص المصفوفة إلى نتائج غير صحيحة الن المفاتيح او الفهارس ستتغير
مثال ✅ ⇣⇣:
;][ = const hAbiB
;"hAbiB["firstName"] = "Habib
;"😂😁😀 hAbiB["lastName"] = "Al Husini
;hAbiB["age"] = 46
hAbiB.length; // Will return 0
;]hAbiB[0 // Will return undefined
172 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
الفرق بين المصفوفات والكائنات
.في جافاسكربت ،تستخدم المصفوفات فهارس مرقمة
.المصفوفات هي نوع خاص من الكائنات ،مع فهارس مرقمة ال تقبل نصوص فى المفاتيح
:تقوم هاتان العبارتان المختلفتان بإنشاء مصفوفة جديدة تحتوي على 6أرقام
;)const hAbIB = new Array(40, 100, 1, 5, 25, 10, 100, 1, 5, 25, 10
;]const hAbIB = [40, 100, 1, 5, 25, 10, 100, 1, 5, 25, 10, 0, 1, 5, 25, 10
173 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
// Create an array with two elements:
;)const hAbIB = new Array(40, 100
خطأ شائع
;]const hAbIB = [40
174 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib
;let type = typeof HaBiB
.بإرجاع كائن ألن مصفوفة جافاسكربت عبارة عن كائن typeofيقوم عامل التشغيل
1 :الحل
Array.isArray():لحل هذه المشكلة ،حدد (جافاسكربت )2009طريقة جديدة
;)Array.isArray(HaBiB
2 :الحل
:إذا تم إنشاء كائن بواسطة ُمنشئ معين trueالقيمة instanceofيُرجع العامل
طرق المصفوفات
⇣⇣ا ✅ مثال
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan
;)(document.getElementById("Habib").innerHTML = HaBiB.toString
:نتيجة
175 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
Al-Husini,Osman,Abu Habib,Abu Zedan
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan
;)" * "(document.getElementById("Habib").innerHTML = HaBiB.join
:نتيجة
تعديل المصفوفات
.عند العمل مع المصفوفات ،يكون من السهل إزالة العناصر وإضافة عناصر جديدة
:وهذا ما هو الفرقع والدفع
.إخراج العناصر من المصفوفة ،أو دفع العناصر إلى مصفوفة
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan
;)(HaBiB.pop
176 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
":القيمة التي "برزت)( popتُرجع الطريقة
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan
;)(let fruit = HaBiB.pop
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan
;)"HaBiB.push("Hamza
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan
;)"let length = HaBiB.push("Hamza
اساليب الحذف
.بمثابةتعديل ،ولكنه يعمل على العنصر األول بدال ً من العنصر األخير Shiftingيعتبر
177 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كيف حذف العنصر اﻻول من المصفوفة
.بإزالة عنصر المصفوفة األول وازاحة مفاتيح جميع العناصر األخرى إلى فهرس أقل)( shiftتقوم الطريقة
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan
;)(HaBiB.shift
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan
;)(let fruit = HaBiB.shift
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Abu Habib", "Abu Habib", "Abu Zedan
;)"HaBiB.unshift("Osama
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan
;)"HaBiB.unshift("Osama
178 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كيف استبدال قيمة عنصر معين
:يتم الوصول إلى عناصر المصفوفة باستخدام رقم الفهرس الخاص بها
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan
;"HaBiB[0] = "Hamza
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib
;"HaBiB[HaBiB.length] = "Hamza
179 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
حذف عناصر من المصفوفة
! تحذير
الكثير يستخدم هذا اﻻجراء ويظن ان العنصر تم حذفا بالكامل ولكن يمكن حذف عناصر المصفوفة باستخدام عامل تشغيل
delete.وستبقى مكان العنصر موجودة فى المصفوفة فارغ ﻻ يوجد بها قيمة تستطيع استدعئه من جديد والحل هنا
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan
;]delete HaBiB[0
180 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
)✅ مثال ⇣⇣ (دمج ثالث مصفوقات
;]"const arr1 = ["zedan", "Braa
;]"const arr2 = ["Emil", "MoHamed", "Ahmid
;]"const arr3 = ["Hamza", "Ali
;)const Habib_myChildren = arr1.concat(arr2, arr3
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan
;)"HaBiB.splice(2, 0, "Osama", "Hamza
.تحدد المعلمة األولى ( )2الموضع الذي يجب إضافة عناصر جديدة (مقسمة إليها)
.تحدد المعلمة الثانية ( )0عدد العناصر التي يجب إزالتها
.العناصر الجديدة التي سيتم إضافتها )""Hamzaو " ("Osamaتحدد بقية البرمترات
:بإرجاع مصفوفة تحتوي على العناصر المحذوفة)( spliceتقوم الطريقة
181 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan
;)"HaBiB.splice(2, 2, "Osama", "Hamza
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan
;)HaBiB.splice(0, 1
.تحدد المعلمة األولى ( )0الموضع الذي يجب إضافة عناصر جديدة (مقسمة إليها)
.تحدد المعلمة الثانية ( )1عدد العناصر التي يجب إزالتها
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Osama", "Abu Habib", "Abu Zedan
;)const citrus = HaBiB.slice(1
182 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
ملحوظة
.بإنشاء مصفوفة جديدة)( sliceتقوم الطريقة
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Osama", "Abu Habib", "Abu Zedan
;)const citrus = HaBiB.slice(3
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Osama", "Abu Habib", "Abu Zedan
;)const citrus = HaBiB.slice(1, 3
.تقوم بتقسيم بقية المصفوفة )( sliceإذا تم حذف وسيطة النهاية ،كما هو الحال في األمثلة األولى ،فإن الطريقة
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Osama", "Abu Habib", "Abu Zedan
;)const citrus = HaBiB.slice(2
183 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كيف تحويل المصفوف الى نص عادى
.تقوم جافاسكربت تلقائيًا بتحويل المصفوفة إلى نص مفصولة بفواصل عندما تكون القيمة األولية متوقعة
دائما عندما تحاول إخراج مصفوفة
ً .هذا هو الحال
:سيؤدي هذان ال✅ مثال ⇣⇣ان إلى نفس النتيجة
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan
;)(document.getElementById("Habib").innerHTML = HaBiB.toString
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan
;document.getElementById("Habib").innerHTML = HaBiB
ملحوظة
toString().تحتوي جميع كائنات جافاسكربت على طريقة
184 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
اشهر طرق الفرز للمصفوفة
:بفرز مصفوفة أبجديًا)( sortتقوم الطريقة
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan
;)(HaBiB.sort
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan
;)(HaBiB.sort
;)(HaBiB.reverse
185 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;]const hAbIB = [40, 100, 1, 5, 25, 10
;)}hAbIB.sort(function(a, b){return a - b
مثال ✅ ⇣⇣
;]const hAbIB = [40, 100, 1, 5, 25, 10
;)}hAbIB.sort(function(a, b){return b - a
وظيفة المقارنة
.الغرض من وظيفة المقارنة هو تحديد ترتيب فرز بديل
اعتمادا على الوسائط
ً :يجب أن تُرجع دالة المقارنة قيمة سالبة أو صفرية أو موجبة،
تقارن الدالة قيمتين ،فإنها ترسل القيم إلى دالة المقارنة ،وتقوم بفرز القيم وفقًا للقيمة التي تم إرجاعها (سلبية sort() ،عندما
.صفر ،إيجابية)
b.يتم فرزها قبل، aإذا كانت النتيجة سلبية
a.يتم فرزها قبل، bإذا كانت النتيجة إيجابية
.إذا كانت النتيجة ،0فلن يتم إجراء أي تغييرات على ترتيب فرز القيمتين
⇣⇣:مثال ✅
(a, b).تقوم دالة المقارنة بمقارنة جميع القيم الموجودة في المصفوفة ،قيمتين في المرة الواحدة
.تستدعي الطريقة دالة المقارنة (، sort())100 ،40عند مقارنة 40و100
.وبما أن النتيجة سالبة ( ،)60-فستقوم دالة الفرز بفرز 40كقيمة أقل من (a - b)، 100تحسب الدالة 100 - 40
:يمكنك استخدام مقتطف الشفرة هذا لتجربة الفرز رقميًا وأبجديًا
186 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
><p id="Habib"></p
><script
;]const hAbIB = [40, 100, 1, 5, 25, 10
;document.getElementById("Habib").innerHTML = hAbIB
{ )(function Husini1
;)(hAbIB.sort
;document.getElementById("Habib").innerHTML = hAbIB
}
{ )(function Husini2
;)}hAbIB.sort(function(a, b){return a - b
;document.getElementById("Habib").innerHTML = hAbIB
}
></script
شيوعا ،تسمى طريقة فيشر ييتس ،وتم تقديمها في علم البيانات في وقت مبكر من عام 1938
ً !الطريقة الصحيحة األكثر
187 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;]const hAbIB = [40, 100, 1, 5, 25, 10
مثال ✅ ⇣⇣
;]const hAbIB = [40, 100, 1, 5, 25, 10
;)}hAbIB.sort(function(a, b){return a - b
// now hAbIB[0] contains the lowest value
// and hAbIB[hAbIB.length-1] contains the highest value
:الترتيب تنازليا ً
مثال ✅ ⇣⇣
;]const hAbIB = [40, 100, 1, 5, 25, 10
;)}hAbIB.sort(function(a, b){return b - a
// now hAbIB[0] contains the highest value
// and hAbIB[hAbIB.length-1] contains the lowest value
188 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
.يعد فرز مصفوفة كاملة طريقة غير فعالة للغاية إذا كنت تريد فقط العثور على القيمة األعلى (أو األدنى)
)( Math.maxاستخدام
:للعثور على أعلى رقم في مصفوفة Math.max.applyيمكنك استخدامه
مثال ✅ ⇣⇣
{ )function Habib_ArrayMax(arr
;)return Math.max.apply(null, arr
}
)( Math.minاستخدام
:للعثور على أقل رقم في المصفوفة Math.min.applyيمكنك استخدامه
مثال ✅ ⇣⇣
{ )function Habib_ArrayMin(arr
;)return Math.min.apply(null, arr
}
189 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
األقصى) ✅ مثال ⇣⇣ (البحث عن الحد
{ )function Habib_ArrayMax(arr
;let len = arr.length
;let max = -Infinity
{ )while (len--
{ )if (arr[len] > max
;]max = arr[len
}
}
;return max
}
:تتكرر هذه الوظيفة عبر مصفوفة تقارن كل قيمة بأقل قيمة تم العثور عليها
190 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
[ =const HaBiB
{use:"Hamza", year:2016},
{use:"Habib", year:2001},
}{use:"Abu Habib Al-Husini", year:2010
;]
.فيمكن استخدام الطريقة لفرز المصفوفة)(، sortحتى لو كانت الكائنات لها خصائص أنواع بيانات مختلفة
:الحل هو كتابة دالة مقارنة لمقارنة قيم الخاصية
مثال ✅ ⇣⇣
;)}HaBiB.sort(function(a, b){return a.year - b.year
مثال ✅ ⇣⇣
{)HaBiB.sort(function(a, b
;)(let x = a.type.toLowerCase
;)(let y = b.type.toLowerCase
};if (x < y) {return -1
};if (x > y) {return 1
;return 0
;)}
)( forEach
.دالة (دالة رد اتصال) مرة واحدة لكل عنصر من عناصر المصفوفة)( forEachتستدعي الطريقة
191 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;]const Habib_Num = [45, 4, 9, 16, 25
;"" = let hAbiB
;)Habib_Num.forEach(Husini
:يستخدم ال✅ مثال ⇣⇣ أعاله معلمة القيمة فقط .يمكن إعادة كتابة ال✅ مثال ⇣⇣ إلى
مثال ✅ ⇣⇣
;]const Habib_Num = [45, 4, 9, 16, 25
;"" = let hAbiB
;)Habib_Num.forEach(Husini
{ )function Husini(value
;">hAbiB += value + "<br
}
192 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;]const Habib_Num1 = [45, 4, 9, 16, 25
;)const Habib_Num2 = Habib_Num1.map(Husini
مثال ✅ ⇣⇣
;]const Habib_Num1 = [45, 4, 9, 16, 25
;)const Habib_Num2 = Habib_Num1.map(Husini
{ )function Husini(value
;return value * 2
}
مثال ✅ ⇣⇣
;]const Habib_Num = [45, 4, 9, 16, 25
;)const over18 = Habib_Num.filter(Husini
193 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
;return value > 18
}
مثال ✅ ⇣⇣
;]const Habib_Num = [45, 4, 9, 16, 25
;)const over18 = Habib_Num.filter(Husini
{ )function Husini(value
;return value > 18
}
مثال ✅ ⇣⇣
;]const Habib_Num = [45, 4, 9, 16, 25
;)let sum = Habib_Num.reduce(Husini
194 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
كتاب الكافى فى جافاسكربت الجزء االول ابو حبيب الحسينى
:ال يستخدم ال✅ مثال ⇣⇣ أعاله معلمات الفهرس والمصفوفة .يمكن إعادة كتابته إلى
مثال ✅ ⇣⇣
;]const Habib_Num = [45, 4, 9, 16, 25
;)let sum = Habib_Num.reduce(Husini
مثال ✅ ⇣⇣
;]const Habib_Num = [45, 4, 9, 16, 25
;)let sum = Habib_Num.reduce(Husini, 100
195 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
;]const Habib_Num = [45, 4, 9, 16, 25
;)let sum = Habib_Num.reduceRight(Husini
:ال يستخدم ال✅ مثال ⇣⇣ أعاله معلمات الفهرس والمصفوفة .يمكن إعادة كتابته إلى
مثال ✅ ⇣⇣
;]const Habib_Num = [45, 4, 9, 16, 25
;)let sum = Habib_Num.reduceRight(Husini
مثال ✅ ⇣⇣
;]const Habib_Num = [45, 4, 9, 16, 45, 4, 9, 16, 45, 4, 9, 16, 25
;)let All_Habib_Num_Over18 = Habib_Num.every(Husini
196 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
;return value > 18
}
:عندما تستخدم دالة رد االتصال المعلمة األولى فقط (القيمة) ،فيمكن حذف البرمترات األخرى
مثال ✅ ⇣⇣
;]const Habib_Num = [45, 4, 9, 16, 25
;)let All_Habib_Num_Over18 = Habib_Num.every(Husini
{ )function Husini(value
;return value > 18
}
مثال ✅ ⇣⇣
;]const Habib_Num = [45, 4, 9, 16, 25
;)let someOver18 = Habib_Num.some(Husini
197 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
فهرس البند•
المصفوفة نفسها•
مثال ✅ ⇣⇣
بناء الجملة
)array.indexOf(item, start
198 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
مثال ✅ ⇣⇣
بناء الجملة
)array.lastIndexOf(item, start
مثال ✅ ⇣⇣
;]const Habib_Num = [4, 9, 16, 25, 29
;)let first = Habib_Num.find(Husini
199 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
دعم المتصفح
).جافاسكربت ES6 (2015هي إحدى ميزات)(find
:وهو مدعوم في جميع المتصفحات الحديثة
Internet Explorer.غير مدعوم في)(find
دالة)( findIndex
.بإرجاع فهرس عنصر المصفوفة األول الذي يمرر وظيفة االختبار)( findIndexتقوم الطريقة
:يعثر هذا ال✅ مثال ⇣⇣ على فهرس العنصر األول األكبر من 18
مثال ✅ ⇣⇣
;]const Habib_Num = [4, 9, 16, 25, 29
;)let first = Habib_Num.findIndex(Husini
دعم المتصفح
).جافاسكربت ES6 (2015هي إحدى ميزات)(findIndex
:وهو مدعوم في جميع المتصفحات الحديثة
Internet Explorer.غير مدعوم في)(findIndex
200 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
)(Array.from
.بإرجاع كائن مصفوفة من أي كائن له خاصية الطول أو أي كائن قابل للتكرار)( Array.fromتقوم الطريقة
مثال ✅ ⇣⇣
;)"Array.from("ABCDEFG
دعم المتصفح
).جافاسكربت ES6 (2015هي إحدى ميزات)(from
:وهو مدعوم في جميع المتصفحات الحديثة
Internet Explorer.غير مدعوم في)(from
مثال ✅ ⇣⇣
201 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
دعم المتصفح
).جافاسكربت ES6 (2015هي إحدى ميزات)(keys
:وهو مدعوم في جميع المتصفحات الحديثة
Internet Explorer.غير مدعوم في)(keys
إدخاالت المصفوفة
مثال ✅ ⇣⇣
دعم المتصفح
).جافاسكربت ES6 (2015هي إحدى ميزات)(entries
:وهو مدعوم في جميع المتصفحات الحديثة
Internet Explorer.غير مدعوم في)(entries
202 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
التتضمن فى المصفوفة
إلى المصفوفات .يتيح لنا هذا التحقق من وجود عنصر في المصفوفة)( ECMAScript 2016 Array.includesتم تقديم
IndexOf).على عكس NaN،بما في ذلك(
مثال ✅ ⇣⇣
;]"const HaBiB= ["Al-Husini", "Osman", "Abu Habib", "Abu Zedan
بناء الجملة
)array.includes(search-item
دعم المتصفح
ECMAScript 2016.هي إحدى ميزات)(includes
:وهو مدعوم في جميع المتصفحات الحديثة
203 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
const:لقد أصبح من الممارسات الشائعة اإلعالن عن المصفوفات باستخدام
مثال ✅ ⇣⇣
;]"const HaBiB= ["Habib", "Hamza", "Abu Habib Al-Husini
مثال ✅ ⇣⇣
;]"const HaBiB= ["Habib", "Hamza", "Abu Habib Al-Husini
HaBiB= ["Abu Bakr Al-Siddiq!!!", "Hamza", "Omar ibn Al-khattab"]; // ERROR
مثال ✅ ⇣⇣
// You can create a constant array:
;]"const HaBiB= ["Habib", "Hamza", "Abu Habib Al-Husini
204 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
// You can add an element:
;)"HaBiB.push("Omar ibn Al-khattab
دعم المتصفح
.المحجوزة غير مدعومة في 10أو إصدار سابق constالكلمة
:المحجوزة constيحدد الجدول التالي إصدارات المتصفح األولى مع الدعم الكامل للكلمة
.المعنى :يجب تهيئة المصفوفة التي تم اإلعالن عنها عند اإلعالن عنهاconst
:دون تهيئة المصفوفة خطًأ في بناء الجملة constيعد االستخدام
مثال ✅ ⇣⇣
:هذا لن يعمل
;const HaBiB
;]"HaBiB= ["Habib", "Hamza", "Abu Habib Al-Husini
مثال ✅ ⇣⇣
:البأس
205 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
نطاق كتلة كونست
Block Scope .تحتوي على constالمصفوفة التي تم اإلعالن عنها
:المصفوفة المعلن عنها في كتلة ليست هي نفسها المصفوفة المعلنة خارج الكتلة
مثال ✅ ⇣⇣
;]"const HaBiB= ["Habib", "Hamza", "Abu Habib Al-Husini
"// Here HaBiB[0] is "Habib
{
;]"const HaBiB= ["Abu Bakr Al-Siddiq!!!", "Hamza", "Abu Habib Al-Husini
"!!!// Here HaBiB[0] is "Abu Bakr Al-Siddiq
}
"// Here HaBiB[0] is "Habib
مثال ✅ ⇣⇣
;]"var HaBiB= ["Habib", "Hamza", "Abu Habib Al-Husini
"// Here HaBiB[0] is "Habib
{
;]"var HaBiB= ["Abu Bakr Al-Siddiq!!!", "Hamza", "Abu Habib Al-Husini
"!!!// Here HaBiB[0] is "Abu Bakr Al-Siddiq
}
"!!!// Here HaBiB[0] is "Abu Bakr Al-Siddiq
206 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
✅ مثال ⇣⇣
var HaBiB= ["Hamza", "Abu Habib Al-Husini"]; // Allowed
var HaBiB= ["Abu Bakr Al-Siddiq!!!", "Abu Habib Al-Husini"]; // Allowed
HaBiB= ["Hamza", "Habib"]; // Allowed
ال يُسمح بإعادة اإلعالن عن مصفوفة أو إعادة تعيينهاconstإلى نفس النطاق أو في نفس الكتلة:
✅ مثال ⇣⇣
var HaBiB= ["Hamza", "Abu Habib Al-Husini"]; // Allowed
const HaBiB= ["Hamza", "Abu Habib Al-Husini"]; // Not allowed
{
var HaBiB= ["Hamza", "Abu Habib Al-Husini"]; // Allowed
const HaBiB= ["Hamza", "Abu Habib Al-Husini"]; // Not allowed
}
ال يُسمح بإعادة اإلعالن عن مصفوفة موجودة أو إعادة تعيينهاconst، أو في نفس الكتلة،في نفس النطاق:
✅ مثال ⇣⇣
const HaBiB= ["Hamza", "Abu Habib Al-Husini"]; // Allowed
const HaBiB= ["Hamza", "Abu Habib Al-Husini"]; // Not allowed
var HaBiB= ["Hamza", "Abu Habib Al-Husini"]; // Not allowed
HaBiB= ["Hamza", "Abu Habib Al-Husini"]; // Not allowed
{
const HaBiB= ["Hamza", "Abu Habib Al-Husini"]; // Allowed
const HaBiB= ["Hamza", "Abu Habib Al-Husini"]; // Not allowed
var HaBiB= ["Hamza", "Abu Habib Al-Husini"]; // Not allowed
HaBiB= ["Hamza", "Abu Habib Al-Husini"]; // Not allowed
}
const أو في كتلة أخرى، في نطاق آخر، يُسمح بإعادة تعريف مصفوفة بـ:
✅ مثال ⇣⇣
const HaBiB= ["Hamza", "Abu Habib Al-Husini"]; // Allowed
{
const HaBiB= ["Hamza", "Abu Habib Al-Husini"]; // Allowed
}
{
207 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
const HaBiB= ["Hamza", "Abu Habib Al-Husini"]; // Allowed
}
208 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول
التكملة فى الجزء الثانى
209 رقم الصفحة Abu Habib Al-Husini كتاب الكافى فى جافاسكربت الجزء االول