مطالب پیشنهادی از سراسر وب

راهنمای کامل جاوااسکریپت 2020 (مبتدی و پیشرفته)

دسته بندی ها: آموزش های ویژه ، آموزش جاوااسکریپت (Javascript) ، آموزش های یودمی (Udemy) ، آموزش طراحی وب

جاوااسکریپت مدرن از ابتدا تا رسیدن به سطح متخصص JS! منابع لازم جاوااسکریپت در سال 2020 در این دوره قرار دارد.

آنچه که خواهید آموخت:

  • JavaScript - مبتدی تا پیشرفته
  • کلیه ویژگی های اصلی و مفاهیمی که باید در توسعه جاوااسکریپت مدرن بدانید.
  • هر چیزی که برای تبدیل شدن به متخصص جاوااسکریپت و درخواست شغل جاوااسکریپت، لازم است.
  • یادگیری پروژه محور با مثال های فراوان
  • اطلاعات مربوط به متغیرها، توابع، آبجکت ها و آرایه ها
  • برنامه نویسی شی گرا
  • بررسی عمیق نمونه های اولیه، موتور های جاوااسکریپت و نحوه عملکرد آن در پشت صحنه
  • دستکاری صفحات وب (= DOM) با JavaScript
  • هندلینگ رویداد، برنامه نویسی ناهمزمان و درخواست های HTTP
  • برنامه نویسی متا، بهینه سازی عملکرد، نشت حافظه
  • تست، امنیت و استقرار
  • و خیلی بیشتر!

توضیحات دوره

JavaScript مهمترین زبان برنامه نویسی است که باید به عنوان یک توسعه دهنده وب یاد بگیرید و در این دوره همه موارد مرتبط با جاوااسکریپت را فرا خواهید گرفت. جامع ترین و مدرن ترین دوره ای که می توانید در مورد جاوااسکریپت بیابید و مبتنی بر تمام دانش و تجربه آموزش مدرس دوره و شامل تمرین ها است. این دوره یک راهنمای کامل است، از پایه های اصلی زبان و همچنین مرجع گسترده زبان و محیط JavaScript، اطمینان حاصل می شود تا هم افراد تازه وارد و هم توسعه دهندگان با تجربه JavaScript از این دوره سود فراوان کسب کنند!

این دوره بسیار بزرگ است زیرا با دانش مهم و مطالب مفید همراه است. از اصول اولیه تا مفاهیم پیشرفته و تخصص های جاوااسکریپت و مباحث تخصصی مانند بهینه سازی عملکرد و تست، همه موارد فوق را شامل می شود.

این دوره بر اساس تجربه مدرس دوره به عنوان یک توسعه دهنده بلند مدت جاوااسکریپت و همچنین مدرسی با بیش از 1000،000 دانشجو در Udemy و همچنین در کانال یوتیوب Academind است. این پکیج با مثال ها، دمو ها، پروژه ها، تمارین، کوئیز ها و البته ویدیو ها - همه با هدف ارائه بهترین راه ممکن برای یادگیری جاوااسکریپت است.

این دوره شامل چه مواردی است؟

این دوره با محتوای واضح پر شده است - بنابراین توصیه می شود که کلیه برنامه های درسی دوره را بررسی کنید تا ایده کاملی از کلیه مباحث دریافت کنید. به طور کلی، آنچه در این دوره پیدا خواهید کرد:

  • JavaScript مدرن از ابتدا: سینتکس JavaScript با گذشت زمان تغییر کرده و در این دوره، شما جدیدترین سینتکس را از ابتدا یاد می گیرید (البته این مورد قدیمی را نیز آموزش داده می شود، تا بتوانید در هر پروژه JS کار کنید).
  • همه اصول: متغیرها، ثابت ها، توابع، نحوه بارگذاری اسکریپت ها و غیره
  • آرایه ها و آبجکت ها: ساختار های داده بسیار مهم را با جزئیات کامل بررسی خواهید شد.
  • ساختار های کنترل: نحوه اجرای کد را بصورت مشروط و به صورت حلقه درک کنید.
  • نگاهی به پشت صحنه: چگونه موتور های جاوااسکریپت در پشت صحنه کار می کنند و این برای ما چه معنی دارد.
  • بررسی عمیق مفاهیم اصلی: همه موارد ویژه در مورد توابع JavaScript، سینتکس های مختلف
  • کار با DOM: نحوه دستکاری صفحات وب به صورت پویا از طریق JavaScript (شامل بررسی عمیق و موارد استفاده متفاوت)
  • رویدادها در جاوااسکریپت: یاد بگیرید که چگونه به طیف گسترده ای از رویدادها (مانند کشیدن و رها کردن) را listen کنید و کد مناسب را اجرا کنید.
  • کلاس ها و برنامه نویسی مبتنی بر شی: یاد بگیرید که چگونه با کلاس ها، نمونه های اولیه، کلمه کلیدی "this"، توابع سازنده و موارد دیگر کار کنید.
  • برنامه نویسی ناهمزمان و همزمان: برای اجرای صحیح کد، به بررسی لینک های برگشتی، promise ها، async / await و سایر ابزارها و ویژگی های مهم زبان می پردازیم.
  • درخواست های Http: یاد بگیرید که چگونه درخواست های Http را از طریق JavaScript ارسال کنید.
  • ابزار دقیق، بهینه سازی و پشتیبانی از مرورگر: تقسیم کد، تولید کد کوچک و اطمینان از عملکرد اسکریپت ها در همه مرورگرها - این موضوع مهمی است و از این رو با جزئیات کامل پوشش داده می شود.
  • کتابخانه ها و فریمورک ها: درباره کتابخانه هایی مانند Axios یا فریمورک هایی مانند React.js اطلاعاتی کسب کنید - درمورد اهمیت آنها و نحوه استفاده
  • Node.js: در حالی که برای اکثر دوره ها روی سمت مرورگر تمرکز می کنیم (زیرا سینتکس یکسان است)، یک بخش اختصاصی در Node.js وجود دارد تا همه چیز را در مورد هاست جاوااسکریپت بدانیم.
  • امنیت و بهینه سازی عملکرد: البته امنیت نیز مهم است، بنابراین جای تعجب ندارد که هر دو در این دوره پوشش داده می شوند.
  • تست خودکار: تست دستی کار سختی است و می تواند غیر قابل اعتماد باشد - در این دوره همچنین شما می توانید معرفی ای برای تست خودکار بگیرید.

پیش نیاز های دوره چیست؟

  • دانش JavaScript لازم نیست - شما آن را از ابتدا یاد می گیرید!
  • شما همچنین به هیچ تجربه برنامه نویسی غیر از دانش اولیه توسعه وب (مثلاً نحوه کار وب) نیاز ندارید.
  • دانش پایه HTML و CSS توصیه می شود اما نه یک امر ضروری

این دوره برای چه افرادی است:

  • دانشجویان مبتدی توسعه وب که بی تجربه اند یا تجربه کمی در جاوااسکریپت دارند.
  • همچنین، توسعه دهندگان که اصول اولیه جاوااسکریپت را می دانند و می خواهند دانش خود را عمیق تر کنند.
  • توسعه دهندگان پیشرفته جاوااسکریپت که می خواهند اطلاعات بیشتری در مورد جزئیات ظرافتی کسب کنند و به مفاهیم پیشرفته شیرجه بزنند.
  • همه علاقه مندان به یادگیری جاوااسکریپت

الزامات

  • هیچ دانش قبلی نسبت به JavaScript لازم نیست.
  • دانش پایه ای در زمینه توسعه وب توصیه می شود.
  • درک اساسی HTML و CSS کمک می کند اما لازم نیست.

