JavaScript چیٹ شیٹ
جدید JavaScript کا ایک قابلِ تلاش، قابلِ پرنٹ حوالہ — سنٹیکس، arrays، strings، objects، async/await، DOM اور ES2022+ خصوصیات۔ مفت۔
ویری ایبلز اور ٹائپس
10let x = 1;
بلاک اسکوپ، دوبارہ تفویض کے قابل ویری ایبل
const PI = 3.14;
بلاک اسکوپ کونسٹنٹ بائنڈنگ
typeof value
ٹائپ کو بطور string واپس کرتا ہے
Number('42')
string کو نمبر میں تبدیل کریں
String(42)
ویلیو کو string میں تبدیل کریں
parseInt('42px', 10)
ابتدائی integer پارس کریں (base 10)
Boolean(0)
ویلیو کو true\/false میں بدلیں
value ?? 'default'
Nullish coalescing (صرف null\/undefined)
a?.b?.c
Optional chaining، null پر رک جاتا ہے
Array.isArray(x)
چیک کریں کہ ویلیو array ہے یا نہیں
فنکشنز
9function add(a, b) { return a + b; }
نامزد function ڈیکلیریشن
const add = (a, b) => a + b;
Arrow function بمع implicit return
const f = (a = 1) => a;
ڈیفالٹ parameter ویلیو
function f(...args) {}
Rest parameters array میں جمع ہوتے ہیں
f(...arr)
array کو arguments میں spread کریں
const { a, b } = obj;
Object destructuring
const [x, y] = arr;
Array destructuring
(function(){})()
فوری طور پر چلنے والا function (IIFE)
fn.bind(this)
ایک مقررہ this context باندھیں
Strings
10`Hello ${name}`
Template literal interpolation
str.length
حروف کی تعداد
str.includes('a')
چیک کریں کہ substring موجود ہے
str.slice(0, 3)
string کا حصہ نکالیں
str.replace(/a/g, 'b')
میچز تبدیل کریں (regex)
str.split(',')
array میں تقسیم کریں
str.trim()
ارد گرد کی whitespace ہٹائیں
str.toUpperCase()
اپر کیس میں تبدیل کریں
str.padStart(3, '0')
شروع کو ایک لمبائی تک pad کریں
str.at(-1)
index پر حرف (منفی بھی)
Arrays
11arr.map(x => x * 2)
ہر element کو تبدیل کریں
arr.filter(x => x > 0)
میچ کرنے والے elements رکھیں
arr.reduce((a, b) => a + b, 0)
ایک ویلیو میں reduce کریں
arr.find(x => x.id === 1)
پہلا میچ کرنے والا element
arr.some(x => x > 0)
اگر کوئی element میچ کرے تو true
arr.every(x => x > 0)
اگر سب elements میچ کریں تو true
arr.includes(3)
ویلیو کی جانچ کریں
arr.sort((a, b) => a - b)
عددی ترتیب (بڑھتے ہوئے)
[...new Set(arr)]
نقل ویلیوز ہٹائیں
arr.flat(Infinity)
nested arrays مکمل flatten کریں
arr.at(-1)
آخری element (منفی index)
Objects
9Object.keys(obj)
اپنی enumerable keys کا array
Object.values(obj)
اپنی ویلیوز کا array
Object.entries(obj)
[key, value] جوڑوں کا array
{ ...a, ...b }
objects ضم کریں (spread)
Object.assign({}, a, b)
ہدف میں کاپی\/ضم کریں
Object.freeze(obj)
object کو immutable بنائیں
{ [key]: value }
Computed property name
obj.hasOwnProperty('x')
اپنی property کی جانچ کریں
structuredClone(obj)
object کا deep clone بنائیں
Async اور promises
9async function f() {}
async function ڈیکلیئر کریں
await fetch(url)
promise حل ہونے تک رکیں
Promise.all([p1, p2])
سب کے resolve ہونے کا انتظار کریں
Promise.allSettled([p1, p2])
سب کے settle ہونے کا انتظار کریں
Promise.race([p1, p2])
پہلے settle ہونے والے سے resolve کریں
new Promise((res, rej) => {})
promise دستی طور پر بنائیں
try { await f(); } catch (e) {}
async errors سنبھالیں
setTimeout(fn, 1000)
تاخیر کے بعد چلائیں (ms)
queueMicrotask(fn)
microtask شیڈول کریں
کنٹرول فلو
9if (a) {} else if (b) {} else {}
مشروط شاخیں
a ? b : c
Ternary expression
switch (x) { case 1: break; }
کئی راستوں والی شاخ
for (const x of arr) {}
ویلیوز پر iterate کریں (iterables)
for (const k in obj) {}
object keys پر iterate کریں
while (cond) {}
شرط برقرار رہنے تک loop کریں
arr.forEach((x, i) => {})
ہر element پر callback چلائیں
break / continue
loop iteration سے نکلیں یا چھوڑیں
label: for (...) { break label; }
nested loops سے باہر نکلیں
DOM اور events
10document.querySelector('.x')
پہلا میچ کرنے والا element
document.querySelectorAll('.x')
تمام میچ کرنے والے elements (NodeList)
el.addEventListener('click', fn)
event listener منسلک کریں
el.classList.toggle('active')
CSS class ٹوگل کریں
el.dataset.id
data-id attribute پڑھیں
el.textContent = 'hi'
متن محفوظ طریقے سے سیٹ کریں (بغیر HTML)
el.setAttribute('aria-hidden', true)
attribute سیٹ کریں
e.preventDefault()
ڈیفالٹ ایکشن منسوخ کریں
el.closest('.parent')
قریب ترین میچ کرنے والا ancestor
document.createElement('div')
نیا element بنائیں
Classes اور modules
9class A extends B {}
وراثت کے ساتھ class
constructor() { super(); }
parent کو initialize اور کال کریں
#private = 1;
private class field
static create() {}
class پر static method
get value() {}
Getter accessor
export default fn;
ڈیفالٹ module export
export { a, b };
نامزد module exports
import x, { y } from './m.js'
ڈیفالٹ + نامزد imports
const m = await import('./m.js')
Dynamic import
کوئی اندراج “:q” سے میل نہیں کھاتا۔
مدد چاہیے؟
اس ٹول میں کوئی مسئلہ ملا؟ ہماری ٹیم کو بتائیں۔