GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

No menu could be recovered. Follow the blue links in the page.

This view

  • Original page
  • New address

GeezerVison is showing fa.javascript.info — آموزش جاوااسکریپت مدرن

زبان جاوااسکریپت

اینجا ما جاوااسکریپت را یاد می‌گیریم و از ابتدا شروع می‌کنیم و تا مباحث پیشرفته مانند شیءگرایی ادامه می‌دهیم.

ما اینجا، با استفاده حداقلی از نکات مربوط به محیط‌های اجرای خاص، بر روی خود زبان تمرکز می‌کنیم.

معرفی
  • مقدمه‌ای بر جاوااسکریپت
  • کتابچه راهنما و مشخصات (Specification)
  • ویرایشگرهای متن
  • پنل توسعه‌دهندگان
مفاهیم پایه‌ای جاوااسکریپت
  • سلام، دنیا!
  • ساختار کد
  • حالت مدرن، “use strict”
  • متغیرها
  • انواع داده
  • تعاملی: alert، prompt، confirm
  • تبدیل نوع داده
  • عملگرهای پایه، ریاضیات
  • مقایسه ها
  • انشعاب شرطی: if، '?'
  • عملگر های منطقی
  • عملگر Nullish coalescing '??'
  • حلقه ها: while و for
  • دستور "switch"
  • توابع (Functions)
  • اعلان تابع Expression
  • مفاهیم ساده‌ی Arrow functions
  • خلاصه‌ی فصل
  • بیشتر…
کیفیت کد
  • اشکال‌زدایی در مرورگر
  • سبک کدنویسی
  • یادداشت ها
  • کد نینجا
  • تست خودکار با Mocha
  • پلیفیل‌ها و ترنسپایلرها
شیءها: مباحث پایه
  • شیءها
  • مراجع شیء و کپی کردن
  • زباله‌روبی
  • متدهای شیء، "this"
  • سازنده، عملگر "new"
  • زنجیره‌ی اختیاری یا optional chaining '?.'
  • نوع سمبل (Symbol type)
  • تبدیل شیء به مقدار اصلی
انواع داده
  • توابع ابتدایی
  • اعداد
  • رشته‌ها
  • آرایه‌ها
  • متدهای آرایه
  • حلقه‌پذیرها
  • Map, Set, WeakMap and WeakSet
  • ساختارهای Map و Set
  • ساختارهای WeakMap و WeakSet
  • متدهای Object.keys، values، entries
  • مقداردهیِ تجزیه‌کننده‌ی ساختار
  • تاریخ و زمان
  • متدهای JSON، toJSON
  • بیشتر…
استفاده پیشرفته از تابع‌ها
  • بازگشت و پشته
  • پارامترهای رست و سینتکس اسپرد
  • محدوده متغیر، کلوژِر
  • ‌کلمه‌ی "var" قدیمی
  • شیء گلوبال
  • شیء تابع، NFE
  • سینتکس "new Function"
  • زمان‌بندی: setTimeout و setInterval
  • دکوراتورها و ارسال کردن، متدهای call/apply
  • پیوند تابع
  • سرکشی دوباره از تابع‌های کمانی
  • بیشتر…
شیءها، کلاس‌ها، ارث‌بری
  • پرچم‌های ویژگی و توصیف‌کننده‌ها
  • متدهای getter و setter ویژگی
پروتوتایپ‌ها، ارث‌بری
  • وراثت پروتوتایپی
  • F.prototype
  • پروتوتایپ‌های نیتیو (Native prototypes)
  • متد‌های پروتوتایپ، اشیاء بدون __proto__
کلاس‌ها
  • سینتکس پایه کلاس
  • وراثت کلاس
  • ویژگی و متدهای ایستا
  • ویژگی‌ها و متدهای شخصی و محافظت شده
  • تعمیم دادن کلاس‌های درون‌ساخت
  • چک کردن کلاس: "instanceof"
  • Mixinها
مدیریت ارور
  • مدیریت ارور، "try...catch"
  • ارورهای شخصی‌سازی شده، تعمیم دادن Error
Promises، async/await
  • مقدمه: فراخوان
  • کلاس Promise
  • زنجیره‌ای کردن Promise
  • مدیریت ارورها با promiseها
  • Promise API
  • پرومیس‌سازی (Promisification)
  • Microtasks
  • Async/await
Generatorها، حلقه‌زدن پیشرفته
  • Generators
  • Async iteration and generators
ماژول‌ها
  • ماژول ها، معرفی
  • Export و Import
  • Import پویا
متفرقه
  • Proxy and Reflect
  • Eval: یک رشته را به عنوان کد اجرا کنید
  • کاری کردن
  • Reference Type
  • BigInt
  • یونی‌کد، درون رشته‌ها

