برگهٔ تقلب JavaScript
مرجعی قابلجستجو و چاپ از JavaScript مدرن — نحو، آرایهها، رشتهها، اشیاء، async/await، DOM و ویژگیهای ES2022+. رایگان.
متغیرها و انواع
10let x = 1;
متغیر با دامنه بلوک و قابل مقداردهی مجدد
const PI = 3.14;
ثابت با دامنه بلوک
typeof value
نوع را به صورت رشته برمیگرداند
Number('42')
تبدیل رشته به عدد
String(42)
تبدیل مقدار به رشته
parseInt('42px', 10)
تجزیه عدد صحیح ابتدایی (مبنای ۱۰)
Boolean(0)
تبدیل مقدار به true/false
value ?? 'default'
ادغام نال (فقط null/undefined)
a?.b?.c
زنجیره اختیاری، توقف روی null
Array.isArray(x)
بررسی آرایه بودن مقدار
توابع
9function add(a, b) { return a + b; }
اعلان تابع نامدار
const add = (a, b) => a + b;
تابع پیکانی با بازگشت ضمنی
const f = (a = 1) => a;
مقدار پیشفرض پارامتر
function f(...args) {}
پارامترهای rest در آرایه جمع میشوند
f(...arr)
پخش آرایه به آرگومانها
const { a, b } = obj;
تخریبسازی شیء
const [x, y] = arr;
تخریبسازی آرایه
(function(){})()
تابع بلافاصله فراخواندهشده (IIFE)
fn.bind(this)
مقیدسازی this ثابت
رشتهها
10`Hello ${name}`
درونیابی template literal
str.length
تعداد کاراکترها
str.includes('a')
بررسی وجود زیررشته
str.slice(0, 3)
استخراج بخشی از رشته
str.replace(/a/g, 'b')
جایگزینی تطبیقها (regex)
str.split(',')
تقسیم به آرایه
str.trim()
حذف فاصلههای اطراف
str.toUpperCase()
تبدیل به حروف بزرگ
str.padStart(3, '0')
پر کردن ابتدا تا طول معین
str.at(-1)
کاراکتر در اندیس (پشتیبانی منفی)
آرایهها
11arr.map(x => x * 2)
تبدیل هر عنصر
arr.filter(x => x > 0)
نگهداشتن عناصر منطبق
arr.reduce((a, b) => a + b, 0)
کاهش به یک مقدار
arr.find(x => x.id === 1)
اولین عنصر منطبق
arr.some(x => x > 0)
true اگر هر عنصری منطبق باشد
arr.every(x => x > 0)
true اگر همه عناصر منطبق باشند
arr.includes(3)
بررسی وجود مقدار
arr.sort((a, b) => a - b)
مرتبسازی عددی صعودی
[...new Set(arr)]
حذف مقادیر تکراری
arr.flat(Infinity)
صاف کردن کامل آرایههای تودرتو
arr.at(-1)
آخرین عنصر (اندیس منفی)
اشیاء
9Object.keys(obj)
آرایه کلیدهای قابلشمارش خود
Object.values(obj)
آرایه مقادیر خود
Object.entries(obj)
آرایه جفتهای [کلید، مقدار]
{ ...a, ...b }
ادغام اشیاء (spread)
Object.assign({}, a, b)
کپی/ادغام در یک هدف
Object.freeze(obj)
تغییرناپذیر کردن شیء
{ [key]: value }
نام ویژگی محاسبهشده
obj.hasOwnProperty('x')
بررسی وجود ویژگی خود
structuredClone(obj)
کلون عمیق شیء
ناهمگام و promiseها
9async function f() {}
اعلان تابع async
await fetch(url)
توقف تا تکمیل promise
Promise.all([p1, p2])
انتظار برای تکمیل همه
Promise.allSettled([p1, p2])
انتظار برای نهاییشدن همه
Promise.race([p1, p2])
نتیجه با اولین مورد نهاییشده
new Promise((res, rej) => {})
ساخت دستی promise
try { await f(); } catch (e) {}
مدیریت خطاهای ناهمگام
setTimeout(fn, 1000)
اجرا پس از تأخیر (میلیثانیه)
queueMicrotask(fn)
زمانبندی یک microtask
جریان کنترل
9if (a) {} else if (b) {} else {}
شاخههای شرطی
a ? b : c
عبارت سهتایی
switch (x) { case 1: break; }
انشعاب چندراهه
for (const x of arr) {}
پیمایش مقادیر (iterableها)
for (const k in obj) {}
پیمایش کلیدهای شیء
while (cond) {}
حلقه تا برقراری شرط
arr.forEach((x, i) => {})
اجرای callback برای هر عنصر
break / continue
خروج یا پرش از تکرار حلقه
label: for (...) { break label; }
خروج از حلقههای تودرتو
DOM و رویدادها
10document.querySelector('.x')
اولین عنصر منطبق
document.querySelectorAll('.x')
همه عناصر منطبق (NodeList)
el.addEventListener('click', fn)
افزودن شنونده رویداد
el.classList.toggle('active')
تغییر وضعیت کلاس CSS
el.dataset.id
خواندن صفت data-id
el.textContent = 'hi'
تنظیم امن متن (بدون HTML)
el.setAttribute('aria-hidden', true)
تنظیم یک صفت
e.preventDefault()
لغو عملکرد پیشفرض
el.closest('.parent')
نزدیکترین جد منطبق
document.createElement('div')
ساخت عنصر جدید
کلاسها و ماژولها
9class A extends B {}
کلاس با وراثت
constructor() { super(); }
مقداردهی و فراخوانی والد
#private = 1;
فیلد خصوصی کلاس
static create() {}
متد static کلاس
get value() {}
دسترسی getter
export default fn;
خروجی پیشفرض ماژول
export { a, b };
خروجیهای نامدار ماژول
import x, { y } from './m.js'
ورودیهای پیشفرض و نامدار
const m = await import('./m.js')
ورود پویا
هیچ موردی با «:q» مطابقت ندارد.
به کمک نیاز دارید؟
با این ابزار مشکلی پیدا کردید؟ به تیم ما اطلاع دهید.