logo
  • صفحه نخست
  • ویراشگر کد
logo

آموزش کدنویسی با بزرگ‌ترین وبسایت آموزشی توسعه‌ی وب؛ یادگیری گام‌به‌گام، مقالات کاربردی و تمرین‌های عملی برای علاقه‌مندان به برنامه‌نویسی.

لینک‌های سریع

  • صفحه نخست
  • ویراشگر کد
  • ورود
  • ثبت نام

دسته‌بندی‌ها

  • HTML
  • CSS
  • جاوااسکریپت
  • ری‌اکت

© 2026 گرین‌دیتا. تمامی حقوق محفوظ است.

ساخته‌شده با ❤ برای علاقه‌مندان به برنامه‌نویسی

جاوااسکریپت

مقدمه‌ای بر جاوااسکریپت و محیط اجرا
  1. جاوااسکریپت چیست و در وب چه نقشی دارد
  2. نحوه اجرای جاوااسکریپت در مرورگر
  3. ابزارها و کنسول توسعه‌دهنده
  4. آزمون فصل مقدمه‌ای بر جاوااسکریپت
متغیرها و انواع داده
  1. var، let و const
  2. Primitive Types
  3. Reference Types
  4. Type Conversion و Type Coercion
  5. Truthy/Falsy، ==، ===، Object.is
  6. typeof و instanceof
  7. آزمون فصل - متغیرها و انواع داده
عملگرها و ساختارهای کنترلی
  1. عملگرهای محاسباتی، مقایسه‌ای و منطقی
  2. if/else و switch
  3. حلقه‌ها (for، while، do-while، for...of، for...in)
  4. آزمون فصل ۳ — عملگرها و ساختارهای کنترلی
توابع: مبانی
  1. تعریف تابع، پارامتر و آرگومان
  2. مقدار بازگشتی تابع
  3. Function Declaration در برابر Function Expression
  4. Arrow Functions
  5. Default Parameters و Rest Parameters
  6. آزمون فصل - توابع: مبانی
آرایه‌ها
  1. ایجاد آرایه و دسترسی به عناصر
  2. متدهای پرکاربرد آرایه
  3. متدهای تکرارکننده (map، filter، reduce، forEach، find و ...)
  4. Destructuring و Spread/Rest در آرایه
  5. آزمون فصل - آرایه‌ها
اشیاء: مبانی
  1. ایجاد شیء و دسترسی به Property
  2. متدهای Object (keys، values، entries، assign)
  3. Destructuring و Spread در Object
  4. آزمون فصل - اشیاء: مبانی
Execution Model: حوزه، Hoisting و Execution Context
  1. Lexical Scope و Nested Scope
  2. Scope Chain
  3. Hoisting و Temporal Dead Zone
  4. Execution Context (Global و Function)
  5. Lexical Environment و Environment Record
  6. Call Stack و Execution Flow
  7. آزمون فصل - Execution Model
Closure
  1. Closure چیست؟
  2. کاربردهای Closure (از جمله Private State)
  3. Closure و Memory
  4. اشتباهات رایج در استفاده از Closure
  5. آزمون فصل ۸ — Closure
توابع پیشرفته
  1. First-Class Functions و Higher-Order Functions
  2. Callback
  3. Pure Functions و Side Effects
  4. Function Composition
  5. IIFE
  6. آزمون فصل — توابع پیشرفته
this و Binding
  1. this چیست و چگونه تعیین می‌شود
  2. Default Binding و Implicit Binding
  3. Explicit Binding: call، apply و bind
  4. Constructor Binding و Method Invocation
  5. Arrow Function و this
  6. آزمون فصل — this و Binding
Prototype، Constructor Function و Class
  1. Prototype و Prototype Chain
  2. Constructor Function
  3. Class و Syntax مربوط به آن
  4. Inheritance (مبتنی بر Prototype و مبتنی بر Class)
  5. Private Fields و Static Members
  6. تفاوت Class و Prototype-based Inheritance
  7. آزمون فصل Prototype و Class
Object Model پیشرفته
  1. Property Descriptors: Writable، Enumerable، Configurable
  2. Getter و Setter
  3. آزمون فصل Object Model پیشرفته
DOM: شناخت و انتخاب عناصر
  1. DOM چیست و DOM Tree
  2. روش‌های انتخاب عناصر
  3. پیمایش DOM (Traversing)
  4. آزمون فصل — DOM