مرورگر: Document، Eventها، رابط‌ها

یاد بگیرید چگونه صفحه مرورگر را مدیریت کنید: المان‌ها را اضافه کنید، اندازه و موقعیت آن‌ها را دستکاری کنید، به صورت پویا رابط‌ها (interface) بسازید و با بیننده صفحه تعامل داشته باشید.

Document
  • محیط مرورگر و خصوصیات (Specs)
  • درخت DOM
  • Walking the DOM
  • جستجو: *getElement و *querySelector
  • Node properties: type, tag and contents
  • Attributes and properties
  • Modifying the document
  • Styles and classes
  • Element size and scrolling
  • Window sizes and scrolling
  • Coordinates
  • بیشتر…
معرفی Events
  • درامدی بر رویدادهای مرورگر
  • بالارفتن و گرفتن
  • پترن Event delegation
  • اکشن‌های پیشفرض مرورگر
  • Dispatchکردن eventهای شخصی سازی شده
جزئیات Eventها
  • رویدادهای موس
  • حرکت موس: روی/بیرون‌از عنصر، ورود/خروج‌از عنصر
  • Drag'n'Drop with mouse events
  • Pointer events
  • Keyboard: keydown and keyup
  • اسکرول کردن (Scrolling)
فرم‌ها، کنترل‌ها
  • Form properties و methods
  • Focus: متمرکز کردن/محو کردن
  • Events: change, input, cut, copy, paste
  • فرم‌ها: event و method submit
Document و بارگیری منابع
  • Page: DOMContentLoaded, load, beforeunload, unload
  • Scripts: async, defer
  • Resource loading: onload and onerror
متفرقه
  • Mutation observer
  • Selection و Range
  • Event loop: microtasks و macrotasks

مقاله‌های بیشتر

لیستی از موضوعات بیشتر که فرض می‌شود شما دو بخش اول آموزش را گذرانده‌اید. ترتیب مشخصی اینجا وجود ندارد و شما می‌توانید به هر ترتیبی که می‌خواهید مقالات را بخوانید.
Frameها و پنجره‌ها
  • پنجره‌های بازشو و متدهای پنجره
  • ارتباط بین پنجره‌ای
  • حمله‌ی clickjacking
داده Binary، فایل‌ها
  • ArrayBuffer, آرایه‌های دودویی
  • رمزگشای متن و رمزگذار متن
  • Blob
  • File and FileReader
درخواست‌های شبکه
  • Fetch
  • FormData
  • Fetch: Download progress
  • Fetch: Abort
  • Fetch: Cross-Origin Requests
  • Fetch API
  • URL objects
  • XMLHttpRequest
  • Resumable file upload
  • Long polling
  • وب سوکت
  • Server Sent Events
  • بیشتر…
ذخیره داده در مرورگر
  • Cookies, document.cookie
  • LocalStorage, sessionStorage
  • IndexedDB
انیمیشن
  • Bezier منحنی
  • CSS انیمیشن های
  • JavaScript انیمیشن های
اجزاء وب
  • از ارتفاع مداری
  • Custom elements
  • Shadow DOM
  • Template element (عنصر قالب)
  • Shadow DOM slots, composition
  • Shadow DOM styling
  • Shadow DOM and events
عبارات باقاعده (Regular Expression)
  • الگو ها و پرچم ها (Patterns and flags)
  • کلاس های کاراکتر (Character classes)
  • یونیکد: پرچم "u" و کلاس {...}p\
  • anchorها: شروع ^ رشته و پایان $ آن
  • حالت چند خطی anchors ^ $، flag "m"
  • Word boundary: \b
  • Escaping, special characters
  • Sets and ranges [...]
  • Quantifiers +, *, ? and {n}
  • Greedy and lazy quantifiers
  • Capturing groups
  • Backreferences in pattern: \N and \k<name>
  • Alternation (OR) |
  • Lookahead and lookbehind
  • Lookahead (in progress)
  • Catastrophic backtracking
  • Sticky flag "y", searching at position
  • Methods of RegExp and String
  • بیشتر…
اشتراک گذاری
نقشه آموزش

نظرات

قبل از نظر دادن این را بخوانید…
  • اگر پیشنهادی برای بهبود ترجمه دارید - لطفا یک ایشوی گیت‌هاب یا یک پول‌ریکوئست به جای کامنت‌گذاشتن باز کنید.
  • اگر چیزی را در مقاله متوجه نمی‌شوید – به دقت توضیح دهید.
  • برای قراردادن یک خط از کد، از تگ <code> استفاده کنید، برای چندین خط – کد را درون تگ <pre> قرار دهید، برای بیش از ده خط کد – از یک جعبهٔ شنی استفاده کنید. (plnkr، jsbin، codepen…)
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.