تماس با ما

توابع و آبجکت‌های سراسری (Global)

توابع و آبجکت‌های سراسری (Global)؛ آموزش JavaScript به زبان ساده، همراه با مثال و خروجی.

توابع تبدیل و بررسی

parseInt("42.9px");     // → 42
parseInt("0xFF", 16);   // → 255
parseInt("101", 2);     // → 5
parseFloat("3.14.15");  // → 3.14
isNaN("abc");           // → true  (اول تبدیل به عدد)
isFinite("12");         // → true
Number.isNaN("abc");    // → false (دقیق‌تر)

Encode / Decode URL

encodeURIComponent("a b&c=d/ف");   // → "a%20b%26c%3Dd%2F%D9%81"  (برای مقدار پارامتر)
decodeURIComponent("a%20b");       // → "a b"
encodeURI("https://x.com/a b?q=ف");// URL کامل رو encode می‌کنه ولی : / ? & = رو نه
decodeURI("%D9%81");               // → "ف"

بهتره برای query string:

const url = new URL("https://example.com/search");
url.searchParams.set("q", "جاوا اسکریپت");
url.searchParams.append("page", 2);
url.toString();  // → https://example.com/search?q=...&page=2
new URLSearchParams({ a: 1, b: 2 }).toString(); // → "a=1&b=2"

Base64

btoa("hello");            // → "aGVsbG8="
atob("aGVsbG8=");         // → "hello"
// برای یونیکد:
btoa(String.fromCharCode(...new TextEncoder().encode("سلام")));
// Node: Buffer.from("سلام").toString("base64")

تایمرها

const t1 = setTimeout(() => console.log("بعد از ۱ ثانیه"), 1000);
clearTimeout(t1);

const t2 = setInterval(() => console.log("هر ثانیه"), 1000);
clearInterval(t2);

setTimeout((a, b) => console.log(a + b), 100, 1, 2);   // پاس دادن آرگومان

queueMicrotask(() => console.log("microtask"));
setImmediate?.(() => {});                     // فقط Node
requestAnimationFrame?.(() => {});            // فقط مرورگر (قبل از رندر بعدی)

نکته‌ی setTimeout(fn, 0): بلافاصله اجرا نمی‌شه؛ بعد از پایان کد جاری و microtask ها. جزئیات: Event Loop.

کپی عمیق

const copy = structuredClone({ d: new Date(), s: new Set([1]), n: [1, 2] });

پشتیبانی: Date, Map, Set, RegExp, آرایه، object ساده، مرجع دایره‌ای. نه: توابع، کلاس‌های سفارشی (prototype از بین می‌ره)، DOM.

globalThis

شیء سراسری در هر محیطی:

globalThis;   // مرورگر: window ، Node: global

Intl (بین‌المللی‌سازی)

new Intl.NumberFormat("fa-IR").format(1234567.89);  // → "۱٬۲۳۴٬۵۶۷٫۸۹"
new Intl.NumberFormat("en-US", { style: "currency", currency: "EUR" }).format(9.5); // → "€9.50"
new Intl.NumberFormat("en", { notation: "compact" }).format(1500000);               // → "1.5M"
new Intl.DateTimeFormat("fa-IR", { dateStyle: "long" }).format(new Date());
new Intl.PluralRules("en").select(1);      // → "one"
new Intl.ListFormat("en", { type: "conjunction" }).format(["a", "b", "c"]); // → "a, b, and c"
new Intl.Collator("fa").compare("الف", "ب");     // برای sort رشته‌ها
new Intl.RelativeTimeFormat("en").format(-3, "day"); // → "3 days ago"

Crypto و شناسه

crypto.randomUUID();                       // → "3b241101-e2bb-4255-8caf-4136c566a962"
crypto.getRandomValues(new Uint8Array(4)); // عدد تصادفی امن

Text Encoding

const bytes = new TextEncoder().encode("سلام");   // → Uint8Array
new TextDecoder().decode(bytes);                  // → "سلام"

AbortController

لغو درخواست یا کار طولانی:

const ac = new AbortController();
fetch("/api", { signal: ac.signal }).catch((e) => console.log(e.name)); // → AbortError
setTimeout(() => ac.abort(), 100);

// ساده‌تر:
fetch("/api", { signal: AbortSignal.timeout(5000) });

fetch (شبکه)

const res = await fetch("https://api.example.com/users");
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const data = await res.json();
// سایر: res.text(), res.blob(), res.arrayBuffer(), res.formData()

جزئیات: Async.

ذخیره‌سازی مرورگر

localStorage.setItem("k", "v");  localStorage.getItem("k");
localStorage.removeItem("k");    localStorage.clear();
sessionStorage.setItem("k", "v");   // تا بستن تب
document.cookie = "a=1; max-age=3600; path=/";

تایپ‌ها: Typed Arrays و ArrayBuffer

const buf = new ArrayBuffer(8);
const view = new Uint8Array(buf);
view[0] = 255;
new Int32Array([1, 2, 3]);
new Float64Array(2);
// Int8Array, Uint8ClampedArray, Int16Array, Uint16Array, Uint32Array, Float32Array, BigInt64Array

Eval و Function (نه!)

eval("1 + 2");                       // → 3  ❌ ناامن، استفاده نکن
new Function("a", "b", "return a + b")(1, 2); // → 3  ❌ همینطور

جدول سریع آبجکت‌های سراسری

دستهموارد
اولیهObject, Function, Boolean, Symbol, String, Number, BigInt, Math, Date, RegExp
مجموعه‌هاArray, Map, Set, WeakMap, WeakSet, WeakRef + Typed Arrays
کنترلPromise, Proxy, Reflect, JSON, Intl, Atomics, SharedArrayBuffer
خطاError, TypeError, RangeError, SyntaxError, ReferenceError, EvalError, URIError, AggregateError
توابعparseInt, parseFloat, isNaN, isFinite, encodeURI(Component), decodeURI(Component), eval
مقادیرundefined, NaN, Infinity, globalThis

ایده‌ای دارید؟ برایمان بگویید

مشاوره و پیشنهاد اولیه رایگان است.

تماس با ما