دورة البرمجة باستخدام جافا سكريبت Javascript

الوصف
لغة جافاسكربت Javascript هي لغة برمجة نصية تستخدم بشكل أساسي في متصفحات الإنترنت ويمكن استخدامها في مجالات أخرى مثل بناء تطبيقات الهواتف الذكية.
لماذا تتعلم جافاسكربت؟
- لغة لا بد من وجودها في مواقع الإنترنت الحديثة، لا يكاد موقع ويب مشهور لا يستخدمها
- لغة لا تحتاج لمتطلبات تشغيل يمكنك البدء باستخدام محرر نصوص و متصفح إنترنت
- باستخدامها يمكن بناء مواقع إنترنت تفاعلية ذات أداء و تجربة مستخدم أفضل
- مجال العمل الوظيفي بها واسع و مطلوبة في سوق العمل
- تعتبر من أشهر لغات البرمجة للواجهات.
في ماذا تستخدم Javascript؟
- تطوير صفحات الويب.
- تطوير تطبيقات الويب.
- تطوير الألعاب.
- تطوير تطبيقات الهواتف الذكية.
- تطوير تطبيقات سطح المكتب عبر تقنيات.
أشهر المكتبات و إطارات العمل في جافا سكربت:
- مكتبة جيكويري JQuery.
- مكتبة فيو جي اس Vue.Js.
- مكتبة Chart.Js.
- مكتبة TensorFlow.Js.
- إطار عمل أنجولار Angular.Js.
- إطار عمل رياكت React.
- إطار عمل نود جي اس Node.Js.
- إطار عمل باك بون جي اس Backbone.Js.
ماذا سنتعلم في هذه الدورة؟
- سنقوم بتنفيذ أكثر من مشروع
- التعامل مع المتغيرات Variables
- التعرف والتعامل مع أنواع البيانات Data Types
- الأحداث Events
- حلقات التكرار Loop
- المنطق البرمجي والشروط Logic
- الدوال البرمجية Functions
- مصفوفات البيانات Arrays
- الكائنات Objects
- التعرف على نسخ جافاسكربت ES5, ES6
- المجالات البرمجية Scopes
- التعديل على محتوى الصفحات DOM
- المؤثرات البصرية Animation
- البرمجة الشيئية OOP
- التعامل مع AJAX
- التعامل مع JSON
- كيفية التعامل مع الكعكات cookies
- التخاطب مع المتصفح BOM
- الفحص وحل المشاكل البرمجية Debugging
- التعامل مع الأخطاء البرمجية Error handling
- جودة وتنسيق البرمجة Code Style & Quality
- التعامل مع Promises async / await
- الاتصالات الشبكية Network Requests
- تخزين البيانات localStorage / indexedDb
المدرب
المشاريع
-
صفحة شخصية
هذه الصفحة مبنيه على شكل لينكس terminal ألقِ نظره عليها. هذه الصفحة عباره عن صفحة شخصية لعبدالله الزهراني. تجد في هذه الصفحة معلومات خاصه بعبدالله الزهراني مثل مهاراته ومشاريعه اللي سواها وكيف تتواصل معاه.
بواسطة: AbdullahAlzhrani
-
Graduate Plan
إضافة تساعد الطلاب في الجامعات على إعداد خطة التخرج وحساب المعدل التراكمي.
بواسطة: mohsowa
-
تتبع القراءة
تطبيق يمكنك من متابعة قراءة الكتب حيث تستطيع من خلاله تسجيل تاريخ البدء في الكتاب والانتهاء منه ومعرفة التقدم اي عدد الصفحات التي تم قراءتها وكتابة مراجعة عن الكتاب
بواسطة: Asma2021
الأقسام
المقدمة
سنتعرف في هذا القسم على هذه الدورة وماهي لغة جافاسكربت ومالأدوات التي سنحتاجها للعمل ومعلومات هامة للتعلم الذاتي والحصول على المساعدة
الحقيبة التدريبية (هديتك هنا)
ستجد في هذا القسم حقيبتك التدريبية والتي تحتوي على مراجع إضافية يمكنك التعلم منها + كتيب الأمثلة + الخرائط الذنية التي استخدمناها أثناء الدورة
الأساسيات
سنتعرف بهذا الدرس على الأمور الأساسية التي يجب التعرف عليها قبل البدء بالبرمجة باستخدام Javascript
مدخل إلى أنواع البيانات Data Types
سنتعرف في هذا القسم على أنواع البيانات البسيطة ماهي وكيف نتعامل معها
التفاعل مع المستخدمين Interactions
سنتعرف في السلسلة القادمة على كيفية التفاعل مع المستخدمين باستخدام النوافذ في Javascript
المنطق البرمجي Logic
المنطق البرمجي يستخدم لاتخاذ القرارات في البرمجة بناء على المخرجات المنطقية منها وسنتعرف في السلسلة القادمة على المنطق في البرمجة وكيفية التعامل معه
حلقات التكرار Loop
في السلسة القادمة سنتعرف على التكرار وأنواع وماهي فوائده
الدوال (الوظائف) Functions
حان الوقت للتعمق قليلا والتعرف على الوظائف Functions وكيف يمكن استخدامها لتحسين البرمجة واختصار الوقت
الكائنات Objects
ماهي الكائنات؟ سنتعرف في هذا القسم على الكائنات التي تعمل بطريقة مختلفة تماما عن Primitives في السابق
الأرقام Numbers
سنتعلم في هذا القسم طرق أخرى للتعامل مع الأرقام وسنتعامل أيضا مع الكائن Math للرياضيات
النصوص "السلاسل" Strings
سنقوم بهذا القسم من الدورة بدراسة النصوص أو السلاسل والدوال الإضافية لها كتحويل حالة الأحرف والبحث
المصفوفات Arrays
حان وقت تعلم المصفوفات وهي أحدى أنواع البيانات التي تقطع تحت مظلة الكائنات Objects وتستخدم لتخزين البيانات
الوقت والتاريخ Date & Time
الوقت والتاريخ لابد من استخدامها في لغات البرمجة لتحديد فترة زمنية معينة أو لمعرفة متى حدث شيء ما؟ سنتعلم في السلسلة القادمة كل شيء يخص التاريخ والوقت في دالة Date
ترميز كائنات جافاسكربت JSON
في السلسلة التالية سنتعلم كيفية استخدام JSON والذي يقوم بتحويل الكائنات لنصوص ليمكننا التعامل معها خارج لغة البرمجة
الجدولة والتوقيت Scheduling and Timing
سنقوم الآن بدراسة كيفية جدولة الأعمال البرمجية باستخدام javascript عبر استخدام وظائف في اللغة تساعدنا على تشغيل الشفرات البرمجية عبر توقيت زمني معين
استخدامات متقدمة في Functions & Objects
في هذا القسم سنتعرف على بعض الاستخدامات المتقدمة في الدوال "functions" والكائنات "objects"
البرمجة الكائنية (الشيئية) Object Oriented Programming OOP
سنتعرف في هذا الفصل على البرمجة الكائنية والتي يرمز لها بـ OOP وكيف يتم بناء classes لنقوم بتغليف البيانات أو تقليل كتابة المنطق البرمجي
التعامل مع الأخطاء Error Handling
ستحدث الأخطاء بلا شك أثناء التشغيل وقد تكون هذه الأخطاء لأسباب برمجية بحته وقد تكون لأسباب خارج نطاق المنطق البرمجي وسنتعرف بالسلسلة القادمة على كيفية التعامل معها
الوعود Promises
الآن وصلنا لمرحلة متقدمة نوعا ما أليس كذلك؟ أحسنت! هيا نتعرف على "الوعود" Promises وهي الكائنات التي تطلب من غيرها الإنتظار حتى تنتهي من عملها
الموديولز (الوحدات) Modules
سنتعرف في السلسلة القادمة على إحدى خصائص جافاسكربت التي تعتبر حديثة عليها الا وهي الوحدات Modules
التعامل مع الصفحات Document DOM
في السلسلة القادمة سنقوم بدراسة DOM وهي Document Object Model والتي من خلالها يمكننا الوصول للعناصر في المستند للصفحة والتعامل معها مثل تعديلها \ حذفها أو الإضافة عليها
الأحداث في الواجهة UI Events
سنتعلم في السلسلة القادمة كيفية التعامل مع الأحداث التي تتم في الواجهة مثل الضغط على ازرار الفأرة أو لوحة المفاتيح وكذلك أحداث نماذج البيانات والمتصفح نفسه.
أحداث النماذج Form events
وصلنا إلى النماذج forms. يوجد بها الكثير من الأحداث التي يمكن الاستفادة منها مثلا عند تغيير قيمة حقل معين أو الانتقال منه أو الاختيار المتعدد أو إرسال البيانات من النموذج
الأحداث في الصفحات Page Events
سنتحدث في هذا القسم عن الأحداث التي تتم في الصفحات والتي من خلالها نستطيع معرفة مثلا إذا تم تحميل الصفحة ومحتوى الصفحة ... الخ
النوافذ الخارجية Popup Windows
سنقوم بالسلسلة القادم بالتعرف على كيفية فتح النوافذ الخارجية في المتصفح والتعامل معها مثل اخذ البيانات منها واغلاقها
الإتصالات الشبكية Network Requests
وصلنا لمرحلة الاتصالات الشبكية الآن! وسنتعلم في الدروس القادمة كيفية القيام بالاتصالات الشبكية للحصول على معلومات أو إرسال بيانات معينة من خلال الصفحات باستخدام JavaScript
الكعكات Cookies
الكعكات Cookies هي عبارة عن بيانات صغيرة يتم تخزينها في متصفح المستخدم ونقلها عبر HTTP Requests وفي السلسلة القادمة سنقوم بالتعرف عليها والعمل معها
تخزين البيانات LocalStorage / SessionStorage
في السلسلة التالية سنتعرف على طريقة أخرى لتخزين البيانات في المتصفح وهي متقدمة قليلا عن Cookies وتختلف أيضا في طريقة عملها
قواعد البيانات IndexedDB
IndexedDB هي قواعد بيانات من نوع No-SQL مضمنة في المتصفحات وتعمل في لغة JavaScript وتستخدم لتخزين البيانات للتطبيقات في المتصفح.
العناصر المخصصة Custom Components
العناصر المخصصة "Custom components" هي عناصر يمكن تشكيلها لتصبح قوالب HTML قابلة لإعادة الاستخدام في المشاريع وسنتطرق لذلك في الدروس التالية
المشروع الأول #1
سنقوم بهذا المشروع بالتدرب على ماتعلمناه وتطبيقه في تنفيذ مشروع حاسبة تستخدم HTML + CSS + Javascript
المشروع الثاني #2
سنقوم بهذا المشروع بإنشاء تطبيق للملاحظات الشخصية والذي سوف يضم عدد من المفاهيم الكبيرة مثل Promises, Events, IndexedDB, Interactions, DOM
عينة من الدروس المجانية
-
تعرف على الدورة وعلى لغة Javascript
سنتعرف في هذا الدرس على هذه الدورة وعلى لغة جافاسكربت من ناحية تاريخها واستخدامتها والقيود الموجودة بها وفوائدها
المدة: 10:30
-
اختيار محرر برمجي جيد
سنتعرف على IDE والتي يقصد بها Integrated Development Environment وسنعرف من أين نحصل عليها
المدة: 02:23
-
التعرف على console
سنتعرف في هذا الدرس على console المدمجة في المتصفحات وادوات المطورين
المدة: 03:32
-
كيف تحصل على المساعدة والدعم؟
سنتعلم كيفية الحصول على المساعدة والدعم في حال واجهتنا أي مشكلة في هذه الدورة (أنا معك)
المدة: 01:55
-
كيف نحقق أقصى استفادة من هذه الدورة
سنتعرف على بعض المعلومات المفيدة من التعلم الذاتي في هذه المادة وبعض الأفكار التي تساعدك على التعلم والاستفادة قدر الإمكان
المدة: 03:45
-
كيفية كتابة javascript في ملفات html
سنتعلم في هذا الدرس كيفية إدراج برمجة Javascript داخل ملفات HTML بأكثر من طريقة
المدة: 05:29
-
بنية الجمل البرمجية وكتابة التعليقات
سنتعلم في هذا الدرس كيفية كتابة الجملة البرمجية وكيفية إدراج تعليقات على البرمجة
المدة: 06:44
-
الأرقام Numbers
سنتعرف في هذا الدرس على أنواع البيانات وسنبدا بالتعرف على الأرقام والتعامل معها حسابيا
المدة: 05:38
-
إدخال البيانات من خلال prompt
سنتعرف في هذا الدرس على prompt وهي النافذة التي تظهر للمستخدم لاستقبال بيانات منه
المدة: 02:46
-
العوامل الرياضية Operators
سنتعرف بهذا الدرس على العوامل الرياضية التي تجري الحسابات الرياضية برمجيا
المدة: 08:47
-
اتخاذ القرارات برمجيا باستخدام if condition
سندخل الآن لكيفية اتخاذ قرار ما بناء على بيانات معينة في البرمجة
المدة: 05:03
-
الوظائف Functions
ماهي الوظائف Functions وفوائدها وكيفية كتابتها برمجيا
المدة: 03:34
-
مفاهيم في البرمجة النظيفة مع الدوال Clean Coding
معلومات هامة جدا حول البرمجة النظيفة Clean Coding مع الدوال
المدة: 07:50
-
ماهي الكائنات Objects وكيف تكتب؟
سنتعرف في هذا الدرس على الكائنات والفرق بينها وبين Primitives ويقصد بـ primitives المتغيرات البدائية
المدة: 04:47
-
ماهو النسخ باستخدام المرجع Reference مع الكائنات
سنتعرف في هذا الدرس على كيفية نسخ الكائنات من خلال موقعها في الذاكرة reference
المدة: 06:22
-
طرق كتابة الأرقام الطويلة
هل فكرة في الأرقام المكونة من عدد كبير من الأصفار مثل المليون؟ سنتعرف في هذا الدرس على كيفية كتابتها بطرق مختصرة
المدة: 03:41
-
علامات التنصيص والفروقات بينها
تعلمنا في درس سابق الفروقات مابين علامات التنصيص وسنقوم بهذا الدرس بتعلم فروقات ومزايا آخرى
المدة: 04:14
-
ماهي المصفوفات وكيف نقوم بإنشائها
سنتعرف بهذا الدرس على المصفوفات "اهميتها ومافرقها عن objects" وكيف نقوم بإنشائها
المدة: 04:31
-
مقدمة في التاريخ والوقت Date & Time
سنتعرف في هذا الدرس على أهمية استخدام الوقت والتاريخ في البرمجة مع مثال لكيفية عمل ذلك
المدة: 03:22
-
ماهو JSON ؟
سنتعرف بهذا الدرس على JSON ماهي فائدته ولماذا يستخدم وماهو؟
المدة: 04:32
-
التوقيت باستخدام setTimeout
سنتعرف الآن على كيفية تشغيل كود برمجي معين بعد مضي فترة من الزمن
المدة: 04:03
-
مالمقصود بالبرمجة الكائنية OOP
سنتعرف في هذا الدرس على المقصود بالبرمجة الكائنية OOP وماهي فوائدها
المدة: 03:36
-
وعدتك! مقدمة في Promises
ماهو الوعد؟ الوعد يجعل الطرف الآخر ينتظر تنفيذه. وهذا بالضبط ما تفعله promises في JavaScript وسنتعرف عليها بعمق الآن
المدة: 07:40
-
ماهي Modules في جافاسكربت؟
سنتعرف في هذا الدرس على modules ولماذا تستخدم وماهي متطلبات التعامل معها
المدة: 06:32
-
على ماذا يحتوي متصفح الإنترنت؟
وصلنا لبر الأمان! سنتعرف الآن على المكونات الرئيسية للمتصفح أو "بيئة التشغيل" مثل DOM, BOM
المدة: 03:17
-
شجرة العناصر DOM Tree
سنتعرف في هذا الدرس على شجرة العناصر الموجودة في مستندات الإنترنت والتي تسمى DOM Tree وكيف يمكن الوصول لها
المدة: 08:06
-
ماهي الأحداث Events؟
سنتعرف الآن على ماهي الأحداث "events" في JavaScript وكيف يتم استخدامها
المدة: 06:00
-
بناء خوارزمية السحب والإفلات Drag & Drop
يوجد تحدي لاختبار فهمك الآن، هذا التحدي ليس سهلا حاول فهم المتطلبات وتطبيق هذا التحدي
المدة: 02:53
-
التنقل في عناصر النماذج
التنقل بين عناصر النماذج يساعدك كثيرا على التعامل معها وسنتعلم الآن كيف يمكن التنقل بين هذه العناصر
المدة: 07:31
-
مقدمة في HTTP requests & AJAX
في هذه المقدمة سنتعرف على AJAX & HTTP Requests
المدة: 05:45
-
مقدمة في Cookies
سنتعرف الآن على cookies والتي قد تسمى internet cookies, browser cookies على وظائفها ومكونات صناعتها!
المدة: 03:57
-
تعرف على localStorage & sessionStorage
سنتعرف في هذا الدرس على طرق تخزين البيانات باستخدام localStorage, sessionStorage والفرق الرئيسي بينها وبين cookies
المدة: 04:20
-
ماهي قواعد بيانات IndexedDB؟
في هذا الدرس سنتعرف على قواعد البيانات من نوع NoSQL والموجودة في متصفحات الإنترنت ومالذي يميزها عن الأنواع الأخرى من التخزين
المدة: 06:46
-
ماهي العناصر المخصصة Custom Components؟
سنتعرف بهذا الدرس وبشكل عملي على العناصر المخصصة Custom components. ماهي ولماذا نستخدمها؟
المدة: 04:54
-
ماهو Shadow DOM وماهو مفهوم Encapsulation ؟
سنتعرف في هذا الدرس على العناصر الخفية التي تكون موجودة داخل عناصر HTML وعلى مفهوم هام جدا في البرمجة وهو Encapsulation
المدة: 05:01
-
العنصر Template
سنتعرف على عنصر VIP! وهو العنصر template الذي لا يتحكم بمحتواه المتصفح ولا يتدخل في شؤونه!
المدة: 05:43
-
تعريف بالمشروع، مالذي سوف نقوم ببناؤه؟
سنقوم بهذا الدرس بشرح المشروع الذي سوف نقوم ببناءه مع بعض النصائح قبل البدء
المدة: 02:36
-
مقدمة مشروع تطبيق الملاحظات - مالذي سنقوم ببناؤه؟
سنقوم بهذا الدرس بالتعرف على المشروع وكيفية بناؤه وماهي التقنيات التي سوف نستخدمها
المدة: 05:43