DOM: ایجاد، ویرایش و حذف عناصر
  1. ایجاد و افزودن عناصر
  2. ویرایش محتوا و Attributes
  3. کار با Classes و Styles از طریق جاوااسکریپت
  4. حذف عناصر
  5. آزمون فصل DOM: ایجاد، ویرایش و حذف عناصر
Events
  1. مدل رویداد و Event Object
  2. Bubbling و Capturing
  3. Event Delegation
  4. آزمون پایان فصل — Events
Forms و اعتبارسنجی
  1. دسترسی به عناصر فرم
  2. Form Events
  3. Validation
  4. آزمون پایان فصل — Forms
Browser APIs
  1. Window، Location و History
  2. Navigator و Timers
  3. localStorage و sessionStorage
  4. Cookies
  5. آزمون پایان فصل ۱۷ — Browser API
ارتباط با سرور: Fetch
  1. Fetch API و درخواست‌های پایه
  2. کار با Response و JSON
  3. آزمون پایان فصل — Fetch API و JSON
Iterators و Generators
  1. Iterable و Iterator
  2. Symbol.iterator
  3. Generator و yield
  4. Async Iterator و Async Iteration
  5. آزمون پایان فصل — Iterable, Iterator
برنامه‌نویسی ناهمزمان: مبانی و Event Loop
  1. Synchronous در برابر Asynchronous
  2. Promise Chaining و Error Propagation
  3. Event Loop و تحلیل ترتیب اجرای کد
  4. آزمون پایان فصل — Event Loop
Promise
  1. Promise و State‌های آن
  2. Promise Chaining و Error Propagation
  3. Promise.all، allSettled، race و any
  4. آزمون پایان فصل — Promise
async/await
  1. Syntax و نحوه کار async/await
  2. مدیریت خطا در async/await
  3. async/await و Async Iteration
  4. آزمون پایان فصل — Async/Await
Error Handling
  1. Error و انواع آن
  2. throw، try، catch و finally
  3. Custom Error
  4. Async Error Handling و Stack Trace
  5. آزمون پایان فصل — Error Handling
Collections پیشرفته
  1. Map و Set
  2. WeakMap و WeakSet
  3. Typed Arrays و ArrayBuffer
  4. آزمون پایان فصل — collections
Modules
  1. ES Modules، import و export
  2. Named Export و Default Export
  3. Dynamic Import
  4. آزمون پایان فصل — ES Modules
Metaprogramming
  1. Symbol
  2. Proxy
  3. Reflect
  4. آزمون پایان فصل — Metaprogramming
Regular Expressions
  1. Pattern، Character Classes و Quantifiers
  2. Groups و Capturing Groups
  3. Flags، Lookahead و Lookbehind
  4. آزمون پایان فصل — Regular Expressions
Memory و Performance
  1. Memory Allocation، References و Reachability
  2. Garbage Collection و Memory Leak
  3. Performance Measurement و Optimization
  4. آزمون پایان فصل — Memory Management و Performance
Security در جاوااسکریپت و مرورگر
  1. XSS و DOM XSS
  2. CORS و CSP
  3. آزمون پایان فصل — امنیت در جاوااسکریپت
آزمون جامع پایان دوره
  1. آزمون جامع پایان دوره‌ی JavaScript

جاوااسکریپت / توابع پیشرفته

آزمون فصل — توابع پیشرفته

تمرین‌ها

تمرین 1

۱. اگر تابعی به‌عنوان مقدار به یک Property از یک Object نسبت داده شود، این رفتار نمونه‌ای از کدام ویژگی جاوااسکریپت است؟

برای ثبت نتیجه‌ی این تمرین لطفاً وارد حساب کاربری خود شوید.

تمرین 2

در کد زیر، چرا repeat یک Higher-Order Function محسوب می‌شود؟

function repeat(times, action) {
  for (let i = 1; i <= times; i++) {
    action(i);
  }
}

برای ثبت نتیجه‌ی این تمرین لطفاً وارد حساب کاربری خود شوید.

تمرین 3

کدام‌یک از موارد زیر Side Effect محسوب نمی‌شود؟

برای ثبت نتیجه‌ی این تمرین لطفاً وارد حساب کاربری خود شوید.

تمرین 4

در compose(f, g) که به‌صورت function (x) { return f(g(x)); } تعریف شده، کدام تابع زودتر روی x اجرا می‌شود؟

برای ثبت نتیجه‌ی این تمرین لطفاً وارد حساب کاربری خود شوید.

تمرین 5

دلیل اصلی قرار دادن پرانتز دور تعریف تابع در یک IIFE چیست؟

برای ثبت نتیجه‌ی این تمرین لطفاً وارد حساب کاربری خود شوید.