- مقدمه
- قراردادها و کلمات تخصصی
- چیزایی که باید نصب کنید
- دسترسی به پشتیبانی
- معرفی
- جاوا اسکریپت چیه و چه کاربرد هایی داره؟
- جاوا اسکریپت در مقایسه با بقیه زبان ها
- مثال ۱.۰۱: شناسایی و کشف زبان ها
- نگاه مختصری به تاریخچه جاوا اسکریپت
- ایجاد شدن Netscape Mocha و LiveScript
- شرکت Sun Microsystems و زبان Java
- شرکت ECMA International و زبان ECMAScript
- نسخه های مختلف ECMAScript (و JavaScript)
- ECMAScript 1 (1997)
- ECMAScript 2 (1998)
- ECMAScript 3 (1999)
- ECMAScript 4 (منتشر نشد)
- ECMAScript 5 (2009)
- ECMAScript 6 (2015)
- ECMAScript 7 (2016)، ECMAScript 8 (2017) و ECMAScript 9 (2018)
- مثال ۱.۰۲: آیا میتونم از این قابلیت استفاده کنم؟
- دسترسی به ابزارهای توسعه دهنده (Developer Tools) مرورگر وب
- Google Chrome
- Microsoft Edge
- Apple Safari
- معرفی متغیر ها
- مثال ۱.۰۳: اولین گام ها در برنامه نویسی
- تمرین ۱.۰۱: ایجاد یک پیغام pop-up در مرورگر
- مروری بر قابلیت های جاوا اسکریپت
- تایید و اعتبارسنجی داده های فرم سمت کلاینت (Client-Side Form Validation)
- ویجت ها یا اجزای مختلف جاوا اسکریپت
- XML HTTP Requests (XHR)
- ذخیره داده های محلی
- دستکاری Document Object Model (DOM)
- انیمیشن ها و افکت ها
- خلاصه این فصل
- معرفی
- Integrated Development Environments (IDE)
- Atom (توسعه داده شده توسط گیت هاب)
- Sublime Text
- Adobe Dreamweaver
- JetBrains WebStorm
- Microsoft Visual Studio Code
- مدیریت فایل و پروژه در جاوا اسکریپت
- پوشه ها و فایل های پروژه
- مثال ۲.۰۱: ایجاد کردن پوشه برای پروژه
- ساختار و syntax جاوا اسکریپت
- مثال ۲.۰۲: ایجاد کردن فایل های مورد نیاز پروژه
- قوانین نوشتن(syntax) پایه جاوا اسکریپت
- ترتیب اجرای دستورات جاوا اسکریپت
- مثال ۲.۰۳: تایید ترتیب اجرای دستورات
- مروری به محیط های اجرا شدن جاوا اسکریپت
- جاوا اسکریپت در مرورگر
- جاوا اسکریپت در سرور
- جاوا اسکریپت در دسکتاپ
- جاوا اسکریپت در موبایل
- نگاه نزدیک تر به ابزار های توسعه دهنده مرورگر
- نمای Elements
- نمای Console
- نمای Sources
- نمای Network
- دستکاری عناصر HTML با جاوا اسکریپت
- تمرین ۲.۰۱: اضافه کردن یا تغییر دادن یک آیتم توی لیست To-Do
- خلاصه این فصل
- معرفی
- انواع داده ها
- نشون دادن و کار کردن روی داده ها
- Literal ها
- استفاده از operator ها در عبارت (expression) ها
- مثال ۳.۰۱: پیاده سازی operator و expression ها
- استفاده از متغیر و مقدار های ثابت (constant) در expression ها
- مثال ۳.۰۲: کار با متغیر ها با استفاده از کنسول مرورگر
- فانکشن هایی که مقدار بر میگردونن
- مثال ۳.۰۳: استفاده از فانکشن ها در expression ها
- دیتاتایپ object
- object های آماده
- مثال ۳.۰۴: کار با object های آماده
- object های سفارشی
- نشانه گذاری نقطه ای (Dot Notation) روی object ها
- آبجکت Array
- استفاده از آبجکت Console
- قوانین و شیوه های نوشتن (Syntax)
- قرار دادن نقطه ویرگول (semicolon) در پایان هر دستور
- خط های کد در مقابل statement ها
- کامنت ها (Comments)
- جریان اجرای کد و شرط ها و حلقه ها
- بلاک های کد
- دستورات شرطی (conditional statements)
- If…else
- If
- مثال ۳.۰۵: نوشتن یک دستور if
- دستور های if و else
- مثال ۳.۰۶: شیر یا خط با if…else
- دستور if در کنار چندین دستور else…if
- یک دستور if در کنار چندین دستور else…if و یک دستور else
- مثال ۳.۰۷: نوشتن یک دستور if همراه با چندین else…if و یک دستور else
- break
- switch
- مثال ۳.۰۸: نوشتن و تست کردن یک دستور switch
- حلقه ها
- for
- مثال ۳.۰۹: نوشتن و تست کردن یک حلقه for
- do…while
- مثال ۳.۱۰: نوشتن و تست کردن do…while
- while
- مثال ۳.۱۱: نوشتن و تست کردن یک حلقه با while
- for…in
- مثال ۳.۱۲: نوشتن و تست کردن for…in
- for…of
- مثال ۳.۱۳: نوشتن و تست کردن for…of
- continue
- Labeled statement
- نوشتن و فراخوانی کردن فانکشن ها
- تعریف فانکشن ها
- Function Declaration
- مثال ۳.۱۴: نوشتن و فراخوانی کردن یک فانکشن به صورت یک دستور
- Function Expression
- مثال ۳.۱۵: نوشتن یک فانکشن به عنوان یک عبارت و فراخوانی کردن اون
- Arrow Function
- تعریف و فراخوانی یک arrow function
- مثال ۳.۱۶: نوشتن و فراخوانی یک arrow function
- واکنش به رویداد (event) های ورودی کاربر و بروزرسانی کردن DOM
- آبجکت مربوط به المنت های HTML
- دسترسی به المنت های توی DOM
- ایجاد المنت ها و محتوای مختلف توی DOM
- رویداد های توی DOM
- مثال ۳.۱۷: کار با رویداد ها و دستکاری DOM
- Silent Fail
- باگ های syntax
- باگ های logic
- دیباگ کردن
- دیباگر ها
- تمرین ۳.۰۱: برنامه ای برای بهم ریختن آیتم های یک to do list
- خلاصه فصل
- معرفی
- فریم ورک در مقابل کتابخونه
- Vanilla.js
- فریم ورک های معروف جاوا اسکریپت
- jQuery جاودان!
- نحوه پیدا کردن و استفاده از کد های آماده
- مثال ۴.۰۱: استفاده از یک کتابخونه خارجی توی کد
- jQuery در مقابل Vanilla.js
- دسکتاری DOM
- فرستادن درخواست های XHR
- مثال ۴.۰۲: هندل کردن رویداد های click با jQuery
- مثال ۴.۰۳: هندل کردن رویداد توی مثال قبلی با vanilla.js
- انیمیشن در رابط کاربری با jQuery
- مثال ۴.۰۴: ایجاد انیمیشن ظاهر شدن در زمان کلیک دکمه
- فریم ورک ها در مقابل جاوا اسکریپت اصلی
- مثال ۴.۰۵: رندر کردن یک todo list با React
- مثال ۴.۰۶: رندر کردن یک لیست todo بدون کتابخونه
- مثال ۴.۰۷: ایجاد یک کتابخونه
- تمرین ۴.۰۱: اضافه کردن انیمیشن به برنامه todo list
- خلاصه این فصل
- معرفی
- ایجاد کردن متغیر ها
- نکته ای در مورد referencing (کار با رفرنس ها)
- تعریف متغیر به صورت Global
- تعریف متغیر با var
- تعریف متغیر با let
- تعریف متغیر با const
- مثال ۵.۰۱: متغیر ها و scope
- شناسایی نوع یک متغیر
- مثال ۵.۰۲: ارزیابی نوع متغیر ها
- تایپ های ثابت (Fixed Types)
- مقدار null
- مقدار undefined
- مقدار های Boolean
- اپراتور های Boolean
- اپراتور های مقایسه
- اپراتور های منطقی
- مثال ۵.۰۳: زوج ها و فرد ها
- بررسی درست بودن مقدار ها
- اپراتور NOT
- اولویت اپراتور Boolean
- شرکت پذیری (Associativity) در اپراتور های Boolean
- مثال ۵.۰۴: بررسی مشمولیت ارسال رایگان کالا
- چرا نباید مقدار عبارت های Boolean و Non-Boolean رو با هم مقایسه کنید؟
- چرا نباید عبارت های مقایسه ای رو به هم وصل کنید (اصطلاحا زنجیر یا chain کنید)؟
- اپراتور Ternary
- کار با عددها
- محدودیت های محاسباتی (arithmetic)
- آبجکت Number
- فانکشن های Number
- متد های Number
- Property های Number
- مثال ۵.۰۵: فرمت کننده ارز
- کاراکتر های ویژه
- کار با string ها
- الحاق کردن (Concatenation)
- Template Literals
- مثال ۵.۰۶: قالب های email
- آبجکت String
- خاصیت (property) length
- متد های String
- مثال ۵.۰۷: برعکس کردن جمله ها
- متد toString
- عددها با string ها
- کار با فانکشن ها
- فانکشن های anonymous
- Callback ها
- مثال ۵.۰۸: پارامتر های functional
- Arrow Function ها
- نکاتی در مورد arrow function ها
- فانکشن های generator
- کلیدواژه this
- کلیدواژه arguments
- Call و Apply
- مثال ۵.۰۹: Dynamic Currying
- تمرین ۵.۰۱: مقایسه ساده عدد ها
- کار کردن با آبجکت ها
- آبجکت ها به عنوان Hash Table ها
- Key های آبجکت ها و ارتباطشون با حافظه
- آبجکت و رفرنس های اون
- Object iteration
- دسترسی دهنده (Accessor) های آبجکت ها
- مثال ۵.۱۰: تبدیل کردن آبجکت ها به toString
- کار با array ها
- Mutable بودن array ها
- Iteration روی array ها
- فانکشن های داخلی array ها
- کار کردن با Date
- Parse کردن string های تاریخ
- فرمت کردن Date به صورت string
- انجام محاسبات با تاریخ
- تمرین ۵.۰۲: ایجاد یک مدل to-do
- خلاصه فصل
- معرفی
- انواع رویداد ها
- رویداد های Timer
- مثال ۶.۰۱: تایمر سفارشی
- تایمر های رویداد ها / Event Timers
- فانکشن setInterval
- فانکشن setTimeout
- پارامتر های تایمر
- مثال ۶.۰۲: ساعت زنده (real-time)
- مدل رویداد های جاوا اسکریپت
- Event Bubbling
- پیمایش درختی نود ها (Node Tree Traversal)
- دسترسی مستقیم به نود ها
- اختصاص دادن یا پاک کردن یک هندلر رویداد
- مثال ۶.۰۳: محتوای قسمت بندی شده (tabbed content)
- Bubbling در مقابل Capturing
- چرخه حیات یک رویداد جاوا اسکریپت
- توقف حرکت یک رویداد
- متوقف کردن اکشن های رویداد ها
- مثال ۶.۰۴: جلوگیری شرطی از رویداد
- Trigger های رویدادها (event triggers)
- رویداد های سفارشی
- Trigger های رویداد های داخلی
- اتریبیوت های هندلر های رویداد ها
- رویداد ها و حافظه
- کار کردن با فرم ها
- HTTP
- تگ Form
- ثبت یک فرم با جاوا اسکریپت
- رویداد های ثبت فرم
- جلوگیری از ثبت فرم
- ریست فرم
- رویداد ریست فرم
- مثال ۶.۰۵: هندل کردن فرم ساده
- فرم کنترل ها
- کنترل های input
- کنترل button
- کنترل checkbox
- کنترل radio
- کنترل text
- کنترل password
- کنترل های email، tel، url
- کنترل hidden
- کنترل number
- کنترل image
- کنترل file
- کنترل textarea
- کنترل select
- تمرین ۶.۰۱: ایجاد تغییرات در مدل
- خلاصه این فصل
- معرفی
- اجرا شدن جاوا اسکریپت و event loop
- ران تایم جاوا اسکریپت
- موتور جاوا اسکریپت
- API های محیط اجرایی
- صف پیغام - Message Queue
- Event loop
- Call Stack
- Memory Heap
- event loop در عمل
- مثال ۷.۰۱: کار کردن با event loop
- Stack Overflow
- مثال ۷.۰۲: Stack Overflow
- مدیریت حافظه - Memory Management
- Garbage Collector
- نشت حافظه - Memory Leak
- شنونده های رویداد - Event Listeners
- Node های جداشده DOM
- متغیر های گلوبال
- شناسایی نشت های حافظه
- مثال ۷.۰۳: شناسایی نشت های حافظه
- مثال ۷.۰۴: حل کردن مشکل نشت حافظه
- تمرین ۷.۰۱: گرفتن تعداد استک فریم ها
- خلاصه این فصل
- معرفی
- Canvas
- مثال ۸.۰۱: رسم شکل ها با المنت های canvas
- دستکاری شکل ها با path
- تمرین ۸.۰۱: ایجاد یک fractal ساده
- Web Audio API
- مثال ۸.۰۲: ایجاد یک نوسانگر موجی شکل (Oscillator Waveform)
- تمرین ۸.۰۲: پخش صدا و کنترل فرکانس با دو نوسانگر
- بصری سازی صدا - Audio Visualization
- Web Storage API
- مثال 8.03: ذخیره و نشون دادن اسم با localStorage API
- IndexedDB
- مثال ۸.۰۴: ایجاد یک object store و اضافه کردن دیتا بهش
- اجرای query روی indexedDB
- مثال ۸.۰۵: اجرای query روی دیتابیس
- Cursor در indexedDB
- مثال ۸.۰۶: گرفتن، ذخیره کردن و query کردن دیتا
- Performance API
- مثال ۸.۰۷: ارزیابی عملکرد
- Web Socket API
- مثال ۸.۰۸: ایجاد چت روم با Websocket
- تمرین ۸.۰۳: Audio Visualization
- خلاصه این فصل
- معرفی
- محیط Node.js
- Sync در مقابل Async
- پشت صحنه پردازش درخواست ها
- Callback ها چین؟
- شل (shell) Node.js
- مثال ۹.۰۱: اولین برنامه شما با Node.js
- نحوه import/require کردن (یا همون وارد کردن) یک ماژول توی یک اپلیکیشن Node.js
- Node Package Manager (npm)
- فلگ ها
- کامند های npm
- package.json
- پابلیش کردن یک پکیج
- ماژول های Node.js
- ماژول URL
- مثال ۹.۰۲: به روز رسانی و تغییر اطلاعات URL با ماژول URL
- Filesystem
- ماژول os
- مثال ۹.۰۳: گرفتن جزئیات مربوط به سیستم عامل
- ماژول path
- مثال ۹.۰۴: استخراج و ترکیب کردن اسم directory های یک مسیر
- HTTP
- مثال ۹.۰۵: استفاده از یک سرور Node.js
- ماژول های خارجی
- Express.js
- ماژول bodyParser
- Morgan
- کار با دیتابیس ها
- تنظیم دیتابیس ها
- اتصال به دیتابیس ها
- MySQL
- مثال ۹.۰۶: نصب، اتصال و پردازش response های یک سرور MySQL
- MongoDB
- مثال ۹.۰۷: نصب درایور و ایجاد کانکشن MongoDB
- ساخت برنامه های real-time
- WebSocket
- Socket.IO
- مثال ۹.۰۸: ساخت اپلیکیشن چت
- تمرین ۹.۰۱: ایجاد یک وب اپلیکیشن برای آپلود و ذخیره عکس و نگهداری جزئیاتش
- خلاصه این فصل
- معرفی
- JSON
- REST
- HTTP چیه؟
- TheSportsDB
- مثال ۱۰.۰۱: استفاده از یک REST API برای برقراری ارتباط
- هدر های HTTP
- AJAX
- jQuery
- مثال ۱۰.۰۲: استفاده از AJAX و متد ()ajax از jQuery برای کال کردن یک سرویس
- مثال ۱۰.۳: بیشتر کار کردن با AJAX و اضافه کردن یه سری استایل CSS
- CSS
- کتابخونه های دیگه و XMLHttpRequest
- Axios و Fetch API
- مقایسه XMLHttpRequest با jQuery
- استفاده از jQuery و XMLHttpRequest برای درخواست های POST
- درخواست های Cross-Domain
- هدر CORS
- تمرین ۱۰.۰۱: پیاده سازی سرویس کال های REST با روش های مختلف
- خلاصه این فصل
- معرفی
- regex چیه؟
- رجکس ها با جزئیات بیشتر
- کاراکتر های literal
- کاراکتر های ویژه، anchor ها و فاصله گذاری / جداسازی
- Word Boundary
- کاراکتر کلاس های خلاصه شده و کاراکتر های کلمه
- کلاس های معکوس
- کاراکتر نقطه
- ست ها
- محدوده ها / رنج ها (ranges)
- در نظر نگرفتن ست ها و رنج ها
- کمیت سنج ها / Quantifiers
- کمیت سنج های مختصر شده
- تناوب / جایگزینی
- قسمت های دیگه رجکس
- تنظیمات الگو و فلگ ها
- جستجو با String.match()
- مثال ۱۱.۰۱: تاثیر فلگ g
- بقیه متد های String برای رجکس ها
- مثال ۱۱.۰۲: تغییر رجکس برای تطبیق یک الگو
- اضافه کردن string های بیشتر به رجکس
- تمرین ۱۱.۰۱: گسترش الگو های تطبیق شماره تلفن برای قبول کردن چندین فرمت مختلف
- تمرین ۱۱.۰۲: گسترش الگو های تطبیق شماره تلفن برای قبول کردن یک فرمت خاص
- رجکس های به درد بخور
- بهترین روش های نوشتن کد تمیز
- روش های انتخاب اسم های خوب
- لینتر (linter) های جاوا اسکریپت
- مثال ۱۱.۰۳: JSLint
- تمرین ۱۱.۰۳: ریفکتور کردن کد به کد تمیز (clean code)
- خلاصه این فصل
- معرفی
- تفاوت های مرورگر ها
- polyfill ها
- Transpiler ها
- کتابخونه های دارای یک متدولوژی توسعه
- پکیج منیجر ها
- پکیج منیجر npm
- نصب ماژول ها
- پکیج منیجر yarn
- ترنسپایلر Babel
- مثال ۱۲.۰۱: یک پروژه پایه با Babel
- اپلیکیشن های Babel همراه با Parcel
- Parcel چیه؟
- استفاده از Parcel
- اپلیکیشن های ماژولار با Parcel
- مثال ۱۲.۰۲: یک پروژه پایه با Parcel
- اپلیکیشن های Babel همراه با Webpack
- معماری وب پک
- لودر ها و پلاگین های وب پک
- تنظیمات وب پک
- مثال ۱۲.۰۳: یک پروژه وب پک پایه
- باندلر های معروف دیگه
- ترنسپایل کردن بقیه زبان ها
- زبان تایپ اسکریپت (TypeScript)
- مثال ۱۲.۰۴: یک پروژه پایه تایپ اسکریپت
- Elm و ClojureScript
- Haxe
- کتابخونه های دارای کد های آماده
- jQuery
- Underscore ،Lodash و Ramda
- مدل ها (Models)، ویو ها (Views) و کنترلر ها (Controllers)
- Virtual DOM
- برنامه نویسی Reactive
- فریم ورک های معروف
- AngularJS
- ReactJS
- Vue.js
- کتابخونه های سمت سرور
- Express
- Request
- Socket.IO
- تمرین ۱۲.۰۱: ایجاد یک پروژه برای شناسایی و کامپایل فایل های تایپ اسکریپت
- خلاصه این فصل
- معرفی
- پارادایم های جاوا اسکریپت
- پارادایم رویه ای
- مثال ۱۳.۰۱: به کار گیری و پیاده سازی برنامه نویسی رویه ای
- پارادایم شی گرایی
- مثال ۱۳.۰۲: به کار گیری و پیاده سازی پارادایم شی گرایی
- Encapsulation (کپسوله سازی)
- Inheritance (وراثت)
- مثال ۱۳.۰۳: پیاده سازی inheritance با کلیدواژه extends
- کانسپت های پایه جاوا اسکریپت
- نمونه های اولیه (Prototypes) و وراثت اولیه (Prototypical Inheritance)
- وراثت اولیه (Prototypical Inheritance) چیه؟
- مثال ۱۳.۰۴: پیاده سازی وراثت اولیه
- فانکشن های anonymous
- تفاوت بین فانکشن های اسم دار و فانکشن های anonymous
- اسکوپ دیتا
- اسکوپ گلوبال
- اسکوپ لوکال
- اسکوپ سطح فانکشن
- اسکوپ سطح بلاک
- Hoisting
- تفاوت بین var و let
- Closure ها
- مدیریت حافظه جاوا اسکریپت
- چرخه حیات حافظه
- مقایسه تخصیص استاتیک و داینامیک حافظه
- آزاد کردن حافظه
- پیدا کردن حافظه استفاده نشده با بررسی رفرنس ها
- تمرین ۱۳.۰۱: ایجاد یک برنامه ماشین حساب
- خلاصه این فصل
- معرفی
- فانکشن های خالص
- عوارض جانبی
- تغییرناپذیر بودن (Immutability)
- مثال ۱۴.۰۱: مقدار ها و آبجکت های تغییرناپذیر - استرینگ ها
- مثال ۱۴.۰۲: مقدار ها و آبجکت های تغییرناپذیر - عدد ها
- مثال ۱۴.۰۳: تغییرپذیری - آرایه ها
- مثال ۱۴.۰۴: تغییرپذیری - آبجکت ها
- کلون (شبیه سازی) آبجکت ها و آرایه ها
- نمونه دیتا برای مثال ها
- فانکشن های مرتبه بالا - Higher-Order Functions
- متد Array.prototype.filter
- یک یادآوری
- حذف حلقه های for
- متد Array.prototype.map
- مثال ۱۴.۵: روش دوم استفاده از Array.prototype.map
- متد Array.prototype.reduce
- مثال ۱۴.۰۶: گروه بندی با استفاده از Array.prototype.reduce
- Composition همراه با compose() و pipe()
- پیاده سازی ()compose و ()pipe
- Curry کردن فانکشن ها
- مثال ۱۴.۰۷: کاربرد های بیشتر برای Composition و فانکشن های Curry شده
- بازگشت تابع (Function Recursion)
- مثال ۱۴.۰۸: شبیه سازی کارت های ورق بازی با استفاده از reduce()
- مثال ۱۴.۰۹: استفاده از متد pipe برای ایجاد فانکشن شافل کردن / بهم ریختن کارت ها
- بلک جک
- مپ کردن مقدار کارت ها به کارت ها
- تمرین ۱۴.۰۱: فانکشن های بلک جک
- مدیریت وضعیت بازی بلک جک
- جریان logic بازی بلک جک
- فانکشن های نمایش وضعیت بازی بلک جک در صفحه
- کد بازی بلک جک
- خلاصه این فصل
- معرفی
- کال بک ها
- ()setTimeout
- مثال ۱۵.۰۱: اجرای asynchronous کد با ()setTimeout
- مشکلات Callback Hell و Pyramid of Doom
- Promise ها و Fetch API
- استفاده از Fetch API برای دریافت کامنت پست ها
- مثال ۱۵.۰۲: ریفکتور کد لیست کامنت ها جهت استفاده از Fetch API
- تغییری برای بهبود کارایی کد
- مرتب تر کردن کد Fetch قسمت قبل
- جزئیات بیشتر در رابطه با استفاده از Fetch API
- نکاتی در رابطه با promise ها
- مثال ۱۵.۰۳: ایجاد یک فانکشن برای به تاخیر انداختن اجرای یک عملیات
- اصلاحات بیشتر در ()addDelay
- Async/Await
- تکرار شونده ها (iterators) و جنریتور های async
- تمرین ۱۵.۰۱: ریفکتور کردن کد promise جهت استفاده از سینتکس await/async
- تمرین ۱۵.۰۲: ساده تر کردن کد promise با حذف کردن پارامتر های فانکشن
- خلاصه این فصل
- معرفی
- یادگیری ماشین
- یادگیری تقویتی (Reinforcement Learning)
- یادگیری بدون نظارت (Unsupervised Learning)
- یادگیری تحت نظارت (Supervised Learning)
- Tensorflow.js چیه؟
- شبکه های عصبی کانولوشن یا پیچشی (Convolutional Neural Networks / CNN)
- MobileNet
- مثال ۱۶.۰۱: ایجاد یک برنامه تشخیص دسته بندی تصویر با Tensorflow
- الگوریتم KNN
- پردازش ویدیوی زنده با Tensorflow
- مثال ۱۶.۰۲: ساخت برنامه تشخیص دسته بندی تصویر از وبکم با Tensorflow
- یادگیری انتقالی (Transfer Learning)
- الگوریتم K-نزدیک ترین همسایه (K-Nearest Neighbor)
- مثال ۱۶.۰۳: آموزش مدل در مرورگر
- آموزش یک مدل جدید
- مثال ۱۶.۰۴: آماده سازی دیتا
- انکودینگ وان هات (one-hot)
- دوره ها (Epochs)
- توابع فعالسازی (Activation Functions)
- مثال ۱۶.۰۵: آموزش مدل
- مثال ۱۶.۰۶: استفاده از مدل برای پیش بینی
- تمرین ۱۶.۰۱: استفاده از Tensorflow.js و مدل تشخیص اشیای COCO-SSD در ایجاد یک برنامه
- خلاصه این فصل
- معرفی
- چرا تست برنامه مهمه؟
- توسعه تست محور / Test-Driven Development (TDD)
- مستندات (documentation) و تست ها
- تست ها، کد نویسی اعلانی و برنامه نویسی تابح محور
- تست واحد / Unit Test
- مثال ۱۷.۰۱: یک یونیت تست ساده
- تایپ های Higher-Kinded
- فانکتور ها در فانکشن ها
- فریم ورک تست Jest
- مثال ۱۷.۰۲: تنظیمات اولیه تست ها با Babel
- نوشتن تست ها
- تست فانکشن validateString
- مثال ۱۷.۰۳: ایجاد و مقداردهی تست ها
- فراهم کردن شرایط مورد نیاز برای تست
- رفع ارور های رفرنس
- مثال ۱۷.۰۴: ساخت فانکتور ها
- ارور های عدم تطابق دیتاتایپ
- مثال ۱۷.۰۵: برطرف کردن ارور های یونیت تست ها
- تمرین ۱۷.۰۱: توسعه مبتنی بر تست / TDD
- متد های expect در Jest
- assertion های بولین
- assertion های نادرستی مقدار
- refute (رد) کردن assertion ها
- assertion های آبجکت ها
- assertion های آرایه ها
- assertion های فانکشن ها
- ساختار ماژول تست
- فانکشن ()describe
- فانکشن های شروع و پایان تست
- assertion های async
- assertion های سفارشی
- فرمت matcher ها
- فانکشن extend
- مثال ۱۷.۰۶: گسترش Jest با matcher های فانکتور ها
- شبیه سازی (mock) فانکشن ها
- ماک های اتوماتیک ماژول ها
- ماک کردن دستی ماژول ها
- ماک کردن فانکشن های تایمر
- تمرین ۱۷.۰۲: تکمیل پروژه محاسبه کننده میانگین تعداد کلمه های یک جمله
- خلاصه این فصل
- تمرین ۱.۰۱: ایجاد یک پیغام pop-up در مرورگر
- تمرین ۲.۰۱: اضافه کردن یا تغییر دادن یک آیتم توی لیست To-Do
کد تمیز و قابل نگهداری
برای مشاهده ی قسمت های رایگان از منوی سمت راست قسمت مورد نظر خود را انتخاب کنید