محتوای دوره

  • معرفی
    • معرفی
    • JavaScript چیست؟
    • جاوااسکریپت در عمل!
    • پیوستن به جامعه یادگیری آنلاین
    • نحوه اجرای JavaScript
    • مقایسه زبان های تایپ پویا و ضعیف
    • جاوااسکریپت در یک محیط میزبان اجرا می شود
    • مباحث دوره - در این دوره چیست؟
    • چگونه می توان از این دوره بیشترین بهره را برد
    • استفاده از منابع دوره
    • مقایسه JavaScript و Java
    • تاریخچه مختصر JavaScript
    • راه اندازی یک محیط توسعه
    • سؤالات متداول دوره
  • مبانی: متغیرها، انواع داده ها، اپراتورها و توابع
    • ماژول معرفی
    • راه اندازی پروژه
    • اطلاعات بیشتر در مورد Version Control و Git
    • افزودن JavaScript به وب سایت
    • معرفی متغیرها و ثابت ها
    • اعلام و تعریف متغیرها
    • کار با متغیرها و اپراتورها
    • متغیرها و اپراتورها
    • درک کد شروع
    • انواع داده ها: اعداد و رشته ها (متن)
    • استفاده از Constants
    • اطلاعات بیشتر در مورد رشته ها
    • انواع داده ها و Constants
    • زمان تمرین: متغیرها، ثابت ها، اپراتورها و انواع داده های اصلی
    • معرفی توابع
    • افزودن یک تابع سفارشی
    • استایل ها، کنوانسیون ها و سینتکس کد
    • بازگشت مقادیر
    • اهمیت و عدم اهمیت سفارشی کردن کد
    • تعریفی از حوزه گلوبال و محلی
    • "متغیر های سایه دار"
    • اطلاعات بیشتر درباره Statement "بازگشت"
    • اجرای توابع "غیر مستقیم"
    • اجرای "غیر مستقیم" در مقابل "مستقیم" عملکرد - خلاصه
    • توابع و مقیاس
    • زمان تمرین: توابع
    • تبدیل انواع داده
    • مخلوط کردن اعداد و رشته ها
    • تقسیم کد به توابع
    • اتصال همه دکمه ها به توابع
    • کار با Code Comments
    • اپراتور های بیشتر!
    • انواع داده اصلی دیگر!
    • استفاده از آرایه ها
    • ایجاد آبجکت ها
    • آبجکت ها - نحوی مشترک Gotchas
    • دسترسی به داده های آبجکت
    • آرایه ها و آبجکت ها
    • افزودن یک عملکرد قابل استفاده مجدد که از آبجکت ها استفاده می کند
    • undefined، null و NaN
    • اپراتور "نوع"
    • "undefined"، "null" و "NaN"
    • ایمپورت اسکریپت به طور صحیح با "defer" و "async"
    • ایمپورت JavaScript - خلاصه
    • نتیجه گیری
    • منابع و لینک های مفید
  • توسعه کارآمد و اشکال زدایی
    • ماژول معرفی
    • توسعه کارآمد و اشکال زدایی - بررسی
    • پیکربندی IDE Look & Feel
    • استفاده از میانبرها
    • کار با نکات خودکار و تکمیل خودکار
    • نصب برنامه های افزودنی IDE
    • تنظیمات ویرایشگر Tweaking
    • استفاده از ویو های مختلف IDE
    • یافتن راهنما و کار با MDN
    • استاندارد ECMAScript
    • چگونه به طور صحیح "google" کنیم
    • اشکال زدایی در JavaScript - بررسی
    • پیام خطا! هیچ دلیلی برای وحشت وجود ندارد!
    • استفاده از ()console.log برای نگاه کردن به "کد"
    • اشکال زدایی در سطح بعدی با Chrome & Deepools Chromebooks
    • تغییر کد تست به طور مستقیم در Devtools تغییر می کند
    • کد اشکال زدایی مستقیماً در داخل VS Code
    • نتیجه گیری
    • منابع و لینک های مفید
  • کار با ساختار های کنترل (if Statements، حلقه ها، هندلینگ خطا)
    • ماژول معرفی
    • معرفی if" Statements" و اپراتور های بولین (مقایسه)
    • استفاده از Booleans در Conditions و موارد دیگر در مقایسه متن
    • استفاده از"if" Statements
    • کار با "if"، "other" و "other-if"
    • در مقایسه آبجکت ها و آرایه ها برای تساوی مراقب باشید!
    • اپراتورهای منطقی AND و یا OR
    • درک تقدم اپراتور
    • if و اپراتورهای Boolean - اصول اولیه
    • ورای true/ false: مقادیر "درست" و "غلط"
    • اجبار در مقابل تبدیل
    • مقادیر درست و غلط
    • راه اندازی یک پروژه بزرگتر ("Monster Killer")
    • تابع "Attack" را اضافه کنید
    • استفاده از عبارات "if" برای بررسی وضعیت Win-Condition
    • افزودن موارد بیشتر "if Statement" و "Strong Attack"
    • قابلیت
    • زمان عملکرد "Heal Player"!
    • کنترل عمر پاداش مشروط (بدون اپراتورهای بولین!)
    • اضافه کردن قابلیت "Reset Game"
    • اعتبار سنجی ورودی کاربر
    • استفاده از Global Constants به عنوان شناسه ها در کد شرطی
    • اضافه کردن Battle Log شرطی
    • معرفی اپراتور سه گانه
    • تئوری کمی: Statements در مقابل Expressions
    • اپراتور منطقی "Tricks" و Shorthands
    • اپراتور های منطقی - خلاصه سریع
    • اپراتور های منطقی و نحوه کار آنها
    • کار با Statement "switch-case"
    • معرفی حلقه ها
    • حلقه "for"
    • حلقه "for-of"
    • حلقه "for-in"
    • حلقه های "while" و "do-while"
    • حلقه ها - مبانی
    • زمان تمرین: کنترل ساختارها
    • کنترل حلقه ها با "break"
    • کنترل تکرار با "continue"
    • کنترل بیشتر با Statement های دارای برچسب
    • break و continue
    • مدیریت خطا با "try-catch" - معرفی
    • پرتاب خطا های سفارشی
    • کار با "try-catch" برای گرفتن و هندل کردن خطا
    • مدیریت خطا
    • نتیجه گیری
    • منابع و لینک های مفید
  • پشت صحنه و بررسی گذشته (ES3، ES5) و بررسی حال (ES6 +) جاوااسکریپت
    • ماژول معرفی
    • (ES5 vs ES6 + ("Next Gen JS" - تکامل JavaScript
    • var در مقابل let & const - معرفی "Block Scope"
    • درک "Hoisting"
    • حالت دقیق و نوشتن کد خوب
    • "تخصص های جاوااسکریپت"
    • چگونه کد تجزیه و کامپایل می شود
    • داخل موتور جاوااسکریپت - نحوه اجرای کد
    • بررسی دقیق زبان جاوااسکریپت در مقابل برنامه های مرورگر
    • مقادیر اولیه در مقابل مرجع
    • جمع آوری زباله و مدیریت حافظه
    • نتیجه گیری
    • منابع و لینک های مفید
  • اطلاعات بیشتر در مورد توابع
    • ماژول معرفی
    • دانش توابع - آنچه تاکنون می دانیم
    • پارامترها در مقابل آرگومان
    • توابع در مقابل متد
    • توابع آبجکت ها هستند!
    • عبارات Expressions: ذخیره توابع در متغیرها
    • عبارات Expressions در مقابل توابع اعلامی
    • توابع ناشناس
    • کار روی پروژه: اضافه کردن گزینه های کاربری به بازی
    • اجرای منطق بازی اصلی
    • معرفی توابع Arrow
    • نحو های مختلف عملکرد Arrow
    • ایجاد توابع
    • پیام های ارسال شده به کاربر
    • آرگومان های پیش فرض در توابع
    • معرفی پارامتر های Rest ("عملگر Rest")
    • ایجاد توابع تو در تو
    • درک توابع بازگشتی
    • زمان تمرین: توابع
    • کار با "()bind"
    • توابع - پیشرفته
    • افزودن ()bind به  پروژه ماشین حساب
    • ()call و ()apply
    • نتیجه گیری
    • منابع و لینک های مفید
  • همکاری با DOM (مرورگر HTML کد) در JavaScript
    • ماژول معرفی
    • "DOM" چیست؟
    • سند و آبجکت Window
    • درک DOM و نحوه ایجاد آن
    • گره ها و عناصر - بررسی پرس و جو DOM
    • انتخاب عناصر در DOM
    • خلاصه: متد های پرس و جو Node
    • کاوش و تغییر خصوصیات DOM
    • Attributes درمقابل Properties
    • انتخاب چندین عنصر و خلاصه
    • مبانی DOM
    • زمان تمرین: پرس و جو DOM
    • Traversing DOM - بررسی
    • Traversing گره های فرزند
    • استفاده از motherNode و motherElement
    • انتخاب عناصر Sibling
    • DOM Traversal vs Query Methods
    • عناصر DOM یک ظاهر طراحی شده
    • ایجاد عناصر با JS - بررسی
    • افزودن عناصر از طریق HTML در Code
    • افزودن عناصر از طریق ()createElement
    • درج عناصر DOM
    • کلونینگ گره های DOM
    • لیست های گره Live در مقابل لیست های گره استاتیک
    • حذف عناصر
    • خلاصه متد درج و حذف
    • خلاصه: درج، جایگزینی، حذف
    • تنظیم پروژه تمرین
    • دکمه Modal و "Add" را انتخاب کنید
    • افتتاح یک مودال با تغییر کلاس های CSS
    • کنترل پس زمینه
    • واکشی و اعتبار سنجی ورودی کاربر
    • ایجاد یک فیلم در JavaScript و پاک کردن ورودی
    • ارائه موارد فیلم روی صفحه
    • حذف عناصر فیلم
    • نمایش و پنهان کردن دیالوگ "Are you sure?"
    • شروع منطق تأیید
    • اتمام اپلیکیشن
    • نتیجه گیری
    • منابع و لینک های مفید
  • اطلاعات بیشتر در مورد Arrays و Iterables
    • ماژول معرفی
    • "Iterables" و "Array-like Objects" چیست؟
    • ایجاد آرایه ها
    • کدام داده ها را می توانید در آرایه ها ذخیره کنید؟
    • ()push(), pop(), unshift(), shift - اضافه کردن و حذف عناصر
    • متد ()splice
    • انتخاب دامنه ها و ایجاد نسخه هایی با ()splice
    • افزودن آرایه به آرايه ها با ()concat
    • بازیابی فهرست های با ()indexOf / و ()lastIndexOf
    • یافتن موارد: ()find و ()findIndex
    • آیا شامل آن است؟
    • جایگزین برای حلقه ها: متد ()forEach
    • تبدیل داده ها با ()map
    • sort()ing و reverse()ing
    • فیلتر کردن آرایه ها با ()filter
    • درخشش توابع Arrow!
    • متد مهم ()reduce
    • متد های زنجیره ای در JavaScript
    • آرایه ها و رشته ها - ()split و ()join
    • Spread Operator (...)
    • درک آرایه
    • Maps و Sets - بررسی
    • کار با Sets
    • کار با Maps
    • Maps در مقابل آبجکت ها
    • درک WeakSet
    • درک WeakMap
    • زمان برای تمرین: آرایه ها و Iterables
    • نتیجه گیری
    • منابع و لینک های مفید
  • اطلاعات بیشتر در مورد آبجکت ها
    • ماژول معرفی
    • آبجکت چیست؟
    • آبجکت ها و مقادیر اولیه
    • آبجکت ها - جمع آوری
    • افزودن، اصلاح و حذف ویژگی ها
    • نام های کلیدی ویژه و دسترسی به ویژگی براکت
    • انواع Property و ترتیب Property
    • دسترسی به دارایی پویا و تنظیم ویژگی های پویا
    • خصوصیات آبجکت
    • برنامه نسخه نمایشی و مختصر املاک Shorthand
    • ارائه عناصر بر اساس آبجکت ها
    • حلقه های ورودی و ویژگی های پویا خروجی
    • اضافه کردن قابلیت های فیلتر
    • درک "زنجیر زدن" (زنجیره املاک و متد)
    • Operator Spread Operator
    • درک ()Object.assign
    • خرابی آبجکت
    • بررسی وجود Property
    • معرفی "this"
    • متد Shorthand سینتکس
    • کلید واژه "this" و رفتار عجیب آن
    • ()call و ()apply
    • کاری که مرورگر (بعضی اوقات) برای "this" انجام می دهد
    • "this" و توابع Arrow
    • "this" - خلاصه
    • "this"
    • گیرنده ها و تنظیمات
    • نتیجه گیری
    • منابع و لینک های مفید
  • برنامه نویسی شی گرا (OOP) و کلاس ها
    • ماژول معرفی
    • "برنامه نویسی شی گرا" (OOP) چیست؟
    • شروع کار با کد OOP
    • تعریف و استفاده از First Class
    • کار با متد های Constructor 
    • فیلد در مقابل Properties
    • کاربرد و Connecting چند کلاسه
    • متد های کلاس اتصال و کار با "this"
    • افزودن کلاس Cart و Shop
    • برقراری ارتباط می تواند چالش برانگیز باشد!
    • متد ها و خصوصیات استاتیک
    • First Summary و  Classes در مقابل Object Literals
    • Getters و Setters
    • معرفی وراثت
    • اجرای وراثت
    • استفاده از وراثت در همه جا
    • Overriding متد ها و سازنده ()super
    • اجرای سازنده ()super، دستور و "this"
    • روش های مختلف اضافه کردن متد ها
    • ویژگی های خصوصی
    • ویژگی های شبه خصوصی
    • زمان تمرین: کلاس ها و OOP
    • اپراتور "instof"
    • کلاس های داخلی
    • درک توصیف کنندگان آبجکت
    • کلاس ها
    • نتیجه گیری
    • منابع و لینک های مفید
  • بررسی عمیق: توابع Constructor و Prototypes
    • ماژول معرفی
    • معرفی توابع سازنده
    • توابع Constructor در مقابل کلاس ها و درک "new"
    • معرفی Prototypes
    • Prototypes - خلاصه
    • کار با Prototypes
    • زنجیره Prototypes و "Object" گلوبال
    • توابع Constructor و Prototypes
    • کلاس ها و Prototypes
    • متد ها در کلاس ها و Constructor 
    • Prototypes ساخته شده در JavaScript
    • تنظیم و گرفتن Prototypes
    • نتیجه گیری
    • منابع و لینک های مفید
  • تمرین: OOP و Classs
    • ماژول معرفی
    • اولین مراحل و برنامه ریزی پروژه
    • ایجاد لیست پروژه ها و تجزیه داده های عناصر
    • شروع با منطق "Switch Project"
    • گذر از منابع متد
    • انتقال عناصر DOM
    • افزودن یک راهنمای ابزار
    • وراثت را اضافه کنید
    • نتیجه گیری
    • منابع و لینک های مفید
  • بازگشت به DOM و API های بیشتر مرورگر
    • ماژول معرفی
    • استفاده از "dataset" (داده ها - مشخصات)
    • گرفتن ابعاد جعبه عنصر
    • کار با عناصر اندازه ها و موقعیت ها
    • DOM و نمونه های اولیه
    • موقعیت یابی راهنمای ابزار
    • دست زدن به پیمایش
    • کار با تگ های <template>
    • بارگیری اسکریپت ها به صورت پویا
    • تنظیم تایمر و بازه ها
    • آبجکت ها "location" و "history"
    • "navigator" شی
    • کار با Dates
    • آبجکت "Error" و تابع سازنده
    • نتیجه گیری
    • منابع و لینک های مفید
  • کار با رویدادها
    • ماژول معرفی
    • معرفی رویداد های JavaScript
    • راه های مختلف گوش دادن به رویداد ها
    • حذف شنوندگان رویداد
    • آبجکت "رویداد"
    • انواع رویداد های پشتیبانی شده
    • مثال: پیمایش اولیه بی نهایت
    • کار با "()preventDefault"
    • درک مراحل "Capturing" و "Bubbling"
    • انتشار رویداد و "()stopPropagation"
    • استفاده از Event Delegation
    • برنامه نویسی عناصر DOM را فعال کنید
    • توابع کنترل کننده رویداد و "this"
    • رویداد ها
    • کشیدن و رها کردن - نظریه
    • عناصر قابل کشیدن را پیکربندی کنید
    • علامت گذاری "Drop Area"
    • رها کردن و انتقال داده ها + عناصر
    • تنظیمات Firefox
    • نتیجه گیری
    • منابع و لینک های مفید
  • مفاهیم توابع پیشرفته
    • ماژول معرفی
    • توابع خالص و اثرات جانبی
    • توابع ناخالص در مقابل توابع خالص
    • توابع Factory
    • Closures
    • Closures در تمرین
    • نتیجه گیری و مدیریت حافظه
    • آپشنال: IIFE
    • معرفی "Recursion"
    • بازگشت پیشرفته
    • توابع پیشرفته
    • نتیجه گیری
    • منابع و لینک های مفید
  • اطلاعات بیشتر در مورد اعداد و رشته ها
    • ماژول معرفی
    • چگونه اعداد در جاوااسکریپت کار می کنند؟
    • نقطه شناور (Im) دقیق
    • نوع BigInt
    • آبجکت ها گلوبال "Number" و "Math"
    • مثال: بین حداقل / حداکثر تعداد تصادفی ایجاد کنید
    • کاوش در متدهای رشته
    • الگوهای تگ شده
    • معرفی عبارات منظم ("RegEx")
    • اطلاعات بیشتر در مورد عبارات منظم
    • نتیجه گیری
    • منابع و لینک های مفید
  • جاوااسکریپت غیرهمزمان: Promises و Callbacks
    • ماژول معرفی
    • درک اجرای کد همزمان ("Sync Code")
    • درک اجرای کد ناهمزمان ("Sync Code")
    • مسدود کردن کد و "Event Loop"
    • همزمان سازی + کد Async - دستور اجرا
    • مولتی Callbacks و  setTimeout(0)
    • کد ناهمزمان
    • شروع با Promises
    • زنجیره مولتی Promises
    • مدیریت خطای Promises
    • حوزه Promises و "finally"
    • Async/ await
    • Async/ await و هندل خطا
    • Async/ await در مقابل "Raw Promises"
    • ()Promise.all(), Promise.race غیره.
    • Promises و async/ await
    • نتیجه گیری
    • منابع و لینک های مفید
  • کار با درخواست های HTTP
    • ماژول معرفی
    • چرا و چگونه
    • چگونه وب کار می کند
    • پیش زمینه بیشتر در مورد Http
    • شروع کار با Http
    • ارسال درخواست GET
    • داده و تجزیه داده های JSON
    • بررسی عمیق داده های JSON
    • تکمیل درخواست های HTTP (با XMLHttpRequest)
    • ارسال داده با درخواست POST
    • درخواست های ایجاد شده از طریق UI
    • دکمه "Fetch" همیشه پیوست می شود
    • ارسال درخواست DELETE
    • مدیریت خطاها
    • استفاده از fetch() API
    • ارسال داده با fetch() API
    • افزودن هدرهای درخواست
    • ()fetch و مدیریت خطا
    • XMLHttpRequest در برابر ()fetch
    • کار با FormData
    • نتیجه گیری
    • منابع و لینک های مفید
  • کار با کتابخانه های JavaScript
    • ماژول معرفی
    • چرا و چگونه
    • افزودن كتابخانه ها (مثال: lodash)
    • مثال: jQuery
    • کشف کتابخانه ها
    • کتابخانه Axios و درخواست های HTTP
    • ملاحظات کتابخانه شخص ثالث
    • نتیجه گیری
    • منابع و لینک های مفید
  • JavaScript ماژولار (کار با ماژول ها)
    • ماژول معرفی
    • تقسیم کد به متد زیر مطلوب
    • اولین قدم به سمت ماژول های JavaScript
    • ما به یک سرور توسعه نیاز داریم!
    • اولین کار import / export
    • جابجایی همه فایل ها برای استفاده از ماژول ها
    • بیشتر با عنوان تغییرات نحوی صادراتی
    • کار با Export پیش فرض
    • import پویا و تقسیم کد
    • چه موقع کد ماژول اجرا می شود؟
    • Scope ماژول و This گلوبال
    • ماژول ها
    • نتیجه گیری
    • منابع و لینک های مفید
  • ابزار های جاوااسکریپت و گردش کار
    • ماژول معرفی
    • محدودیت پروژه و چرا ما به ابزار احتیاج داریم
    • بررسی گردش کار
    • تنظیم یک پروژه npm
    • کار با پکیج های npm
    • پوشش با ESLint
    • پیکربندی ESLint
    • بسته بندی با Webpack
    • جایزه: امتیاز ورودی چندگانه
    • حالت توسعه و رفع "Lazy Loading"
    • استفاده از webpack-dev-server
    • ایجاد Sourcemaps
    • ساخت محصول
    • بهینه سازی نهایی
    • استفاده از بسته های شخص ثالث با npm و Webpack
    • نتیجه گیری
    • منابع و لینک های مفید
  • استفاده از ذخیره سازی مرورگر
    • ماژول معرفی
    • گزینه های ذخیره سازی مرورگر
    • localStorage و sessionStorage
    • شروع به کار با کوکی ها
    • کار با کوکی ها
    • شروع به کار با IndexedDB
    • کار با IndexedDB
    • نتیجه گیری
    • منابع و لینک های مفید
  • پشتیبانی جاوااسکریپت و مرورگر
    • ماژول معرفی
    • "Browser Support" درباره چیست؟
    • تعیین پشتیبانی از مرورگر برای ویژگی JavaScript
    • تعیین پشتیبانی لازم
    • راه حل: تشخیص ویژگی + کد Fallback
    • راه حل: استفاده از Polyfills
    • راه حل: کد انتقال
    • بهبود: شناسایی به طور خودکار + اضافه کردن Polyfills
    • پشتیبانی خارج از مرورگرها در مورد چیست؟
    • پشتیبانی مرورگر در خارج از فایل های JavaScript
    • نتیجه گیری
    • منابع و لینک های مفید
  • زمان تمرین: اپلیکیشن Share My Place
    • ماژول معرفی
    • راه اندازی پروژه
    • دسترسی به DOM
    • گرفتن موقعیت مکانی کاربر
    • بازخورد افزودن (نمایش یک مودال)
    • پنهان کردن مودال
    • ارائه نقشه با Google Maps
    • ادامه بدون کارت اعتباری
    • یافتن آدرس و گرفتن مختصات
    • تبدیل ورودی کاربر به مختصات
    • ایجاد لینک "Share Place"
    • کپی کردن لینک به Clipboard
    • ارائه صفحه "Share Place"
    • منابع و لینک های مفید
  • کار با فریمورک های جاوااسکریپت
    • ماژول معرفی
    • چرا و چگونه؟
    • ایده پشت React.js
    • تجزیه و تحلیل یک پروژه React
    • نتیجه گیری
    • منابع و لینک های مفید
  • برنامه نویسی متا: نمادها، Iterators، ژنراتورها، Reflect API و Proxy API
    • ماژول معرفی
    • درک نمادها
    • نماد های شناخته شده
    • درک  Iterators
    • ژنراتورها و آبجکت های Iterators
    • خلاصه ژنراتورها و مثال های Iterables داخلی
    • Reflect API
    • API پروکسی و اولین "Trap"
    • کار با Proxy Traps
    • نتیجه گیری
    • منابع و لینک های مفید
  • Node.js: معرفی
    • ماژول معرفی
    • JavaScript یک زبان میزبان است
    • نصب و مبانی
    • درک ماژول ها و دسترسی به فایل
    • کار با درخواست های Http ورودی
    • ارسال پاسخ (داده HTML)
    • تجزیه داده های ورودی
    • معرفی و نصب Express.js
    • Express.js: مبانی
    • استخراج داده ها
    • ارائه HTML سمت سرور با الگوها و EJS
    • بهبود پروژه
    • اضافه کردن مسیر های اصلی REST
    • درک CORS (تقسیم منبع متقابل)
    • ارسال شناسه موقعیت مکانی به Frontend
    • با افزودن مسیر موقعیت مکانی GET
    • معرفی MongoDB (بانک اطلاعات)
    • هندلینگ خطای NodeJS
    • نتیجه گیری
    • منابع و لینک های مفید
  • امنیت
    • ماژول معرفی
    • بررسی روزنه های امنیتی و افشای داده ها در کد
    • حملات XSS
    • کتابخانه های شخص ثالث و XSS
    • XSS و افشای اطلاعات محرمانه
    • حملات CSRF (جعل درخواست متقابل سایت)
    • CORS (تقسیم منابع متقابل)
    • نتیجه گیری
    • منابع و لینک های مفید
  • توسعه کد جاوااکریپت
    • ماژول معرفی
    • مراحل استقرار
    • انواع مختلف وب سایت
    • مثال: استقرار میزبان استاتیک (بدون کد سمت سرور)
    • اکسپورت تزریق اسکریپت به صورت خودکار در HTML
    • مثال: استقرار صفحه پویا (با کد سمت سرور)
    • منابع و لینک های مفید
  • عملکرد و بهینه سازی
    • ماژول معرفی
    • "بهینه سازی عملکرد" ​​درباره چیست؟
    • پتانسیل های بهینه سازی
    • اندازه گیری کارایی
    • بررسی عمیق Devtools مرورگر (برای اندازه گیری عملکرد)
    • منابع بیشتر
    • آماده سازی تست
    • بهینه سازی زمان راه اندازی و استفاده از کد / پوشش
    • بروز رسانی صحیح DOM
    • بروزرسانی صحیح لیست ها
    • بهینه سازی چیزهای کوچک
    • میکرو بهینه سازی (دو بار فکر کنید!)
    • یافتن و رفع نشت حافظه
    • بهینه سازی عملکرد سمت سرور
    • نتیجه گیری
    • منابع و لینک های مفید
  • معرفی تست
    • ماژول معرفی
    • تست چیست؟ چرا مهم است؟
    • راه اندازی تست
    • نوشتن و اجرای تست واحد
    • نوشتن و اجرای تست یکپارچه
    • نوشتن و اجرای تست e2e
    • برخورد با کد Async
    • کار با Mocks
    • منابع و لینک های مفید
  • پاداش: پارادایم های برنامه نویسی (مقایسه رویه ای و شی گرا و تابعی)
    • ماژول معرفی
    • پارادایم های برنامه نویسی چیست؟
    • برنامه نویسی رویه ای در عمل
    • برنامه نویسی شی گرا در عمل
    • برنامه نویسی تابعی در عمل
    • نتیجه گیری
    • منابع و لینک های مفید
  • جایزه: ساختار داده ها و معرفی الگوریتم ها
    • ماژول معرفی
    • "ساختار داده" و "الگوریتم" چیست؟
    • مثال اول
    • حل مشکلات شبیه به هم متفاوت است
    • تابع و حاشیه نویسی "Big O"
    • پیچیدگی های زمانی و مقایسه الگوریتم ها
    • اطلاعات بیشتر در مورد Big O
    • نمونه های بیشتر
    • بررسی عمیق ساختار داده ها و پیچیدگی های زمانی
    • از کجا بیشتر بیاموزید و کامل کنید
    • منابع و لینک های مفید
  • پاداش: معرفی تایپ اسکریپت
    • ماژول معرفی
    • TypeScript چیست و چرا می توانید از آن استفاده کنید؟
    • کار با تایپ
    • تایپ اصلی و بررسی عمیق تر
    • تایپ شی، انواع آرایه و انواع تابع
    • تایپت پیشرفته (انواع Literal، انواع Union و Enums)
    • کلاس ها و رابط ها
    • تایپ عمومی
    • پیکربندی کامپایلر TypeScript
    • منابع و لینک های مفید
  • جایزه: مؤلفه های وب
    • ماژول معرفی
    • وب کامپوننت در عمل
    • وب کامپوننت چیست؟
    • چرا وب کامپوننت؟
    • شروع!
    • پشتیبانی مرورگر از وب کامپوننت
    • تنظیم توسعه
    • یک المنت سفارشی اول
    • تعامل با DOM اطراف
    • دانستن چرخه عناصر سفارشی
    • استفاده از "connectedCallback" برای دسترسی DOM
    • گوش دادن به وقایع درون مؤلفه
    • استفاده از ویژگی های عناصر سفارشی
    • عناصر ما را سبک کنید
    • همکاری با "Shadow DOM"
    • افزودن یک الگوی HTML
    • استفاده از شکاف ها
    • تعریف الگو در JavaScript
    • استفاده از برچسب های سبک در Shadow DOM
    • گسترش عناصر داخلی
    • زمان تمرین - مبانی
    • مراحل بعدی
    • درک پروژه DOM Shadow
    • محتوای "slot" سبک خارج از Shadow DOM
    • محتوای "slot" محتوای داخل Shadow DOM
    • بخش طراحی میزبان
    • یک ظاهر طراحی شده میزبان مشروط
    • طراحی با محتوای میزبان در ذهن
    • یک ظاهر طراحی پویا هوشمند با متغیر های CSS
    • تمیز کردن یک ظاهر طراحی کلی
    • مشاهده تغییرات ویژگی
    • تنظیم رفتار مؤلفه در هنگام تغییر ویژگی
    • استفاده از "disconnectedCallback"
    • افزودن متد ()render
    • تنظیم نهایی
    • مراحل بعدی
    • ایجاد مؤلفه اصلی مودال
    • اضافه کردن کانتینر مودال
    • سبک کردن عناصر مودال
    • اضافه کردن برخی منطق برنامه عمومی
    • باز کردن مودال از طریق CSS
    • متدها و خصوصیات عمومی
    • درک شکاف های نام گذاری شده
    • گوش دادن به تغییرات محتوای شکاف
    • بستن مودال
    • اعزام به رویداد های سفارشی
    • پیکربندی رویداد های سفارشی
    • تکمیلش کن
    • منابع و لینک های مفید
  • جمع بندی و مراحل بعدی
    • تبریک!
    • جایزه! (بررسی مراحل بعدی / سایر مباحث)

 

سرفصل های دوره - آنچه در دوره است

 

جاوااسکریپت چیست؟

 

جاوااسکریپت در عمل

 

نحوه اجرای جاوااسکریپت

 

مقایسه زبان های داینامیک و Weakly

 

اجرای جاوااسکریپت در محیط میزبان

 

آیا این نوشته را دوست داشتید؟
Udemy JavaScript - The Complete Guide 2020 (Beginner + Advanced) Publisher:Udemy Author:Academind by Maximilian Schwarzmüller ,Maximilian Schwarzmüller Duration:52 hours

What you'll learn

  • JavaScript from scratch - beginner to advanced
  • All core features and concepts you need to know in modern JavaScript development
  • Everything you need to become a JavaScript expert and apply for JavaScript jobs
  • Project-driven learning with plenty of examples
  • All about variables, functions, objects and arrays
  • Object-oriented programming
  • Deep dives into prototypes, JavaScript engines & how it works behind the scenes
  • Manipulating web pages (= the DOM) with JavaScript
  • Event handling, asynchronous coding and Http requests
  • Meta-programming, performance optimization, memory leak busting
  • Testing, security and deployment
  • And so much more!

Course content

  • Introduction
    • Introduction
    • What is JavaScript?
    • JavaScript in Action!
    • Join our Online Learning Community
    • How JavaScript Is Executed
    • Dynamic vs Weakly Typed Languages
    • JavaScript Runs In A Host Environment
    • Course Outline - What Is In The Course?
    • How To Get The Most Out Of This Course
    • Using Course Resources
    • JavaScript vs Java
    • A Brief History Of JavaScript
    • Setting Up a Development Environment
    • Course FAQs
  • Basics: Variables, Data Types, Operators & Functions
    • Module Introduction
    • Setting Up the Project
    • More on Version Control & Git
    • Adding JavaScript to the Website
    • Introducing Variables & Constants
    • Declaring & Defining Variables
    • Working with Variables & Operators
    • Variables & Operators
    • Understanding the Starting Code
    • Data Types: Numbers & Strings (Text)
    • Using Constants
    • More on Strings
    • Data Types & Constants
    • Time to Practice: Variables, Constants, Operators & Core Data Types
    • Introducing Functions
    • Adding A Custom Function
    • Code Styles, Conventions & Syntax
    • Returning Values
    • The (Un)Importance of Code Order
    • An Introduction to Global & Local Scope
    • "Shadowed Variables"
    • More about the "return" Statement
    • Executing Functions "Indirectly"
    • "Indirect" vs "Direct" Function Execution - Summary
    • Functions & Scope
    • Time to Practice: Functions
    • Converting Data Types
    • Mixing Numbers & Strings
    • Splitting Code into Functions
    • Connecting all Buttons to Functions
    • Working with Code Comments
    • More Operators!
    • More Core Data Types!
    • Using Arrays
    • Creating Objects
    • Objects - Common Syntax Gotchas
    • Accessing Object Data
    • Arrays & Objects
    • Adding a Re-Usable Function That Uses Objects
    • undefined, null & NaN
    • The "typeof" Operator
    • "undefined", "null" & "NaN"
    • Importing Scripts Correctly with "defer" & "async"
    • Importing JavaScript - Summary
    • Wrap Up
    • Useful Resources & Links
  • Efficient Development & Debugging
    • Module Introduction
    • Efficient Development & Debugging - An Overview
    • Configuring the IDE Look & Feel
    • Using Shortcuts
    • Working with Auto-Completion & IDE Hints
    • Installing IDE Extensions
    • Tweaking Editor Settings
    • Utilizing Different IDE Views
    • Finding Help & Working with MDN
    • The ECMAScript Standard
    • How to "google" Correctly
    • Debugging JavaScript - An Overview
    • An Error Message! No Reason To Panic!
    • Using console.log() to look "into the Code"
    • Next-Level Debugging with the Chrome Devtools & Breakpoints
    • Testing Code Changes Directly in the Devtools
    • Debugging Code directly Inside VS Code
    • Wrap Up
    • Useful Resources & Links
  • Working with Control Structures (if Statements, Loops, Error Handling)
    • Module Introduction
    • Introducing "if" Statements & Boolean (Comparison) Operators
    • Using Booleans in Conditions & More on Text Comparisons
    • Using "if" Statements
    • Working with "if", "else" and "else-if"
    • Beware When Comparing Objects & Arrays for Equality!
    • The Logical AND and OR Operators
    • Understanding Operator Precedence
    • if & Boolean Operators - The Basics
    • Beyond true/ false: "Truthy" and "Falsy" Values
    • Coercion vs Conversion
    • Falsy and Truthy Values
    • Setting Up a Bigger Example Project (The "Monster Killer")
    • Adding an "Attack" Function
    • Using "if" Statements for Checking the Win-Condition
    • Adding More "if" Statements & A "Strong Attack"
    • Functionality
    • Time for a "Heal Player" Functionality!
    • Controlling the Conditional Bonus Life (Without Boolean Operators!)
    • Adding a "Reset Game" Functionality
    • Validating User Input
    • Utilizing Global Constants as Identifiers in Conditional Code
    • Adding a Conditional Battle Log
    • Introducing the Ternary Operator
    • A Bit of Theory: Statements vs Expressions
    • Logical Operator "Tricks" & Shorthands
    • Logical Operators - A Quick Summary
    • Logical Operators & How They Work
    • Working with the "switch-case" Statement
    • Introducing Loops
    • The "for" Loop
    • The "for-of" Loop
    • The "for-in" Loop
    • The "while" & "do-while" Loops
    • Loops - Basics
    • Time to Practice: Control Structures
    • Controlling Loops with "break"
    • Controlling Iterations with "continue"
    • More Control with Labeled Statements
    • break & continue
    • Error Handling with "try-catch" - An Introduction
    • Throwing Custom Errors
    • Working with "try-catch" to Catch & Handle Errors
    • Error Handling
    • Wrap Up
    • Useful Resources & Links
  • Behind the Scenes & The (Weird) Past (ES3, ES5) & Present (ES6+) of JavaScript
    • Module Introduction
    • ES5 vs ES6+ ("Next Gen JS") - Evolution of JavaScript
    • var vs let & const - Introducing "Block Scope"
    • Understanding "Hoisting"
    • Strict Mode & Writing Good Code
    • "JavaScript Specialties"
    • How Code is Parsed & Compiled
    • Inside the JavaScript Engine - How the Code Executes
    • [DEEP DIVE] JavaScript Language vs Browser APIs
    • Primitive vs Reference Values
    • Garbage Collection & Memory Management
    • Wrap Up
    • Useful Resources & Links
  • More on Functions
    • Module Introduction
    • Recapping Functions Knowledge - What We Know Thus Far
    • Parameters vs Arguments
    • Functions vs Methods
    • Functions are Objects!
    • Function Expressions: Storing Functions in Variables
    • Function Expressions vs Function Declarations
    • Anonymous Functions
    • Working on the Project: Adding User Choices to the Game
    • Implementing the Core Game Logic
    • Introducing Arrow Functions
    • Different Arrow Function Syntaxes
    • Creating Functions
    • Outputting Messages to the User
    • Default Arguments in Functions
    • Introducing Rest Parameters ("Rest Operator")
    • Creating Functions Inside of Functions
    • Understanding Callback Functions
    • Time to Practice: Functions
    • Working with "bind()"
    • Functions - Advanced
    • Adding bind() to the Calculator Project
    • call() and apply()
    • Wrap Up
    • Useful Resources & Links
  • Working with the DOM (Browser HTML Code) in JavaScript
    • Module Introduction
    • What's the "DOM"?
    • Document and Window Object
    • Understanding the DOM and how it's created
    • Nodes & Elements - Querying the DOM Overview
    • Selecting Elements in the DOM
    • Summary: Node Query Methods
    • Exploring and Changing DOM Properties
    • Attributes vs Properties
    • Selecting Multiple Elements & Summary
    • DOM Basics
    • Time to Practice: DOM Querying
    • Traversing the DOM - Overview
    • Traversing Child Nodes
    • Using parentNode & parentElement
    • Selecting Sibling Elements
    • DOM Traversal vs Query Methods
    • Styling DOM Elements
    • Creating Elements with JS - Overview
    • Adding Elements via HTML in Code
    • Adding Elements via createElement()
    • Inserting DOM Elements
    • Cloning DOM Nodes
    • Live Node Lists vs Static Node Lists
    • Removing Elements
    • Insertion & Removal Method Summary
    • Summary: Insert, Replace, Remove
    • Setting Up the Practice Project
    • Selecting the Modal and "Add" Button
    • Opening a Modal by Changing CSS Classes
    • Controlling the Backdrop
    • Fetching and Validating User Input
    • Creating a Movie in JavaScript & Clearing the Input
    • Rendering Movie Items on the Screen
    • Deleting Movie Elements
    • Showing & Hiding the "Are you sure?" Dialog
    • Starting with the Confirmation Logic
    • Finishing the App
    • Wrap Up
    • Useful Resources & Links
  • More on Arrays & Iterables
    • Module Introduction
    • What are "Iterables" and "Array-like Objects"?
    • Creating Arrays
    • Which Data Can You Store In Arrays?
    • push(), pop(), unshift(), shift() - Adding & Removing Elements
    • The splice() Method
    • Selecting Ranges & Creating Copies with slice()
    • Adding Arrays to Arrays with concat()
    • Retrieving Indexes with indexOf() /& lastIndexOf()
    • Finding Stuff: find() and findIndex()
    • Is it Included?
    • Alternative to for Loops: The forEach() Method
    • Transforming Data with map()
    • sort()ing and reverse()ing
    • Filtering Arrays with filter()
    • Where Arrow Functions Shine!
    • The Important reduce() Method
    • Chaining Methods in JavaScript
    • Arrays & Strings - split() and join()
    • The Spread Operator (...)
    • Understanding Array Destructuring
    • Maps & Sets - Overview
    • Working with Sets
    • Working with Maps
    • Maps vs Objects
    • Understanding WeakSet
    • Understanding WeakMap
    • Time to Practice: Arrays & Iterables
    • Wrap Up
    • Useful Resources & Links
  • More on Objects
    • Module Introduction
    • What's an Object?
    • Objects & Primitive Values
    • Objects - Recap
    • Adding, Modifying & Deleting Properties
    • Special Key Names & Square Bracket Property Access
    • Property Types & Property Order
    • Dynamic Property Access & Setting Properties Dynamically
    • Object Properties
    • Demo App & Shorthand Property Syntax
    • Rendering Elements based on Objects
    • for-in Loops & Outputting Dynamic Properties
    • Adding the Filter Functionality
    • Understanding "Chaining" (Property & Method Chaining)
    • The Object Spread Operator (...)
    • Understanding Object.assign()
    • Object Destructuring
    • Checking for Property Existance
    • Introducing "this"
    • The Method Shorthand Syntax
    • The "this" Keyword And Its Strange Behavior
    • call() and apply()
    • What the Browser (Sometimes) Does to "this"
    • "this" and Arrow Functions
    • "this" - Summary
    • "this"
    • Getters & Setters
    • Wrap Up
    • Useful Resources & Links
  • Classes & Object-oriented Programming (OOP)
    • Module Introduction
    • What is "Object-oriented Programming" (OOP)?
    • Getting Started with OOP Code
    • Defining & Using a First Class
    • Working with Constructor Methods
    • Fields vs Properties
    • Using & "Connecting" Multiple Classes
    • Binding Class Methods & Working with "this"
    • Adding a Cart and Shop Class
    • Communicating Can Be Challenging!
    • Static Methods & Properties
    • First Summary & Classes vs Object Literals
    • Getters & Setters
    • Introducing Inheritance
    • Implementing Inheritance
    • Using Inheritance Everywhere
    • Overriding Methods and the super() Constructor
    • super() Constructor Execution, Order & "this"
    • Different Ways of Adding Methods
    • Private Properties
    • "Pseudo-Private" Properties
    • Time to Practice: Classes & OOP
    • The "instanceof" Operator
    • Built-in Classes
    • Understanding Object Descriptors
    • Classes
    • Wrap Up
    • Useful Resources & Links
  • Deep Dive: Constructor Functions & Prototypes
    • Module Introduction
    • Introducing Constructor Functions
    • Constructor Functions vs Classes & Understanding "new"
    • Introducing Prototypes
    • Prototypes - Summary
    • Working with Prototypes
    • The Prototype Chain and the Global "Object"
    • Constructor Functions & Prototypes
    • Classes & Prototypes
    • Methods in Classes & In Constructors
    • Built-in Prototypes in JavaScript
    • Setting & Getting Prototypes
    • Wrap Up
    • Useful Resources & Links
  • Practice: OOP & Classes
    • Module Introduction
    • First Project Steps & Planning
    • Creating Project Lists & Parsing Element Data
    • Starting with the "Switch Project" Logic
    • Passing Method References Around
    • Moving DOM Elements
    • Adding a Tooltip
    • Adding Inheritance
    • Wrap Up
    • Useful Resources & Links
  • Back to the DOM & More Browser APIs
    • Module Introduction
    • Using "dataset" (data-* Attributes)
    • Getting Element Box Dimensions
    • Working with Element Sizes & Positions
    • The DOM & Prototypes
    • Positioning the Tooltip
    • Handling Scrolling
    • Working with <template> Tags
    • Loading Scripts Dynamically
    • Setting Timers & Intervals
    • The "location" and "history" Objects
    • The "navigator" Object
    • Working with Dates
    • The "Error" Object & Constructor Function
    • Wrap Up
    • Useful Resources & Links
  • Working with Events
    • Module Introduction
    • Introduction to Events in JavaScript
    • Different Ways of Listening to Events
    • Removing Event Listeners
    • The "event" Object
    • Supported Event Types
    • Example: Basic Infinite Scrolling
    • Working with "preventDefault()"
    • Understanding "Capturing" & "Bubbling" Phases
    • Event Propagation & "stopPropagation()"
    • Using Event Delegation
    • Triggering DOM Elements Programmatically
    • Event Handler Functions & "this"
    • Events
    • Drag & Drop - Theory
    • Configuring Draggable Elements
    • Marking the "Drop Area"
    • Dropping & Moving Data + Elements
    • Firefox Adjustments
    • Wrap Up
    • Useful Resources & Links
  • Advanced Function Concepts
    • Module Introduction
    • Pure Functions & Side-Effects
    • Impure vs Pure Functions
    • Factory Functions
    • Closures
    • Closures in Practice
    • Closures & Memory Management
    • Optional: IIFEs
    • Introducing "Recursion"
    • Advanced Recursion
    • Advanced Functions
    • Wrap Up
    • Useful Resources & Links
  • More on Numbers & Strings
    • Module Introduction
    • How Numbers Work & Behave in JavaScript
    • Floating Point (Im)Precision
    • The BigInt Type
    • The Global "Number" and "Math" Objects
    • Example: Generate Random Number Between Min/ Max
    • Exploring String Methods
    • Tagged Templates
    • Introducing Regular Expressions ("RegEx")
    • More on Regular Expressions
    • Wrap Up
    • Useful Resources & Links
  • Async JavaScript: Promises & Callbacks
    • Module Introduction
    • Understanding Synchronous Code Execution ("Sync Code")
    • Understanding Asynchronous Code Execution ("Async Code")
    • Blocking Code & The "Event Loop"
    • Sync + Async Code - The Execution Order
    • Multiple Callbacks & setTimeout(0)
    • Asynchronous Code
    • Getting Started with Promises
    • Chaining Multiple Promises
    • Promise Error Handling
    • Promise States & "finally"
    • Async/ await
    • Async/ await & Error Handling
    • Async/ await vs "Raw Promises"
    • Promise.all(), Promise.race() etc.
    • Promises & async/ await
    • Wrap Up
    • Useful Resources & Links
  • Working with Http Requests
    • Module Introduction
    • What & Why
    • How The Web Works
    • More Background about Http
    • Getting Started with Http
    • Sending a GET Request
    • JSON Data & Parsing Data
    • JSON Data Deep Dive
    • Promisifying Http Requests (with XMLHttpRequest)
    • Sending Data with a POST Request
    • Triggering Requests via the UI
    • The "Fetch" Button Always Appends
    • Sending a DELETE Request
    • Handling Errors
    • Using the fetch() API
    • POSTing Data with the fetch() API
    • Adding Request Headers
    • fetch() & Error Handling
    • XMLHttpRequest vs fetch()
    • Working with FormData
    • Wrap Up
    • Useful Resources & Links
  • Working with JavaScript Libraries
    • Module Introduction
    • What & Why
    • Adding Libraries (Example: lodash)
    • Example: jQuery
    • Discovering Libraries
    • Axios Library & Http Requests
    • Third-Party Library Considerations
    • Wrap Up
    • Useful Resources & Links
  • Modular JavaScript (Working with Modules)
    • Module Introduction
    • Splitting Code in a Sub-optimal Way
    • A First Step Towards JavaScript Modules
    • We Need a Development Server!
    • First import / export Work
    • Switching All Files To Use Modules
    • More Named Export Syntax Variations
    • Working With Default Exports
    • Dynamic Imports & Code Splitting
    • When Does Module Code Execute?
    • Module Scope & globalThis
    • Modules
    • Wrap Up
    • Useful Resources & Links
  • JavaScript Tooling & Workflows
    • Module Introduction
    • Project Limitations & Why We Need Tools
    • Workflow Overview
    • Setting Up a npm Project
    • Working with npm Packages
    • Linting with ESLint
    • Configuring ESLint
    • Bundling with Webpack
    • Bonus: Multiple Entry Points
    • Development Mode & Fixing "Lazy Loading"
    • Using webpack-dev-server
    • Generating Sourcemaps
    • Building For Production
    • Final Optimizations
    • Using Third Party Packages with npm & Webpack
    • Wrap Up
    • Useful Resources & Links
  • Utilizing Browser Storage
    • Module Introduction
    • Browser Storage Options
    • localStorage & sessionStorage
    • Getting Started with Cookies
    • Working with Cookies
    • Getting Started with IndexedDB
    • Working with IndexedDB
    • Wrap Up
    • Useful Resources & Links
  • JavaScript & Browser Support
    • Module Introduction
    • What Is "Browser Support" About?
    • Determining Browser Support For A JavaScript Feature
    • Determining Required Support
    • Solution: Feature Detection + Fallback Code
    • Solution: Using Polyfills
    • Solution: Transpiling Code
    • Improvement: Automatically Detect + Add Polyfills
    • What about Support Outside of Browsers?
    • Browser Support Outside of JavaScript Files
    • Wrap Up
    • Useful Resources & Links
  • Time to Practice: Share My Place App
    • Module Introduction
    • Setting Up the Project
    • Getting DOM Access
    • Getting the User Location
    • Adding Feedback (Showing a Modal)
    • Hiding the Modal
    • Rendering a Map with Google Maps
    • Continuing without a Credit Card
    • Finding an Address & Getting the Coordinates
    • Converting User Input to Coordinates
    • Creating a "Share Place" Link
    • Copying the Link to the Clipboard
    • Rendering the "Shared Place" Screen
    • Useful Resources & Links
  • Working with JavaScript Frameworks
    • Module Introduction
    • What and Why?
    • The Idea Behind React.js
    • Analysing a React Project
    • Wrap Up
    • Useful Resources & Links
  • Meta-Programming: Symbols, Iterators, Generators, Reflect API & Proxy API
    • Module Introduction
    • Understanding Symbols
    • Well-known Symbols
    • Understanding Iterators
    • Generators & Iterable Objects
    • Generators Summary & Built-in Iterables Examples
    • The Reflect API
    • The Proxy API and a First "Trap"
    • Working with Proxy Traps
    • Wrap Up
    • Useful Resources & Links
  • Node.js: An Introduction
    • Module Introduction
    • JavaScript is a Hosted Language
    • Installation & Basics
    • Understanding Modules & File Access
    • Working with Incoming Http Requests
    • Sending Responses (HTML Data)
    • Parsing Incoming Data
    • Introducing & Installing Express.js
    • Express.js: The Basics
    • Extracting Data
    • Rendering Server-side HTML with Templates & EJS
    • Enhancing Our Project
    • Adding Basic REST Routes
    • Understanding CORS (Cross Origin Resource Sharing)
    • Sending the Location ID to the Frontend
    • Adding the GET Location Route
    • Introducing MongoDB (Database)
    • NodeJS Error Handling
    • Wrap Up
    • Useful Resources & Links
  • Security
    • Module Introduction
    • Security Hole Overview & Exposing Data in your Code
    • Cross-Site Scripting Attacks (XSS)
    • Third-Party Libraries & XSS
    • XSS & Exposing Confidential Details
    • CSRF Attacks (Cross Site Request Forgery)
    • CORS (Cross Origin Resource Sharing)
    • Wrap Up
    • Useful Resources & Links
  • Deploying JavaScript Code
    • Module Introduction
    • Deployment Steps
    • Different Types of Websites
    • Example: Static Host Deployment (no Server-side Code)
    • Injecting Script Imports Into HTML Automatically
    • Example: Dynamic Page Deployment (with Server-side Code)
    • Useful Resources & Links
  • Performance & Optimizations
    • Module Introduction
    • What is "Performance Optimization" About?
    • Optimization Potentials
    • Measuring Performance
    • Diving Into The Browser Devtools (for Performance Measuring)
    • Further Resources
    • Preparing The Testing Setup
    • Optimizing Startup Time & Code Usage / Coverage
    • Updating The DOM Correctly
    • Updating Lists Correctly
    • Optimizing The Small Things
    • Micro-Optimizations (Think Twice!)
    • Finding & Fixing Memory Leaks
    • Server-side Performance Optimizations
    • Wrap Up
    • Useful Resources & Links
  • Introduction to Testing
    • Module Introduction
    • What Is Testing? Why Does It Matter?
    • Testing Setup
    • Writing & Running Unit Tests
    • Writing & Running Integration Tests
    • Writing & Running e2e Tests
    • Dealing with Async Code
    • Working with Mocks
    • Useful Resources & Links
  • Bonus: Programming Paradigms (Procedural vs Object Oriented vs Functional)
    • Module Introduction
    • What are Programming Paradigms?
    • Procedural Programming in Practice
    • Object Oriented Programming in Practice
    • Functional Programming in Practice
    • Wrap Up
    • Useful Resources & Links
  • Bonus: Data Structures & Algorithms Introduction
    • Module Introduction
    • What are "Data Structures" & "Algorithms"?
    • A First Example
    • Solving the Same Problem Differently
    • Performance & The "Big O" Notation
    • More Time Complexities & Comparing Algorithms
    • More on Big O
    • More Examples
    • Diving into Data Structures & Time Complexities
    • Where to Learn More & Wrap Up
    • Useful Resources & Links
  • Bonus: TypeScript Introduction
    • Module Introduction
    • What is TypeScript and Why would you use it?
    • Working with Types
    • Core Types & Diving Deeper
    • Object Types, Array Types & Function Types
    • Advanced Types (Literal Types, Union Types, Enums)
    • Classes & Interfaces
    • Generic Types
    • Configuring the TypeScript Compiler
    • Useful Resources & Links
  • Bonus: Web Components
    • Module Introduction
    • Web Components in Action
    • What are Web Components?
    • Why Web Components?
    • Getting Started!
    • Web Component Browser Support
    • Our Development Setup
    • A First Custom Element
    • Interacting with the Surrounding DOM
    • Understanding the Custom Element Lifecycle
    • Using "connectedCallback" for DOM Access
    • Listening to Events Inside the Component
    • Using Attributes on Custom Elements
    • Styling our Elements
    • Working with the "Shadow DOM"
    • Adding an HTML Template
    • Using Slots
    • Defining the Template in JavaScript
    • Using Style Tags in the Shadow DOM
    • Extending Built-in Elements
    • Time to Practice - The Basics
    • The Next Steps
    • Understanding Shadow DOM Projection
    • Styling "slot" Content Outside of the Shadow DOM
    • Styling "slot" Content Inside of the Shadow DOM
    • Styling the Host Component
    • Conditional Host Styling
    • Styling with the Host Content in Mind
    • Smart Dynamic Styling with CSS Variables
    • Cleaning Up the Overall Styling
    • Observing Attribute Changes
    • Adjusting the Component Behavior Upon Attribute Changes
    • Using "disconnectedCallback"
    • Adding a render() Method
    • Final Adjustment
    • The Next Steps
    • Creating the Basic Modal Component
    • Adding the Modal Container
    • Styling the Modal Elements
    • Adding Some General App Logic
    • Opening the Modal via CSS
    • Public Methods & Properties
    • Understanding Named Slots
    • Listening to Slot Content Changes
    • Closing the Modal
    • Dispatching Custom Events
    • Configuring Custom Events
    • Finishing it up!
    • Useful Resources & Links
  • Roundup & Next Steps
    • Congratulations!
    • Bonus! (Next Steps Overview / Other Topics)

Requirements

  • NO prior JavaScript knowledge is required
  • Basic web development knowledge is recommended
  • Basic understanding of HTML and CSS helps but is NOT required

Description

JavaScript is THE most important programming language you need to learn as a web developer - and with this course, you make sure that you will not miss a single thing you have to know as a JavaScript developer!

This is the most comprehensive and modern course you can find on JavaScript - it's based on all my JavaScript knowledge AND teaching experience. It's both a complete guide, starting with the core basics of the language, as well as an extensive reference of the JavaScript language and environment, ensuring that both newcomers as well as experienced JavaScript developers get a lot out of this course!

It's a huge course because it's packed with important knowledge and helpful content. From the core basics, over advanced concepts and JavaScript specialties, all the way up to expert topics like performance optimization and testing - this course has it all. My goal was to create your go-to resource for the JavaScript language, which you can not just use for learning it but also as a resource you can come back to and look up important topics.

The course is based on my experience as a long-term JavaScript developer as well as a teacher with more than 1,000,000 students on Udemy as well as on my YouTube channel Academind. It's packed with examples, demos, projects, assignments, quizzes and of course videos - all with the goal of giving you the best possible way of learning JavaScript.

What's in the course?

This course is obviously packed with content - I therefore strongly recommend that you check out the full course curriculum to get a clear idea of all the topics covered in the course. In general, here's what you'll find in the course:This course is obviously packed with content - I therefore strongly recommend that you check out the full course curriculum to get a clear idea of all the topics covered in the course. In general, here's what you'll find in the course:

  • Modern JavaScript from the start: The JavaScript syntax changed over time - in this course, you'll learn the latest syntax from the start (you'll also learn about the old one though, so that you can work in ANY JS project)
  • ALL the Basics: Variables, constants, functions, how scripts are loaded etc
  • Arrays & Objects: We'll explore these very important data structures in great detail
  • Control Structures: Understand how to run code conditionally and in loops
  • A look behind the Scenes: How JavaScript engines work behind the scenes and what that means for us
  • Deep dives into Core Concepts: ALL the special things about JavaScript function, different syntaxes
  • Working with the DOM: How to manipulate web pages dynamically via JavaScript (including deep dives and different use-cases)
  • Events in JavaScript: Learn how to listen to a broad variety of events (e.g. drag & drop) and execute appropriate code
  • Classes & Object-oriented Programming: Learn how to work with classes, prototypes, the "this" keyword, constructor functions and much more
  • Asynchronous and Synchronous Programming: We'll explore callbacks, promises, async/ await and other important tools and language features to execute code correctly
  • Http Requests: Learn how to send Http requests via JavaScript
  • Tooling, Optimizations & Browser Support: Code splitting, producing small code and ensuring that scripts work in all browsers - this matters and hence is covered in great detail
  • Libraries & Frameworks: Learn about libraries like Axios or frameworks like React.js - why they matter and how to use them
  • Node.js: Whilst focusing on the browser-side for the majority of the course (because the syntax is the same), we'll also have a dedicated section on Node.js to learn all about that JS host environment
  • Security & Performance Optimizations: Of course security matters, so does performance - no surprise that both is covered in the course!
  • Automated Testing: Testing manually is hard work and can be unreliable - in this course you'll also get an introduction into automated testing

What are the course prerequisites?

  • NO JavaScript knowledge is required - you'll learn it from scratch!
  • You also need NO programming experience other than basic web development knowledge (e.g. how the web works)
  • Basic HTML and CSS knowledge is recommended but not a must-have

Who this course is for:

  • Beginner web development students who have no or only little JavaScript experience
  • Also developers who know the basics about JavaScript and want to deepen their knowledge
  • Advanced JavaScript developers who want to learn more about the nitty-gritty details and dive into advanced concepts
  • Everyone interested in learning JavaScript and all about how it works

 

پیشنهاد آموزش مرتبط در فرادرس

خرید لینک های دانلود
  • حجم فایل: 19.91GB
  • زبان: انگلیسی
  • زیرنویس انگلیسی: دارد
  • قیمت: 10000 تومان
  • راهنمای کامل جاوااسکریپت 2020 (مبتدی و پیشرفته) یک محصول ویژه است و دریافت لینک های دانلود آن با پرداخت هزینه امکان پذیر است. اطلاعات بیشتر

امیر 1 هفته و 2 روز قبل

همه این سرفصل هایی که گذاشتید زیرنویس انگلیسی دارن ؟

مونا شوشتری 1 هفته و 2 روز قبل

درود بر شما، بله همه ی سرفصل ها و کل دوره زیرنویس داره که به صورت فایل .srt است. ممنون از همراهی شما

»هدی 2 ماه و 3 هفته قبل

چرا من تا الان سایت شما رو ندیده بودم؟ برگام !! چقدر آموزش :O دست مریزاد.