لغة جافاسكربت JavaScript هي لغة برمجة شهيرة موجودة حيث وجدت متصفحات الويب فهي أحد الركائز الثلاثية لتطوير الويب مع لغة HTML ولغة CSS فبها مجتمعة تُبنى واجهات الويب وبذلك لا غنى للغة جافاسكربت في مجال الويب إذ تساهم في إضفاء التفاعلية على صفحات الويب وبدونها تصبح الصفحات جامدة، كما أنها تُنجز أي عمليات برمجية ومنطقية في الصفحات مثل التحقق من مدخلات المستخدم وسلامة البيانات.
استخدام جافاسكربت لا ينحصر في المتصفح بل يمتد إلى تطبيقات أوسع إذ تُشغل شيفرات لغة جافاسكربت خارج المتصفح في بيئة Node.js وبذلك يمكن استخدام لغة جافاسكربت في بناء مختلف التطبيقات أشهرها حاليًا بناء خوادم الويب وهنا أصبح بالإمكان استعمال لغة جافاسربت في تطوير الواجهات الأمامية والواجهات الخلفية لصفحات الويب بمختلف أنواعها والحديث عن اللغة وميزاتها يطول لذا لن أتوسع في التمهيد بالتحدث عن اللغة لأن الكتاب كله عنها وخصوصًا باب المقدمة.
هذا الكتاب مترجم عن الكتاب The JavaScript Language: Part 1 الجزء الأول لكاتبه إيليا كانتور Ilya Kantor وهو بحجم 1000 صفحة وفيه يشرح لغة جافاسكربت شرحًا كاملًا لكل ميزاتها وتفاصيلها ويعد أفضل وأول مرجع تعليمي أجنبي لتعلم لغة جافاسكربت.
ويوجد جزء ثان للكتاب يتحدث عن استعمال جافاسكربت في المتصفحات تحديدًا وجزء ثالث يتحدث عن مواضيع متفرقة ومتقدمة عن جافاسكربت يكمل فيها الجزأين السابقين ويتمم الحديث عن لغة جافاسكربت ليكون الكتاب بأجزائه الثلاثة مرجعًا كاملًا عن لغة جافاسكربت.
يُقسم الكتاب إلى 14 فصلًا أو بابًا كل منها مقسوم إلى فصول فرعية أصغر تتحدث عن موضوع محدد من اللغة ولكل قسم مقدمة وخاتمة وتمارين منفصلة، والفصول مرتبة ترتيبًا متدرجًا بدءًا من المواضيع الأساسية وحتى المواضيع المتقدمة بما يناسب المتعلم الجديد الذي يريد تعلم لغة جافاسكربت من الصفر دون خبرة مسبقة، وأما إن كنت تملك خبرة مسبقة بلغة جافاسكربت فيمكنك قراءة الفصول وفق الترتيب الذي تريد والرجوع إليها وفقًا لأبوابه وفصولها الفرعية.
اقتباسننصحك للاستفادة القصوى من الكتاب أن تضع توثيق لغة جافاسكربت العربي من موسوعة حسوب في جوارك وأنت تقرأ الكتاب الأمر الذي يساعدك على فهم أجزاء محددة من اللغة والتعرف عليها بعمق.
الكتاب مدعوم بشيفرات عملية كثيرة وهي جاهزة للتجريب في المتصفح لذا تجدها تعتمد على دالة المتصفح alert التي تعرض رسالة على شكل مربع منبثق في صفحة المتصفح وبالتالي يمكنك تجريب الشيفرات بنسخها ولصقها في طرفية المتصفح console وسيدلك فصل أدوات المطور على كيفية استخدام هذه الأداة إن لم تكن تعرفها من قبل.
تجد في نهاية كل قسم تمارين ننصح بالتدرّب عليها بعد قراءة القسم قبل الاطلاع على الحل ثم الرجوع إلى الحل وموازنته مع حلك الناتج، وهذا يحقق أقصى استفادة أثناء تعلمك لغة جافاسكربت، وضع في بالك أن حل هذه التمارين يساعدك على تعلم لغة جافاسكربت من جهة وعلى حل الأسئلة البرمجية التي تُسأل في مقابلات العمل لذا لا تهملها.
يمكنك قراءة الكتاب على شكل فصول منشورة على موقع أكاديمية حسوب مباشرةً إن كنت تحب القراءة على المتصفح مباشرة أو إن كنت تجد صعوبة في نسخ الشيفرات أو تجريبها، وتجد روابط الفصول تاليًا مجموعة ضمن وسم "دليل تعلم جافاسكربت":
الباب الأول: مقدمة
الباب الثاني: أساسيات جافاسكربت
- المثال الأول: أهلًا بالعالم!
- بنية الشيفرة البرمجية
- الوضع الصارم: النمط الحديث لكتابة الشيفرة
- المتغيرات variables
- أنواع البيانات Data Types
- الدوال التفاعلية: confirm ،prompt ،alert
- التحويل بين الأنواع
- العاملات operators
- عاملات الموازنة
- العاملات الشرطية
- العاملات المنطقية
- عامل الاستبدال اللاغي ??
- حلقتا التكرار while و for
- التعليمة switch
- الدوال في JavaScript
- تعابير الدوال
- أساسيات الدوال السهمية
- مراجعة لما سبق
الباب الثالث: الاعتناء بجودة الشيفرة
- تنقيح الأخطاء في chrome
- نمط كتابة الشيفرة
- التعليقات
- شيفرة النينجا البرمجية
- الاختبار الآلي باستخدام mocha
- تعويض نقص دعم المتصفحات
الباب الرابع: الكائنات: تأسيس المفاهيم
- الكائناتَ Objects
- نسخ الكائن: الفرق بين القيمة والمرجع
- كنس البيانات المهملة
- الدول في الكائنات واستعمالها this
- الباني والعامل new
- التسلسل الاختياري .?
- النوع الرمزي Symbol
- التحويل بين نوع كائن إلى نوع أولي
الباب الخامس: أنواع البيانات
- توابع الأنواع الأولي
- النوع number: الأعداد
- النوع string: السلاسل النصية
- المصفوفات Arrays
- توابِع المصفوفات
- المُكرَّرات Iterables
- النوع Map الخرائط والنوع Set الأطقم
- النوع WeakMap والنوع WeakSet
- مفاتيح الكائنات وقيمها ومدخلاتها
- الإسناد بالتفكيك
- النوع Date: التاريخ والوقت
- صيغة JSON وتوابعها
الباب السادس: التعامل المتقدم مع الدوال
- التعاود Rescursion والمكدس Stack
- المعاملات «البقية» ومعامل التوزيع
- المنغلقات Closure ومجال المتغيرات
- إفادة «var» القديمة
- الكائن العمومي Global object
- كائنات الدوال وتعابير الدوال المسمّاة NFE
- صياغة «الدالة الجديدة» new Function
- المُهلة setTimeout والفترة setInterval
- المزخرفات والتمرير: التابعان call وapply
- ربط الدوال Function binding
- الحديث عن الدوال السهمية مرة أخرى
الباب السابع: ضبط خاصيات الكائنات
الباب الثامن: الوراثة النموذجية
- الوراثة النموذجية Prototypal inheritance
- الوراثة النموذجية بتعمق F.prototype
- النماذج الأولية الأصيلة Native prototypes
- توابِع النماذج الأولية والكائنات بلا proto
الباب التاسع: الأصناف Classes
- صياغة الأصناف الأساسية
- وراثة الأصناف Class inheritance
- الخاصيات والتوابع الثابتة
- الخاصيات والتوابع الخاصة والمحمية
- توسعة الأصناف المضمنة في اللغة
- فحص الأصناف عبر instanceof
- المخاليط Mixins
الباب العاشر: التعامل مع الأخطاء
الباب الحادي عشر: الوعود واللاتزامن والانتظار
- مقدمة إلى ردود النداء callbacks
- الوعود Promise
- سَلسلة الوعود Promises chaining
- التعامل مع الأخطاء: then وcatch
- واجهة الوعود البرمجية
- الدوال الواعدة: تحويل الدوال إلى وعود
- المهام السريعة مقابل الوعد لتنفيذ المهام لاحقًا
- اللاتزامن والانتظار async/await
الباب الثاني عشر: المولدات والمكررات المتقدمة
الباب الثالث عشر: الوحدات Modules
الباب الرابع عشر: مواضيع متفرقة