@@ -6339,7 +6788,7 @@
-
+
جاواسکریپت به طور پیش فرض از فضای نام پشتیبانی نمیکنه. بنابراین اگه هر عنصری (تابع، روش، شی، متغیر) ایجاد کنین گلوبال میشه و فضای نام گلوبال رو آلوده میکنه. بیاین مثالی از تعریف دو تابع بدون فضای نام بزنیم،
function func1() {
@@ -6355,7 +6804,7 @@
-
+
حتی اگه جاواسکریپت فاقد فضاهای نام باشه، میتونیم از Objects، IIFE برای ایجاد فضاهای نام استفاده کنیم.
Using Object Literal Notation: بیاین متغیرها و توابع رو درون یه Object literal بپیچیم که به عنوان فضای نام عمل میکنه. پس از اون میتونین با استفاده از نماد شیء به اونا دسترسی داشته باشیم
@@ -6413,7 +6862,7 @@
-
+
در ابتدا باید iFrame با استفاده از «document.getElementBy» یا «window.frames» قابل دسترسی باشه. پس از اون ویژگی «contentWindow» iFrame به targetFunction دسترسی میده
document.getElementById('targetFrame').contentWindow.targetFunction();
@@ -6423,7 +6872,7 @@
-
+
میتونین از روش «getTimezoneOffset» شی تاریخ استفاده کنین. این روش اختلاف منطقه زمانی رو بر حسب دقیقه از محلی فعلی (تنظیمات سیستم میزبان) به UTC برمیگردونه
var offset = new Date().getTimezoneOffset();
@@ -6432,7 +6881,7 @@
-
+
شما میتونین هر دو عنصر پیوند و اسکریپت رو در DOM ایجاد کنین و اونا رو به عنوان فرزند به تگ head اضافه کنین. بیاین یه تابع برای اضافه کردن منابع اسکریپت و سبک مثل زیر ایجاد کنیم.
function loadAssets(filename, filetype) {
@@ -6453,7 +6902,7 @@
-
+
اگه میخواین به هر عنصری در صفحه HTML دسترسی داشته باشیم، باید با دسترسی به شی سند شروع کنین. بعداً میتونین از یکی از روشهای زیر برای یافتن عنصر HTML استفاده کنین.
document.getElementById(id): یه عنصر رو با Id پیدا میکنه
@@ -6463,7 +6912,7 @@
-
+
jQuery یه کتابخانه جاواسکریپت متقابل مرورگر محبوبه که با به حداقل رسوندن اختلاف بین مرورگرها، پیمایش مدل شی سند (DOM)، مدیریت رویداد، انیمیشنها و تعاملات AJAX رو فراهم میکنه. با فلسفه اش «کمتر بنویس، بیشتر انجام بده» شهرت زیادی داره. برای مثال، میتونین پیام خوش آمدگویی رو در بارگذاری صفحه با استفاده از jQuery به صورت زیر نمایش بدین.
$(document).ready(function(){
@@ -6474,13 +6923,13 @@
-
+
V8 یه موتور جاواسکریپت با کارایی بالا منبع بازه که توسط مرورگر Google Chrome استفاده میشه و به زبان C++ نوشته شده است. همچنین در پروژه node.js استفاده میشه. ECMAScript و WebAssembly رو پیادهسازی میکنه و روی ویندوز 7 یا بالاتر، macOS 10.12+ و سیستمهای لینوکس که از پردازندههای x64، IA-32، ARM یا MIPS استفاده میکنن اجرا میشه.
نکته: میتونه به صورت مستقل اجرا شه یا میتونه در هر برنامه C++ تعبیه شه.
فهرست
-
+
جاواسکریپت یه زبان ساده تایپ شده یا یه زبان پویاعه چون متغیرها در جاواسکریپت مستقیماً با هیچ نوع مقدار خاصی مرتبط نیستن و هر متغیری رو میشه با مقادیری از همه نوع تخصیص/تخصیص مجدد داد.
let age = 50;
@@ -6490,7 +6939,7 @@
-
+
عملگر void
عبارت داده شده رو ارزیابی میکنه و بعد تعریف نشده (یعنی بدون بازگشت مقدار) رو برمیگردونه. بریم یه مثال در موردش ببینیم،
void (expression)
@@ -6504,7 +6953,7 @@
-
+
مکان نما رو میشه برای انتظار در جاواسکریپت با استفاده از ویژگی cursor
تنظیم کرد. بیاین این رفتار رو در بارگذاری صفحه با استفاده از تابع زیر انجام بدیم.
function myFunction() {
@@ -6518,7 +6967,7 @@
-
+
شما میتونین حلقههای بی نهایت با استفاده از حلقههای for و while بدون استفاده از هیچ عبارتی ایجاد کنین. ساختار یا نحو حلقه for از نظر ESLint و ابزارهای بهینه ساز کد، رویکرد بهتریه.
for (;;) {}
@@ -6529,7 +6978,7 @@
-
+
دستور با جاواسکریپت در نظر گرفته شده بود که مختصری برای نوشتن دسترسیهای تکرارشونده به اشیا ارائه بده. بنابراین میتونه با کاهش نیاز به تکرار یه مرجع طولانی بدون جریمه عملکرد، به کاهش اندازه فایل کمک کنه. بیاین مثالی بزنیم که تو اون برای جلوگیری از افزونگی موقع چندین بار دسترسی به یه شی استفاده میشه.
a.b.c.greeting = 'welcome';
@@ -6546,7 +6995,7 @@
-
+
for (var i = 0; i < 4; i++) {
setTimeout(() => console.log(i));
@@ -6561,7 +7010,7 @@
-
+
در زیر لیستی از بعضی از ویژگیهای جدید ES6 اومده.
پشتیبانی از ثابتها یا متغیرهای تغییرناپذیر
@@ -6580,12 +7029,12 @@
-
+
ES6 ششمین نسخه از زبان جاواسکریپتـه و در ژوئن 2015 منتشر شد. در ابتدا با نام ECMAScript 6 (ES6) شناخته شد و بعداً به ECMAScript 2015 تغییر نام داد. تقریباً همه مرورگرهای مدرن از ES6 پشتیبانی میکنن اما برای مرورگرهای قدیمی ترانسپایلرهای زیادی وجود داره.، مانند Babel.js و غیره
فهرست
-
+
نه، شما نمیتونین متغیرهای let و const رو مجدداً اعلام کنین. اگه این کار رو انجام بدین، خطای زیر رو نشون میده
Uncaught SyntaxError: Identifier 'someVariable' has already been declared
@@ -6616,7 +7065,7 @@
-
+
خیر، متغیر const مقدار رو تغییرناپذیر نمیکنه. اما تخصیصهای بعدی رو مجاز نمیداند (یعنی میتونین با تخصیص اعلام کنین اما بعداً نمیتونین مقدار دیگری رو اختصاص بدین)
const userList = [];
@@ -6626,7 +7075,7 @@
-
+
در E5، برای مدیریت مقادیر پیشفرض پارامترهای تابع، باید به عملگرهای OR منطقی وابسته باشیم. در حالی که در ES6، ویژگی پارامترهای تابع پیشفرض اجازه میده تا پارامترها با مقادیر پیشفرض مقداردهی اولیه بشن، اگه مقداری یا تعریفنشده ارسال نشه. بیاین رفتار رو با یه مثال مقایسه کنیم،
@@ -6650,7 +7099,7 @@
-
+
حروف الفبای الگو یا رشتههای الگو، حروف الفبای رشتهای هستن که امکان عبارات تعبیهشده رو میدن. اینا به جای گیومههای دوتایی یا تکی با کاراکتر بک تیک (`) محصور میشن
در E6، این ویژگی استفاده از عبارات پویا رو به شرح زیر امکان پذیر میکنه.
@@ -6664,7 +7113,7 @@
-
+
در ES5، برای بدست آوردن رشتههای چند خطی، باید از کاراکترهای فرار از خط جدید ('\n') و نمادهای الحاقی (+) استفاده کنین.
console.log('This is string sentence 1\n' +
@@ -6678,7 +7127,7 @@
-
+
الگوی تودرتو یه ویژگیه که در نحو تحت اللفظی الگو پشتیبانی میشه تا امکان بکتیکهای درونی تو یه مکاننمای ${ } رو در قالب فراهم کنه. برای مثال، الگوی تودرتو زیر برای نمایش نمادها بر اساس مجوزهای کاربر استفاده میشه، در حالی که الگوی بیرونی نوع پلت فرم رو بررسی میکنه.
const iconStyles = `icon ${ isMobilePlatform() ? '' :
@@ -6693,7 +7142,7 @@
-
+
الگوهای برچسبگذاری شده شکل پیشرفتهای از قالبها هستن که تو اون برچسبها به شما اجازه میدن تا کلمات قالب رو با یه تابع تجزیه کنین. تابع تگ اولین پارامتر رو به عنوان آرایه ای از رشتهها و پارامترهای باقی مانده رو به عنوان عبارات می پذیرد. این تابع همچنین میتونه رشتههای دستکاری شده رو بر اساس پارامترها برگرداند. بیاین نحوه استفاده از رفتار الگوی برچسب گذاری شده مجموعه مهارتهای حرفه ای فناوری اطلاعات تو یه سازمان رو ببینیم.
var user1 = 'John';
@@ -6730,7 +7179,7 @@
-
+
ES6 با استفاده از روش «String.raw» ویژگی رشتههای خام رو ارائه میکنه که برای دریافت شکل رشته خام رشتههای الگو استفاده میشه. این ویژگی به شما این امکان رو میده تا به رشتههای خام همونطور که وارد شدهاند، بدون پردازش دنبالههای فرار دسترسی داشته باشیم. بریم یه مثال در موردش ببینیم،
var calculationString = String.raw `The sum of numbers is \n${1+2+3+4}!`;
@@ -6752,7 +7201,7 @@
-
+
تخصیص destructuring
یه عبارت جاواسکریپتـه که امکان باز کردن مقادیر آرایهها یا خصوصیات از اشیاء به متغیرهای مجزا رو فراهم میکنه.
بیاین مقادیر ماه رو از یه آرایه با استفاده از تخصیص ساختارشکن به دست آوریم
@@ -6772,7 +7221,7 @@
-
+
زمانی که مقدار باز شده از آرایه یا شیء در طول تخصیص ساختارشکن تعریف نشده باشه، میشه به یه متغیر یه مقدار پیش فرض اختصاص داد. این کمک میکنه تا از تنظیم مقادیر پیش فرض جداگانه برای هر انتساب جلوگیری کنین. بیاین برای هر دو آرایه و موارد استفاده از شی مثالی بزنیم،
Arrays destructuring:
@@ -6794,7 +7243,7 @@
-
+
اگه از destructuring-assignment استفاده نمیکنین تعویض دو مقدار به یه متغیر موقت نیاز داره. در حالی که با استفاده از یه ویژگی ساختارشکن، دو مقدار متغیر رو میشه تو یه عبارت ساختار شکن جایگزین کرد. بیاین دو متغیر عددی رو در انتساب ساختارزدایی آرایه با هم عوض کنیم،
var x = 10, y = 20;
@@ -6806,7 +7255,7 @@
-
+
Enhanced-object-literal ایجاد سریع اجسام با ویژگیهای درون براکت رو آسان میکنه. برای مثال، نحو کوتاهتری رو برای تعریف ویژگی شی مشترک به شرح زیر ارائه میکنه.
@@ -6821,7 +7270,7 @@
-
+
واردات پویا با استفاده از نحو تابع «import» به ما اجازه میده تا ماژولها رو در صورت تقاضا با استفاده از دستورات یا دستور async/await بارگذاری کنیم. در حال حاضر این ویژگی در [پیشنهاد مرحله4] (https://github.com/tc39/proposal-dynamic-import) هستش. مزیت اصلی واردات پویا کاهش اندازه بستههای ما، پاسخ حجم/بار بار درخواستهای ما و بهبود کلی در تجربه کاربر است.
import('./Module').then(Module => Module.method());
@@ -6829,7 +7278,7 @@
-
+
در زیر بعضی از موارد استفاده از واردات پویا نسبت به واردات استاتیک آورده شده است.
یه ماژول رو به صورت درخواستی یا مشروط وارد کنین. برای مثال، اگه میخواین یه polyfill رو در مرورگر قدیمی بارگذاری کنین
@@ -6852,7 +7301,7 @@
-
+
آرایههای تایپ شده آبجکتهایی آرایه مانند از ECMAScript 6 API برای مدیریت دادههای باینری هستن. جاواسکریپت 8 نوع آرایه تایپ شده رو ارائه میده،
Int8Array: آرایه ای از اعداد صحیح امضا شده 8 بیتی
@@ -6874,7 +7323,7 @@
-
+
ماژول لودر ویژگیهای زیر رو ارائه میده
Dynamic loading
@@ -6886,7 +7335,7 @@
-
+
Collation برای مرتب سازی مجموعه ای از رشتهها و جستجو در مجموعه ای از رشتهها استفاده میشه. این پارامتر توسط محلی و از Unicode آگاه است. بیاین ویژگیهای مقایسه و مرتب سازی رو در نظر بگیریم،
Comparison:
@@ -6911,7 +7360,7 @@
-
+
دستور for...of یه حلقه تکرار بر روی اشیاء یا عناصر قابل تکرار مثل رشته داخلی، آرایه، اشیاء آرایه مانند (مثل آرگومانها یا NodeList)، TypedArray، Map، Set و تکرارهای تعریف شده توسط کاربر ایجاد میکنه.
let arrayIterable = [10, 20, 30, 40, 50];
@@ -6924,7 +7373,7 @@
-
+
[...'John Resig']
@@ -6933,12 +7382,12 @@
-
+
بله، تا زمانی که برنامهنویس/توسعهدهنده مراقب منشأ و منبع پیام دریافتی باشه، postMessages رو میشه بسیار امن در نظر گرفت. اما اگه بخواین پیامی رو بدون تأیید منبع آن ارسال یا دریافت کنین حملات اسکریپت بین سایتی ایجاد میشه.
فهرست
-
+
آرگومان دوم متد postMessage مشخص میکنه که کدوم مبدا مجاز به دریافت پیامه. اگه از علامت "*" به عنوان آرگومان استفاده کنین هر منبعی مجاز به دریافت پیامه. در این حالت، هیچ راهی برای پنجره فرستنده وجود نداره که بفهمه پنجره هدف در موقع ارسال پیام در مبدأ هدف قرار داره یا نه. اگه پنجره هدف به مبدأ دیگری هدایت شه، مبدا دیگر دادهها رو دریافت میکنه. از این رو، این ممکنه منجر به آسیب پذیریهای XSS شه.
targetWindow.postMessage(message, '*');
@@ -6946,7 +7395,7 @@
-
+
از اونجایی که شنونده به هر پیامی گوش میده، مهاجم میتونه برنامه رو با ارسال پیامی از مبدأ مهاجم فریب بده که این تصور رو ایجاد میکنه که گیرنده پیام رو از پنجره فرستنده واقعی دریافت کرده. شما میتونین با اعتبارسنجی مبدا پیام در انتهای گیرنده با استفاده از ویژگی "message.origin" از این مشکل جلوگیری کنین. برای مثال، اجازه بدین مبدا فرستنده http://www.some-sender.com در سمت گیرنده [www.some-receiver.com] (www.some) رو بررسی کنیم -receiver.com)،
@@ -6959,33 +7408,33 @@
-
+
شما نمیتونین به طور کامل (یا 100٪) از postMessages استفاده نکنین. حتی اگه برنامه شما با توجه به خطرات از postMessage استفاده نمیکنه، بسیاری از اسکریپتهای شخص ثالث از postMessage برای برقراری ارتباط با سرویس شخص ثالث استفاده میکنن. بنابراین ممکنه برنامه شما بدون اطلاع شما از postMessage استفاده کنه.
فهرست
-
+
postMessages در مرورگر IE8 همگام هستن اما در IE9 و سایر مرورگرهای مدرن دیگر (یعنی IE9+، Firefox، Chrome، Safari) ناهمزمان هستن. به دلیل این رفتار ناهمزمان، زمانی که postMessage برگردونده میشه، از مکانیزم callback استفاده میکنیم.
فهرست
-
+
جاواسکریپت یه زبان چند پارادایمه که از برنامه نویسی امری/روشی، برنامه نویسی شی گرا و برنامه نویسی تابعی پشتیبانی میکنه. جاواسکریپت از برنامه نویسی شی گرا با وراثت اولیه پشتیبانی میکنه.
فهرست
-
+
جاواسکریپت داخلی: کد منبع درون تگ اسکریپته.
جاواسکریپت خارجی: کد منبع تو یه فایل خارجی (ذخیره شده با پسوند js.) ذخیره میشه و در تگ ارجاع میشه.
فهرست
-
+
بله، جاواسکریپت سریعتر از اسکریپت سمت سروره. از اونجایی که جاواسکریپت یه اسکریپت سمت کلاینته برای محاسبات یا محاسبات خودش به کمک سرور وب نیازی نداره. بنابراین جاواسکریپت همیشه سریعتر از هر اسکریپت سمت سرور مانند ASP، PHP و غیره اس.
فهرست
-
+
میتونین ویژگیchecked
رو در کادر انتخاب شده در DOM اعمال کنین. اگه مقدار "True" باشه به این معنیه که چک باکس علامت زده شده در غیر این صورت علامت اونو بردارین. برای مثال، عنصر چک باکس HTML زیر رو میشه با استفاده از جاواسکریپت به صورت زیر در دسترس قرار داد.
<input type="checkbox" name="checkboxname" value="Agree"> Agree the conditions<br>
@@ -6996,12 +7445,12 @@
-
+
عملگر دابل tilde(~~) به عنوان عملگر bitwise double NOT شناخته میشه. این عملگر قراره جایگزین سریع تری برای Math.floor
.
فهرست
-
+
برای تبدیل کاراکترهای رشته به اعداد اسکی میتونین از متد String.prototype.charCodeAt
استفاده کنین. برای مثال، بیاین کد ASCII رو برای حرف اول رشته «ABC» پیدا کنیم،
"ABC".charCodeAt(0)
@@ -7013,7 +7462,7 @@
-
+
یه شی ArrayBuffer برای نشون دادن یه بافر داده باینری خام عمومی با طول ثابت استفاده میشه. میتونین اونو به صورت زیر ایجاد کنین
let buffer = new ArrayBuffer(16);
@@ -7027,7 +7476,7 @@
-
+
console.log("Welcome to JS world"[0])
@@ -7036,7 +7485,7 @@
-
+
سازنده Error یه شی خطا ایجاد میکنه و نمونههایی از آبجکتهای خطا موقع رخ دادن خطاهای زمان اجرا پرتاب میشن شی Error همچنین میتونه به عنوان یه شی پایه برای استثناهای تعریف شده توسط کاربر استفاده شه. برای مثال
new Error([message[, fileName[, lineNumber]]])
@@ -7053,7 +7502,7 @@
-
+
شی EvalError
یه خطا در رابطه با تابع eval
جهانی رو نشون میده. حتی اگه این استثنا دیگر توسط جاواسکریپت پرتاب نمیشه، شی EvalError برای سازگاری باقی می ماند. برای مثال
new EvalError([message[, fileName[, lineNumber]]])
@@ -7069,7 +7518,7 @@
-
+
وقتی use strict
رو اعمال میکنین. syntax، بعضی از موارد زیر قبل از اجرای اسکریپت یه SyntaxError ایجاد میکنن
وقتی از دستور Octal
استفاده میکنین
@@ -7091,12 +7540,12 @@
-
+
خیر. همه objectها دارای نمونه اولیه هستن به جز object پایه که توسط کاربر ایجاد میشه یا آبجکتای که با استفاده از کلمه کلیدی new ایجاد میشه.
فهرست
-
+
پارامتر نام متغیر تعریف یه تابعه در حالی که یه آرگومان نشون دهنده مقدار داده شده به تابع موقع کال شدنشه. بیاین این رو با یه تابع ساده توضیح بدیم
function myFunction(parameter1, parameter2, parameter3) {
@@ -7109,7 +7558,7 @@
-
+
متد some
برای آزمایش اینکه آیا حداقل یه عنصر در آرایه از آزمون پیادهسازی شده توسط تابع ارائه شده عبور میکنه یا نه استفاده میشه. متد یه مقدار بولین برمیگردونه. بیاین مثالی بزنیم تا هر عنصر عجیب و غریب رو آزمایش کنیم،
var array = [1, 2, 3, 4, 5, 6 ,7, 8, 9, 10];
@@ -7121,7 +7570,7 @@
-
+
متد concat
برای پیوستن دو یا چند آرایه با برگردوندن یه آرایه جدید حاوی تمام عناصر استفاده میشه.مثال:
array1.concat(array2, array3, ..., arrayX)
@@ -7136,7 +7585,7 @@
-
+
کپی کم عمق:
کپی کم عمق یه کپی بیتی از یه شی است. یه شی جدید ایجاد میشه که یه کپی دقیق از مقادیر موجود در شی اصلی داره. اگه هر یه از فیلدهای شی ارجاع به آبجکتهای دیگه باشه، فقط آدرسهای مرجع کپی می شن یعنی فقط آدرس حافظه کپی میشه.
مثال
@@ -7174,7 +7623,7 @@
-
+
متدrepeat
برای ساخت و برگردوندن یه رشته جدید استفاده میشه که حاوی تعداد مشخصی از کپیهای رشتهای هس که روی آن فراخوانی شده و به هم پیوسته شدن. به یاد داشته باشیم که این روش به مشخصات ECMAScript 2015 اضافه شده است.
بیاین یه مثال از رشته Hello رو برای تکرار آن 4 بار در نظر بگیریم.
@@ -7182,7 +7631,7 @@
+
متد «matchAll» میتواند برای برگردوندن یه تکرارکننده از تمام نتایجی که یه رشته با یه عبارت منظم مطابقت دارن، استفاده شه. برای مثال، مثال زیر آرایه ای از نتایج رشته منطبق رو در برابر یه عبارت منظم برمیگردونه.
let regexp = /Hello(\d?))/g;
@@ -7197,7 +7646,7 @@
-
+
روش trim نمونه اولیه رشته برای برش دادن دو طرف یه رشته استفاده میشه. اما اگه میخواهید بهخصوص در ابتدا یا انتهای رشته رو برش بدین، میتونین از روشهای «trimStart/trimLeft» و «trimEnd/trimRight» استفاده کنین. بیاین نمونه ای از این روشها رو در پیام تبریک ببینیم،
var greeting = ' Hello, Goodmorning! ';
@@ -7212,7 +7661,7 @@
-
+
بیاین دستور کنسول رو با عملگر unary همونطور که در زیر نشون داده شده است، بگیریم.
console.log(+ 'Hello');
@@ -7221,11 +7670,11 @@
-
+
فهرست
-
+
thunk فقط تابعیه که ارزیابی مقدار رو به تاخیر میندازه. هیچ آرگومانی نمیگیره، اما هر زمان که thunk رو فراخوانی میکنین مقدار رو میده. برای مثال، از اون استفاده میشه که الان اجرا نشه، اما زمانی در آینده اجرا میشه. بیاین یه مثال همزمان بگیریم،
const add = (x,y) => x + y;
@@ -7237,7 +7686,7 @@
-
+
Thunkهای ناهمزمان برای ایجاد درخواستهای شبکه مفید هستن. بیاین نمونه ای از درخواستهای شبکه رو ببینیم،
function fetchData(fn){
@@ -7258,7 +7707,7 @@
-
+
Code snippet:
const circle = {
@@ -7277,7 +7726,7 @@
-
+
ساده ترین روش استفاده از عبارات منظم برای شناسایی و جایگزینی خطوط جدید در رشته است. در این حالت از تابع تعویض به همراه رشته برای جایگزینی استفاده میکنیم که در مورد ما یه رشته خالی است.
function remove_linebreaks( var message ) {
@@ -7288,12 +7737,12 @@
-
+
رنگآمیزی مجدد زمانی اتفاق میافتد که تغییراتی ایجاد میشه که روی دید یه عنصر تأثیر میگذارد، اما روی طرح آن تأثیر نمیگذارد. نمونههایی از این موارد شامل طرح کلی، نمایان بودن یا رنگ پس زمینه است. یه reflow شامل تغییراتیه که بر طرح بندی بخشی از صفحه (یا کل صفحه) تأثیر میزاره. تغییر اندازه پنجره مرورگر، تغییر فونت، تغییر محتوا (مانند تایپ متن توسط کاربر)، استفاده از روشهای جاواسکریپت شامل سبکهای محاسبهشده، افزودن یا حذف عناصر از DOM، و تغییر کلاسهای یه عنصر چند مورد از مواردی هستن که میتونن جریان مجدد رو آغاز کنن. جریان مجدد یه عنصر باعث جریان مجدد بعدی همه عناصر فرزند و اجداد و همچنین هر عنصری که به دنبال آن در DOM است میشه.
فهرست
-
+
نفی یه آرایه با کاراکتر «!»، آرایه رو به یه بولین وادار میکنه. از اونجایی که آرایهها صدق در نظر گرفته می شن، پس نفی اون false رو برمیگردونه.
console.log(![]);
@@ -7301,7 +7750,7 @@
-
+
اگه دو آرایه رو با هم اضافه کنین هر دو اونا رو به رشته تبدیل میکنه و اونا رو به هم متصل میکنه. برای بریم یه مثال در موردش ببینیم.
console.log(['a'] + ['b']);
@@ -7311,7 +7760,7 @@
-
+
اگه عملگر additive(+) رو روی مقادیر نادرست (null، undefined، NaN، false، "") قرار بدین، مقدار falsy به مقدار عددی صفر تبدیل میشه. بیاین اونا رو در کنسول مرورگر به صورت زیر نمایش بدیم،
console.log(+null);
@@ -7323,7 +7772,7 @@
-
+
رشته self رو میشه با ترکیب کاراکترهای []()!+
تشکیل داد. برای رسیدن به این الگو باید قراردادهای زیر رو به خاطر بسپارید.
از اونجایی که آرایهها مقادیر true هستن، با نفی آرایهها false تولید میشه: ![] === false
@@ -7352,7 +7801,7 @@
-
+
شما میتونین با وارد کردن Boolean به عنوان پارامتر، روش فیلتر رو روی آرایه اعمال کنین. به این ترتیب تمام مقادیر نادرست (0، تعریف نشده، null، false و "") از آرایه حذف میشه.
const myArray = [false, null, 1,5, undefined]
@@ -7361,7 +7810,7 @@
-
+
شما میتونین مقادیر منحصر به فرد یه آرایه رو با ترکیب دستور "Set" و rest expression/spread(...) دریافت کنین.
console.log([...new Set([1, 2, 4, 4, 3])]);
@@ -7369,7 +7818,7 @@
-
+
گاهی اوقات شما دوست دارید یه متغیر تخریب شده با نامی متفاوت از نام ویژگی داشته باشیم. در این صورت، از یه «: newName» برای تعیین نام برای متغیر استفاده خواهید کرد. این فرآیند نام مستعار تخریب ساختاری نامیده میشه.
const obj = { x: 1 };
@@ -7379,7 +7828,7 @@
-
+
میتونین مقادیر آرایهها رو بدون استفاده از روش «نقشه» تنها با استفاده از روش «از» آرایه ترسیم کنین. بیاین نام شهرها رو از آرایه کشورها ترسیم کنیم،
const countries = [
@@ -7397,7 +7846,7 @@
-
+
با صفر کردن طول آرایه میتونین به سرعت یه آرایه رو خالی کنین.
let cities = ['Singapore', 'Delhi', 'London'];
@@ -7406,7 +7855,7 @@
-
+
میتونین با استفاده از روش «toFixed» از جاواسکریپت، اعداد رو به تعداد معینی از اعشار گرد کنین.
let pie = 3.141592653;
@@ -7415,7 +7864,7 @@
-
+
شما میتونین با استفاده از عملگر spread(...) یه آرایه رو به یه شی با همون داده تبدیل کنین.
var fruits = ["banana", "apple", "orange", "watermelon"];
@@ -7425,7 +7874,7 @@
-
+
میتونین با استفاده از روش «fill» یه آرایه با مقداری داده یا یه آرایه با همون مقادیر ایجاد کنین.
var newArray = new Array(5).fill("0");
@@ -7434,7 +7883,7 @@
-
+
%o - یه شی رو میگیرد،
%s - یه رشته میگیره،
@@ -7448,7 +7897,7 @@
-
+
بله، میتونین سبکهای CSS رو برای پیامهای کنسول مشابه متن html در صفحه وب اعمال کنین.
console.log('%c The text has blue color, with large font and red background', 'color: blue; font-size: x-large; background: red');
@@ -7459,7 +7908,7 @@
-
+
«console.dir» برای نمایش یه لیست تعاملی از ویژگیهای شی جاواسکریپت مشخص شده به عنوان JSON استفاده میشه.
const user = { "name":"John", "id": 1, "city": "Delhi"};
@@ -7470,7 +7919,7 @@
-
+
بله، دریافت و اشکال زدایی عناصر HTML در کنسول، درست مانند بازرسی عناصر، امکان پذیر است.
const element = document.getElementsByTagName("body")[0];
@@ -7481,7 +7930,7 @@
-
+
«console.table» برای نمایش دادهها در کنسول در قالب جدولی برای تجسم آرایهها یا اشیاء پیچیده استفاده میشه.
const users = [{ "name":"John", "id": 1, "city": "Delhi"}, { "name":"Max", "id": 2, "city": "London"}, { "name":"Rod", "id": 3, "city": "Paris"} ];
@@ -7493,7 +7942,7 @@
-
+
ترکیبی از روشهای IsNaN و isFinite برای تأیید عدد بودن یا نبودن آرگومان استفاده میشه.
function isNumber(n){
@@ -7503,7 +7952,7 @@
-
+
شما باید محتوا (با استفاده از روش .select) عنصر ورودی رو انتخاب کنین و دستور copy رو با execCommand اجرا کنین (یعنی execCommand('copy')). شما همچنین میتونین سایر دستورات سیستم مانند cut و paste رو اجرا کنین.
document.querySelector("#copy-button").onclick = function() {
@@ -7516,7 +7965,7 @@
-
+
میتونین از «Date.getTime» برای دریافت مهر زمانی فعلی استفاده کنین. یه میانبر جایگزین برای دریافت مقدار وجود داره.
console.log(+new Date());
@@ -7525,7 +7974,7 @@
-
+
مسطح کردن آرایههای دو بعدی با عملگر Spread بی اهمیت است.
const biDimensionalArr = [11, [22, 33], [44, 55], [66, 77], 88, 99];
@@ -7543,7 +7992,7 @@
-
+
میتونین از «indexOf» برای مقایسه ورودی با چندین مقدار به جای بررسی هر مقدار به عنوان یه شرط استفاده کنین.
@@ -7558,7 +8007,7 @@
-
+
روش «window.onbeforeunload» برای ضبط رویدادهای دکمه بازگشت مرورگر استفاده میشه. این برای هشدار دادن به کاربران در مورد از دست دادن دادههای فعلی مفید است.
window.onbeforeunload = function() {
@@ -7568,7 +8017,7 @@
-
+
کلیک راست روی صفحه رو میشه با برگردوندن false از ویژگی «oncontextmenu» در عنصر بدنه غیرفعال کرد.
<body oncontextmenu="return false;">
@@ -7576,7 +8025,7 @@
-
+
مقادیر اولیه مانند رشته، عدد و بولین خواص و روشی ندارن، اما زمانی که میخواهید اقداماتی رو روی اونا انجام بدین، به طور موقت به یه شی (آبجکت Wrapper) تبدیل یا مجبور میشن. برای مثال، اگه متد UpperCase رو روی یه مقدار رشته اولیه اعمال کنین خطایی ایجاد نمیکنه، اما حروف بزرگ رشته رو برمیگردونه.
let name = "john";
@@ -7587,12 +8036,12 @@
-
+
AJAX مخفف Asynchronous JavaScript و XML هس و گروهی از فناوریهای مرتبط (HTML، CSS، JavaScript، XMLHttpRequest API و غیره) که برای نمایش دادهها به صورت ناهمزمان استفاده میشه. یعنی ما میتونیم دادهها رو به سرور ارسال کنیم و بدون بارگیری مجدد صفحه وب، دادهها رو از سرور دریافت کنیم.
فهرست
-
+
callbackها
پرامیسها
@@ -7602,7 +8051,7 @@
-
+
تا چند روز پیش، یکی از کاستیهای وعدههای بومی راه مستقیمی برای لغو درخواست fetch نیست. اما «AbortController» جدید از مشخصات js به شما امکان میده از سیگنالی برای لغو یه یا چند تماس fetch استفاده کنین.
جریان اصلی لغو یه درخواست fetch اینجوری میشه.
@@ -7637,7 +8086,7 @@
-
+
API گفتار وب برای فعال کردن مرورگرهای مدرن برای شناسایی و ترکیب گفتار (یعنی دادههای صوتی در برنامههای وب) استفاده میشه. این API توسط انجمن W3C در سال 2012 معرفی شد و دارای دو بخش اصلیه.
- تشخیص گفتار (تشخیص گفتار ناهمزمان یا گفتار به متن): این امکان رو فراهم میکنه که زمینه صدا رو از ورودی صوتی تشخیص داده و به اون پاسخ بدین. این توسط رابط "SpeechRecognition" قابل دسترسیه.
@@ -7667,7 +8116,7 @@
-
-
+
هم مرورگر و هم محیطهای جاواسکریپت NodeJS با حداقل تاخیری که بیشتر از 0 میلی ثانیه اس throttles رو انجام می دهند. این بدان معناست که حتی اگه تنظیم یه تاخیر 0ms به طور آنی اتفاق نیوفته.
مرورگرها: حداقل 4 میلی ثانیه تاخیر دارن. این throttles زمانی اتفاق میوفته که تماسهای متوالی به دلیل تودرتوی Callback (عمق معین) یا پس از تعداد معینی فواصل متوالی آغاز شه.
توجه: مرورگرهای قدیمی حداقل 10 میلی ثانیه تاخیر دارن.
@@ -7701,12 +8150,12 @@
-
-
+
به دلیل حداقل تاخیر بیش از 0 میلی ثانیه، نمیتونین از setTimeout(fn, 0) برای اجرای فوری کد استفاده کنین. اما برای دستیابی به این رفتار میتونین از window.postMessage() استفاده کنین.
فهرست
-
-
+
وظیفه هر کد/برنامه جاواسکریپتیه که قراره توسط مکانیسمهای استانداره اجرا شه، مثل شروع اولیه اجرای یه برنامه، اجرای یه رویداد، callback یا یه بازه زمانی یا وقفه در حال اجرا. همه این وظایف تو یه صف کار برنامه ریزی میشن
در زیر لیستی از موارد استفاده برای افزودن وظایف به صف کار اوردیم.
@@ -7717,24 +8166,24 @@
-
-
+
Microtask کد جاواسکریپتـه که باید بلافاصله پس از تکمیل task/Microtask در حال اجرا اجرا شه. اونا در طبیعت به نوعی مسدود کننده هستن. یعنی تا زمانی که صف microtask خالی نشه، رشته اصلی مسدود میشه.
منابع اصلی Microtaskها عبارتند از Promise.resolve، Promise.reject، MutationObservers، IntersectionObservers و غیره.
توجه: همه این Microtaskها در همون چرخش event-loop پردازش میشن
فهرست
-
-
+
MainAppLoop - این حلقه اصلی یه برنامه اس. به طور معمول این در پایین صفحه اصلیه. خروج معمولاً نشان دهنده تمایل به بسته شدن برنامه اس. در هر برنامه فقط یکی از این موارد میتونه وجود داشته باشد. ThreadLoop - این حلقه ایه که معمولاً در پایین رویه اصلی یه UI Thread یافت میشه.
فهرست
-
-
+
این به کد شما اجازه میده بدون تداخل با کد دیگه با اولویت بالاتری که در حالت تعلیقه اجرا بشه اما قبل از اینکه مرورگر کنترل روی زمینه اجرا رو دوباره به دست آورد، بسته به کاری که باید تکمیل کنین.
فهرست
-
-
+
مشخصه که همهی کتابخونهها یا چارچوبهای جاواسکریپت دارای فایلهای اعلان TypeScript نیستن. اما اگه هنوزم میخواین از کتابخانهها یا فریمورکها در فایلهای TypeScript بدون دریافت خطاهای کامپایل استفاده کنین تنها راهحل کلمه کلیدی `declare به همراه یه اعلان متغیره. برای مثال، بیاین تصور کنیم که شما یه کتابخونه به نام "customLibrary" دارید که اعلان TypeScript نداره و فضای نامی به نام "customLibrary" در فضای نام گلوبال داره. میتونین از این کتابخانه در کد تایپ اسکریپت به صورت زیر استفاده کنین.
declare var customLibrary;
@@ -7746,7 +8195,7 @@
-
-
+
@@ -7780,34 +8229,34 @@ -
-
+
Heap (یا پشته حافظه) محلیه که تو اون آبجکتها در موقع تعریف متغیرها ذخیره میشن یعنی این محلیه که تمام تخصیص حافظه و عدم تخصیص تو اون انجام میشه. هر دو heap و call-stack دو ظرف زمان اجرا JS هستن.
هر زمان که زمان اجرا با متغیرها و اعلانهای تابع در کد مواجه میشه، اونا رو در Heap ذخیره میکنه.
![Screenshot](data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAa8AAAE3CAYAAAAdXs4vAAAFn3RFWHRteGZpbGUAJTNDbXhmaWxlJTIwaG9zdCUzRCUyMnd3dy5kaWFncmFtZWRpdG9yLmNvbSUyMiUyMG1vZGlmaWVkJTNEJTIyMjAyMC0wNS0yM1QwNiUzQTI4JTNBMjYuNDc1WiUyMiUyMGFnZW50JTNEJTIyTW96aWxsYSUyRjUuMCUyMChNYWNpbnRvc2glM0IlMjBJbnRlbCUyME1hYyUyME9TJTIwWCUyMDEwXzE1XzQpJTIwQXBwbGVXZWJLaXQlMkY1MzcuMzYlMjAoS0hUTUwlMkMlMjBsaWtlJTIwR2Vja28pJTIwQ2hyb21lJTJGODEuMC40MDQ0LjEzOCUyMFNhZmFyaSUyRjUzNy4zNiUyMiUyMGV0YWclM0QlMjI4Z0REZkRWa0dRVXZNT2wyR1dJdCUyMiUyMHZlcnNpb24lM0QlMjIxMi4xLjMlMjIlMjBwYWdlcyUzRCUyMjElMjIlM0UlM0NkaWFncmFtJTIwaWQlM0QlMjJnUnJIMEhvYktaZlQtMXlmaGJBZCUyMiUyMG5hbWUlM0QlMjJQYWdlLTElMjIlM0U1Wm5SYnBzd0ZJYWZCbW03MkdSamFKTExKU3VySmsyVFNxdjExZ01IdkJxTWpOTWtlJTJGcVpZQ0Jnb21aYktFbkxUZXpmeHBqdiUyRkRZSFlxRkZzdmtpY0JaJTJGNHlGaGxnM0NqWVUlMkJXN1lONGNSV1A0V3lMUlVYd0ZLSUJBMTFwMGJ3NlclMkJpUmFEVkZRMUozdW9vT1dlU1ptMHg0R2xLQXRuU3NCQjgzZTYyNUt4OTFReEh4QkQ4QUROVCUyRlVGREdaZnExQVdOZmtOb0ZGZFhoa0MzSkxqcXJJVTh4aUZmNzBubzJrSUx3YmtzUzhsbVFWZ0JyJTJCSlNudWNkYUswbkprZ3Fqem5CJTJCMzRmaXJ2a0Z3WDJ3MU4lMkI3d1ZNM243UW96eGh0dEkzckNjcnR4VUJ3VmRwU0lwQmdJWG02NWhLNG1jNEtGclhLdVpLaTJYQ1ZBMnFvaDZPQ0VrMkIlMkJjSjY3dFh0aUU4SVZKc1ZSZDlBcHBwWU5zYWFWbGZOJTJGeGhCVFhlWTI5WDZMR09lVlNQM1dCUkJVM21MeWpac3hOaldsTEdGcHh4c1RzWExYZkhhZkRCcXphJTJCaVVuUFFUMzBFQnlNM3RTZ2QwTVVrUzVCZGMlMkJ5alNtWGdqJTJCU0NsVEtVOUpocHlYTWFKU3FhcUFZRWFYUEM0SlVMZUpQdWlHaFlWaGNwamN1N2NndGVTcDlQU2w0Z25qWXFHTm51eWNndlc0ZUtoeVRGekl6d3o4Sm0lMkJQZ01kb050OWRsNGdIZ2VhZnhlJTJGMmtPSiUyRnRBcUUzYlhqM3pBeVBuTXZadlozemM3TkpiNEVaODZWYTJHJTJGRTBjN1pPZnJxZVVjJTJGNDJHY1oyVzZ2S1NiQWx6WDFBUUZVd0NNQUtxV09aaTVvTUk4MERLbzBWWEVweWJ4JTJGbFV3RlBFakhwcVhUYnlUTnRiN3lXakV6YXp4bFJIdnZ1ZU03ZkZxQzN1OXhEdXB1SG81JTJCdWlPelB5SUYlMkZETFpqN3BNRWZqTTdjTjVsOTlWYjlkcFpJbVJKV3UwNGlxck9RU3NodGRMNyUyQmJRWGVZcmFsblo0THVpNGJNVEVJVFROTjM3NDBZTmF6Z3Z5ZnlBeUIxT2htTjdmYXRnJTJGcnI0VDVWWnpDcXJrRTFKJTJGSk9yUUclMkJraGRMRnJxenNibWE2WGttYUNyJTJGMTY2SFA2aDR1Mk5rUiUyRmU5cXA2SXU2bzJIOHAzYlh0JTJGTjZEclB3JTNEJTNEJTNDJTJGZGlhZ3JhbSUzRSUzQyUyRm14ZmlsZSUzRfjoaLcAACAASURBVHhe7Z0JuJVT+//vlxTRQCqlQZoHYyj0RiIiQxOVKZkqihIqkSQNCKE0UHgTTYYmRSRN3oRCmiQaqMxFUvS7vuv9P/u/nc45+95nr2fv9Zz1Xdf1Xq/Ovp973c/nXmt99xr28/xLRPYJCwmQAAmQAAlEiMC/IF779lG/IpQzhkoCJEACXhP417/+JRQvr5sAb54ESIAEokeA4hW9nDFiEiABEvCeAMXL+yZAACRAAiQQPQIUr+jljBGTAAmQgPcEKF7eNwECIAESIIHoEaB4RS9njJgESIAEvCdA8fK+CRAACZAACUSPAMUrejljxCRAAiTgPQGKl/dNgABIgARIIHoEKF7RyxkjJgESIAHvCVC8vG8CBEACJEAC0SNA8YpezhgxCZAACXhPgOLlfRMIB8DWrVvl66+/lgIFCkjlypWlWLFi4VRk2euff/4pf//9txx00EFy4IEHWvbujjvcI+4VA0ChQoXcCYyRkICSAMVLCYpm+xOYMWOGNGvWzHzw448/yuGHHy6bNm2Sjh07Cj6LL126dJEhQ4bIwQcfnC3KW265RYYPH77fZ6VKlZLzzz9fHnnkEcF/2yyrV6+Wr776SsqWLSvHH3+8cX3CCSfIihUr5KmnnhLElK7StWtXefLJJ3OsDmw6depkLZxp06bJJZdcYvzxjRLWsNJRGglQvNIIO79V9frrr8tll11mbuv777+XEiVKSJMmTeStt97K9la7desmQ4cOzfazG264QZ599tkcEZ188sny4YcfmpmCrdKzZ08ZPHiwXH311fLCCy9kVLwgTM8880yOtwZhu/XWW23dulC8rKGkowwRoHhlCHx+qDareP3xxx9Srlw5c2v33nuv9OjRQ3755RczO8NsBmXPnj1mKTFrCcQLIvXAAw+Yj3/66Sd57LHH5KOPPjL//uSTT8zMyFbJTryWLFkiv/76q9SoUUMqVKhgq6qEfgLxqlWrltx///372Z944olStWrVhH60Btu3b5ePP/7Y5OKcc87RXkY7EnCGAMXLmVREL5Cs4oVluDPPPNPcyKpVq6R69ermv9977z255557zH+/8sorcvTRR+coXhdddJFMnz499vncuXPl3HPPNf9GfRA3CB3K888/L6VLl5adO3dKq1atzN+efvpps8fWuXNn2bBhg1x55ZWmfvg56aST5IorrpDWrVubZUEI4/r1681y5IUXXihjx4411+FvEJNLL73U2GAmibiwh4cYKlasKN27d5fChQvLoEGDJLjvRx99VEqWLGnigDD07dtXPvjgAylevLicffbZMmDAADnyyCOzTXQgXlgiffPNN3NsDInuK7hw8uTJMmzYMBMb+F188cUybtw4szyK5VuINEQSy7ivvfaaLFq0SB588EGpVKmSYQy2P/zwg7Ro0UJuuukmKV++vHG9bds288Xk7bffNntm9erVM7kFWxYSSCcBilc6aeezurKKF2ZVZcqUMXeJGdg111wjZ511lpx66qlmPyy3Esy8sooXBtq7777bXIr9qd27d5tZUfDvY445xszQjjjiCPO3YHZWu3ZtWblyZbZVvvPOO/LGG2/I448/HvscM57PP/98vz2v66+/Xp577jlV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)
فهرست
-
-
+
Event Table یه ساختار دادهایـه که تمام رویدادهایی رو که به صورت ناهمزمان اجرا میشن، مانند پس از مدتی فاصله زمانی یا پس از رفع بعضی از درخواستهای API، ذخیره و ردیابی میکنه. یعنی هر زمان که یه تابع setTimeout رو فراخوانی کنین یا عملیات async رو فراخوانی کنین به جدول رویداد اضافه میشه.
توابع رو به تنهایی اجرا نمیکنه. هدف اصلی جدول رویدادها پیگیری رویدادها و ارسال اونا به صف رویداد همونطور که در نمودار زیر نشون داده شده.
![Screenshot](data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAdcAAAFLCAYAAACEIMb5AAAH33RFWHRteGZpbGUAJTNDbXhmaWxlJTIwaG9zdCUzRCUyMnd3dy5kaWFncmFtZWRpdG9yLmNvbSUyMiUyMG1vZGlmaWVkJTNEJTIyMjAyMC0wNS0yM1QwNCUzQTM0JTNBMTEuOTc1WiUyMiUyMGFnZW50JTNEJTIyTW96aWxsYSUyRjUuMCUyMChNYWNpbnRvc2glM0IlMjBJbnRlbCUyME1hYyUyME9TJTIwWCUyMDEwXzE1XzQpJTIwQXBwbGVXZWJLaXQlMkY1MzcuMzYlMjAoS0hUTUwlMkMlMjBsaWtlJTIwR2Vja28pJTIwQ2hyb21lJTJGODEuMC40MDQ0LjEzOCUyMFNhZmFyaSUyRjUzNy4zNiUyMiUyMGV0YWclM0QlMjJuQU8yZnZ2ZU82M084VnlaVzNDMCUyMiUyMHZlcnNpb24lM0QlMjIxMi4xLjMlMjIlMjBwYWdlcyUzRCUyMjElMjIlM0UlM0NkaWFncmFtJTIwaWQlM0QlMjJnUnJIMEhvYktaZlQtMXlmaGJBZCUyMiUyMG5hbWUlM0QlMjJQYWdlLTElMjIlM0U3VnBkYzlvNEZQMDF6T3clMkJkTWUyc0FPUEFjTDJZVFBiTFhTYWZSUzJzTlhJRnBYa0FQbjFLOW55cDB3aExManBKTHhnWGN0WDBqbjNYTWtYQm1BYTclMkY1a2NCUGQwd0NSZ1dNRnV3R1lEUnpIdG04YyUyQmFVcyUyQjl6aVduWnVDQmtPZEtmS3NNRFBTQnN0YlUxeGdIaWpvNkNVQ0x4cEduMmFKTWdYRFJ0a2pHNmIzZGFVTkVmZHdCQVpob1VQaVduOWlnTVI1ZGFSYTFYMmp3aUhVVEd5YmVrN01TdzZhd09QWUVDM05STzRHNEFwbzFUa1YlMkZGdWlvZ0NyOEFsZjI1JTJCNEc0NU1ZWVNjY29EODclMkIlMkZCR3daZjhPVzglMkZERXY4eDlJajUlMkYwRjZlSUVuMWd2Vmt4YjVBZ05FMENaQnlZZzNBWkJ0aGdSWWI2S3U3VzhtNXRFVWlKckpseTB2dERqR0JkZ2ZuYVplcmwyR0RhSXdFMjhzdXhRTUZZRHBpUnJxNXJlQXZ1MFExNkowQ2VhZ3BEMHZYRlNyeVFnUHpBcENjRHBBOElvZWRyS2xja3dvJTJCUWxsMnglMkZ1ZUtqNGxEc0FlV3hZQWRWTU4xY0s0Z3Y1am1DSDhRVHU1bGYxWXVQck5jZDJCV3FhY3N0VzYlMkZyM3UxQXZWOTkyVFJIY0pWOUs5bnBwY2FUNjd2SU5CSzklMkZpbU1BRU5mbmpBaktoVmVnb3ZpUEs4TFAwQTRzZXZtcmdCTEhsZnFONkNZYVVqOExkSEJNeUxlRUFBTXpuRWdTSlZNMmUwR3hZTGhoOVJMWE9rOW1OWlZrYTFwcDluWDB1RTEzQU94cGRUciUyRlJOVEtpYTBxdyUyRnloTkdha0djWEx0b2sxYUhVaU5iZ2Zna09Bd2tVMWZ1a1hTUGxGSVlwbnJidldOR0FlQkdxWlQ1YzA4Y0JJVmg5VjBXUDFOZW9ZbVBUZWQ3RnlKbkxGSkRpUkVxVlp0Sm1uaUMweVR0MGJSY1k3S1hiQVhrb3I1MUZpNnB5bEg3eEk2a09GR3ZiSmpuakhlTmRUV1VOY2hwMThObVljY2pzUVN4NGltYjF4QTVXbnpweWtJdkN2b3FJSzZXT3BaUWtPRHBvZjd2ejRLc2ZtTXZxZUl2elVaZ1JaQm5rblFzRmQlMkIzZzl6Sjhpb2c2ViUyQlplU1lwem1ERTVRRXQ2cTRVMkZkbzBmQ3dmWVBDcmMlMkZodDZvTVB5YkdjcjdzNTBHTm0lMkZ0NjYxUGlNbDlMNk9zaGowS2pFclJLY2c3bG55bER0RVpETlVZY0RzSUtHd01FU2p3VTNOdVhhem9FVDVSbkJVdHlzME9OQUxBZU5IbE5HVSUyQjBrJTJGVjYwdUdJN2ZweUczNnlXRXclMkZHUXhVcTc2JTJGTEF4azY4UzkwSms2bjZWa2xaVmpvV2VWSEZHJTJGbCUyQkZzMVpwWSUyRnlUODYzN0loMzdCSEtPJTJGYTV5NGclMkJWZHdDVGZzUlQlMkJpbXk1JTJGaE04WURoRVVkWFZvOW5jSFhMOTRrZk1acklOJTJCbUJpcEc4ckxoaVZVWFJnN0dLNm1URk4zbDk4elNUVkF2aEoyaVNJWTZmczVKbXJwZU5XbndHaHpzWnVET2x4bFJRbmhjcjdabzRDVnFMRG1rS3FpYkFwU1J4RWk1Vll5YXp4dVYxNkxSMGFMdW1FTWNkTVFtdUpjU2I0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)
فهرست
-
-
+
Microtask Queue صف جدیدیه که تو اون تمام وظایف آغاز شده توسط اشیاء promise قبل از صف برگشت پردازش میشن
صف microtasks قبل از کارهای رندر و نقاشی بعدی پردازش میشه. اما اگه این ریزکارها برای مدت طولانی اجرا شن، منجر به تخریب بصری میشن.
فهرست
-
-
+
shim کتابخونه ایه که یه API جدید رو با استفاده از ابزارهای آن محیط به یه محیط قدیمی تر میاره. لزوماً محدود به یه برنامه وب نیست. برای مثال، es5-shim.js برای شبیه سازی ویژگیهای ES5 در مرورگرهای قدیمی (عمدتا قبل از IE9) استفاده میشه.
در حالی که polyfill یه قطعه کد (یا افزونه) اس که فناوری رو ارائه میکنه که شما، توسعهدهنده، از مرورگر انتظار دارید که به صورت بومی ارائه کنه.
تو یه جمله ساده، A polyfill یه shim برای API مرورگره.
فهرست
-
-
+
در جاواسکریپت، انواع ابتدایی عبارتند از boolean، string، number، BigInt، null، Symbol و undefined. در حالی که انواع غیر ابتدایی شامل Objectها میشه. اما با تابع زیر میتونین به راحتی اونا رو شناسایی کنین
var myPrimitive = 30;
@@ -7823,7 +8272,7 @@
-
-
+
Babel یه ترانسپایلر جاواسکریپت برای تبدیل کد ECMAScript 2015+ به یه نسخه سازگار جاواسکریپت در مرورگرها یا محیطهای فعلی و قدیمی تر است. بعضی از ویژگیهای اصلی در زیر ذکر شده است،
تبدیل نحو
@@ -7833,22 +8282,22 @@
-
-
+
Node یه رشته است، اما بعضی از توابع موجود در کتابخانه استانداره Node.js (برای مثال، توابع ماژول fs) تک رشتهای نیستن. یعنی منطق اونا خارج از رشته Node.js اجرا میشه تا سرعت و عملکرد یه برنامه رو بهبود بخشد.
فهرست
-
-
+
بعضی از رایجترین موارد استفاده از موارد مشاهدهشده عبارتند از سوکتهای وب با اعلانهای فشار، تغییرات ورودی کاربر، فواصل تکراری و غیره.
فهرست
-
-
+
RxJS (افزونههای واکنشگرا برای جاواسکریپت) کتابخانهای برای پیادهسازی برنامهنویسی واکنشگرا با استفاده از مشاهدهپذیره که نوشتن کد ناهمزمان یا مبتنی بر تماس رو آسانتر میکنه. همچنین توابع کاربردی رو برای ایجاد و کار با مشاهده پذیرها فراهم میکنه.
فهرست
-
-
+
توابعی که با "سازنده تابع" ایجاد میشن، برای زمینههای ایجاد خود بسته ایجاد نمیکنن، اما همیشه در محدوده جهانی ایجاد میشن یعنی تابع فقط میتونه به متغیرهای محلی خود و متغیرهای دامنه جهانی دسترسی داشته باشه. در حالی که اعلانهای تابع میتونن به متغیرهای تابع بیرونی (بسته شدن) هم دسترسی داشته باشن.
بیاین این تفاوت رو با یه مثال ببینیم،
Function Constructor:
@@ -7874,7 +8323,7 @@
-
-
+
شرایط اتصال کوتاه برای روش فشرده نوشتن دستورات if ساده در نظر گرفته شده است. بیاین سناریو رو با استفاده از یه مثال نشون بدیم. اگه میخواین وارد پورتالی با شرایط احراز هویت شوید، عبارت زیر خواهد بود:
if (authenticate) {
@@ -7888,7 +8337,7 @@
-
-
+
ویژگی length یه آرایه برای تغییر اندازه یا خالی کردن سریع آرایه اس. بیاین ویژگی length رو روی آرایه اعداد اعمال کنیم تا تعداد عناصر رو از 5 به 2 تغییر بدیم.
var array = [1, 2, 3, 4, 5];
@@ -7908,7 +8357,7 @@
-
-
+
Observable اساساً تابعیه که میتونه جریانی از مقادیر رو به صورت همزمان یا ناهمزمان به یه ناظر در طول زمان برگردونه. مصرف کننده میتونه با فراخوانی متد «subscribe» مقدار رو دریافت کنه.
بیاین به یه مثال ساده از یه Observable نگاه کنیم
@@ -7927,7 +8376,7 @@
-
-
+
تفاوت اصلی بین اعلانهای تابع و اعلانهای کلاس "بالا بردن" هس. اعلانهای تابع بالا می رن اما اعلانهای کلاس نه.
Classes:
@@ -7945,7 +8394,7 @@
-
-
+
یه تابع async تابعیه که با کلمه کلیدی async
اعلام شده که با اجتناب از زنجیره پرامیس رفتار ناهمزمان و مبتنی بر قول به سبک تمیزتری نوشته شه. این توابع میتونن شامل صفر یا بیشتر عبارت await
باشن.
بیاین یه مثال تابع همگام زیر رو در نظر بگیریم،
@@ -7960,7 +8409,7 @@
-
-
+
در حین استفاده از کد ناهمزمان، promiseهای ES6 جاواسکریپت میتونن زندگی شما رو بدون داشتن هرم callbackها و مدیریت خطا در هر خط دوم بسیار آسانتر کنن. اما Promiseها مشکلاتی دارن و بزرگترین اونا بهطور پیشفرض بلعیدن خطاهاس.
فرض کنین انتظار دارید برای تمام موارد زیر یه خطا توی کنسول چاپ کنن.
@@ -8032,12 +8481,12 @@
-
-
+
Deno یه ران تایم(run-time) ساده، مدرن و ایمن برای جاواسکریپت و تایپ اسکریپته که از موتور جاواسکریپت V8 و زبان برنامه نویسی Rust استفاده میکنه و توسط رایان دال، خالق نود جی اس استارت توسعهاش زده شده.
فهرست
-
-
+
به طور پیش فرض، اشیاء ساده قابل تکرار نیستن. اما میتونین با تعریف ویژگی «Symbol.iterator» روی اون شی رو قابل تکرار کنین.
بیاین این رو با یه مثال نشون بدیم،
@@ -8087,7 +8536,7 @@
-
-
+
ابتدا، قبل از صحبت در مورد "دوم خوانی مناسب" باید در مورد دم دم بدونیم. فراخوانی دنباله یه فراخوانی فرعی یا تابعیه که به عنوان آخرین عمل یه تابع فراخوانی انجام میشه. در حالی کهفراخوانی دنباله مناسب (PTC) تکنیکیه که تو اون برنامه یا کد فریمهای پشته ای اضافی برای بازگشت ایجاد نمیکنه، زمانی که فراخوانی تابع یه فراخوانی دنباله اس.
برای مثال، بازگشت کلاسیک یا سر تابع فاکتوریل زیر به پشته برای هر مرحله بستگی داره. هر مرحله باید تا "n * فاکتوریل(n - 1)" پردازش شه
@@ -8113,7 +8562,7 @@
-
-
+
اگه نمیدونین یه مقدار یه promise هس یا نه، مقدار رو به صورت Promise.resolve(value)
بپیچید که یه قول رو برمیگردونه.
function isPromise(object){
@@ -8148,7 +8597,7 @@
-
-
+
میتونین از ویژگی شبه «new.target» برای تشخیص اینکه آیا یه تابع به عنوان سازنده (با استفاده از عملگر جدید) فراخوانی شده یا به عنوان یه فراخوانی تابع معمولی استفاده کنین.
اگه سازنده یا تابعی با استفاده از عملگر جدید فراخوانی شه، new.target یه مرجع به سازنده یا تابع برمیگردونه.
@@ -8170,7 +8619,7 @@
-
-
+
آبجکت آرگومانها آرایه ماننده اما آرایه نیست. در حالی که بقیه پارامترها نمونههای آرایه هستن.
آبجکت آرگومانها از روشهایی مانند sort، map، forEach یا pop پشتیبانی نمیکنه. در حالی که این روشها رو میشه در پارامترهای استراحت استفاده کرد.
@@ -8179,12 +8628,12 @@
-
-
+
پارامتر Rest تمام عناصر باقی مانده رو در یه آرایه جمع آوری میکنه. در حالی که عملگر Spread به تکرارپذیرها (آرایهها / اشیاء / رشتهها) اجازه میده تا به آرگومانها / عناصر منفرد گسترش پیدا کنن. یعنی پارامتر Rest مخالف عملگر spread هس.
فهرست
-
-
+
Generator function declaration:
@@ -8251,7 +8700,7 @@
-
-
+
آرایهها و TypedArrays
رشتهها: روی هر کاراکتر یا نقاط کد یونیکد تکرار کنین
@@ -8263,7 +8712,7 @@
-
-
+
هم برای...in و هم برای...از دستورات روی ساختارهای داده js تکرار میشن. تنها تفاوت در مورد چیزیه که اونا تکرار میکننده:
for..in روی تمام کلیدهای خصوصیت شمارش پذیر یه شی تکرار میشه
@@ -8289,7 +8738,7 @@
-
-
+
خصوصیات Instance باید در داخل متدهای کلاس تعریف بشن. برای مثال، مشخصات نام و سن سازنده داخلی هم مثل مثال پایین تعریف میشن.
class Person {
@@ -8307,7 +8756,7 @@
-
-
+
-
isNaN: تابع سراسری «isNaN» آرگومان رو به عدد تبدیل میکنه و اگه مقدار حاصل NaN باشه، true رو برمیگردونه.
diff --git a/book.md b/book.md
index a1a4694d..24283967 100644
--- a/book.md
+++ b/book.md
@@ -5,462 +5,457 @@ date: August 30, 2020
export_on_save:
html: true
puppeteer:
-landscape: false
-printBackground: true
-timeout: 3000
-width: "170mm"
-height: "240mm"
-margin: { top: '50px', bottom: '55px', right: '40px', left: '40px'}
-displayHeaderFooter: true
-headerTemplate: ''
-footerTemplate: '
-
-
![](data:image/png;base64,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)
![](data:image/png;base64,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)
-
'
+ landscape: false
+ printBackground: true
+ timeout: 3000
+ width: "170mm"
+ height: "240mm"
+ margin: { top: '50px', bottom: '55px', right: '40px', left: '40px'}
+ displayHeaderFooter: true
+ headerTemplate: '2222'
+ footerTemplate: '
+
+
![](data:image/png;base64,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)
![](data:image/png;base64,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)
+
'
---
# مجموعه سوال و جوابهای جاواسکریپتی
-> اگه خوشتون اومد به گیتهابمون مراجعه کنین و بهمون :star: بدین. اگه هم قصد مشارکت داشتید خیلی خوشحال میشیم :)
+> اگه از کتاب خوشتون اومد به گیتهابمون مراجعه کنین و بهمون :star: بدین. اگه هم قصد مشارکت داشتید خیلی خوشحال میشیم :)
http://github.com/mariotek
## دانلود کتاب به فرمتهای PDF/Epub
-میتونید از بخش ریلیزهای گیتهاب دانلود کنین([این لینک](https://github.com/Mariotek/advanced-javascript/releases)).
+میتونین خیلی راحت نسخه آنلاین کتاب استفاده کنین یا اگه به فایل کتاب میخوایین دسترسی داشته باشین، از بخش ریلیزهای گیتهاب به فرمتهای مختلف آخرین نسخه کتاب رو میتونین دریافت کنین.
-## پیش گفتار
-
-پرسش و پاسخهای پیش رو، حاصل گردآوری سوالات پرتکراریست که در جلسات مصاحبه برای موقعیتهای کاری مرتبط با جاواسکریپت پرسیده میشه.
-امیدواریم که با مطالعه این سوالات توی مصاحبههای شغلیتون موفق باشین و به دانشتون اضافه بشه.
-
----
-
### فهرست
-| ردیف | سوال |
-|---- | ---------
-|1 | [روشهای ایجاد objects توی جاواسکریپت چیا هستن؟](#روشهای-ایجاد-objects-توی-جاواسکریپت-چیا-هستن) |
-|2 | [زنجیره prototype چیه؟](#زنجیره-prototype-چیه) |
-|3 | [تفاوتهای بین Call، Apply و Bind چیا هستن؟](#تفاوتهای-بین-Call،-Apply-و-Bind-چیا-هستن) |
-|4 | [فرمت JSON چیه و عملیاتهای معمول بر روی آن چیا هستن؟](#فرمت-JSON-چیه-و-عملیاتهای-معمول-بر-روی-آن-چیا-هستن) |
-|5 | [هدف از متد slice روی آرایهها چیه؟](#هدف-از-متد-slice-روی-آرایهها-چیه) |
-|6 | [هدف از متد splice روی آرایهها چیه؟](#هدف-از-متد-splice-روی-آرایهها-چیه) |
-|7 | [تفاوت متدهای slice و splice چیا هستن؟](#تفاوت-متدهای-slice-و-splice-چیا-هستن) |
-|8 | [تفاوتهای Object و Map چیا هستن؟](#تفاوتهای-Object-و-Map-چیا-هستن) |
-|9 | [تفاوتهای بین عملگرهای == و === چیا هستن؟](#تفاوتهای-بین-عملگرهای-و-چیا-هستن) |
-|10 | [توابع lambda یا arrow-function چی هستن؟](#توابع-lambda-یا-arrow-function-چی-هستن) |
-|11 | [یه تابع first-class چجور تابعیـه؟](#یه-تابع-first-class-چجور-تابعیـه) |
-|12 | [یه تابع first-order چجور تابعیـه؟](#یه-تابع-first-order-چجور-تابعیـه) |
-|13 | [یه تابع higher-order چجور تابعیـه؟](#یه-تابع-higher-order-چجور-تابعیـه) |
-|14 | [یه تابع unary چجور تابعیـه؟](#یه-تابع-unary-چجور-تابعیـه) |
-|15 | [currying توابع یعنی چی؟](#currying-توابع-یعنی-چی) |
-|16 | [چه توابعی pure هستن؟](#چه-توابعی-pure-هستن) |
-|17 | [هدف از کلمه کلیدی let چیه؟](#هدف-از-کلمه-کلیدی-let-چیه) |
-|18 | [تفاوتهای کلمات کلیدی let و var چیا هستن؟](#تفاوتهای-کلمات-کلیدی-let-و-var-چیا-هستن) |
-|19 | [دلیل انتخاب کلمه کلیدی let چیه؟](#دلیل-انتخاب-کلمه-کلیدی-let-چیه) |
-|20 | [چطوری میتونیم توی بلوک مربوط به switch بدون دریافت خطا متغیر تعریف کنیم؟](#چطوری-میتونیم-توی-بلوک-مربوط-به-switch-بدون-دریافت-خطا-متغیر-تعریف-کنیم) |
-|21 | [Temporal-Dead-Zone چیه؟](#Temporal-Dead-Zone-چیه ) |
-|22 | [IIFE(توابع بلافاصله صدا زده شده) چی هستن؟](#IIFEتوابع-بلافاصله-صدا-زده-شده-چی-هستن) |
-|23 | [مزایای استفاده از moduleها چیه؟](#مزایای-استفاده-از-moduleها-چیه) |
-|24 | [Memoization چیه؟](#Memoization-چیه) |
-|25 | [Hoisting چیه؟](#Hoisting-چیه) |
-|26 | [Classها توی ES6 چی هستن؟](#Classها-توی-ES6-چی-هستن) |
-|27 | [Closureها چیا هستن؟](#Closureها-چیا-هستن) |
-|28 | [Moduleها چیا هستن؟](#Moduleها-چیا-هستن) |
-|29 | [چرا به moduleها نیاز داریم؟](#چرا-به-moduleها-نیاز-داریم) |
-|30 | [توی جاواسکریپت scope چیه و چیکار میکنه؟](#توی-جاواسکریپت-scope-چیه-و-چیکار-میکنه) |
-|31 | [service-worker چیه؟](#service-worker-چیه) |
-|32 | [توی service-worker چطوری میشه DOM رو دستکاری کرد؟](#توی-service-worker-چطوری-میشه-DOM-رو-دستکاری-کرد) |
-|33 | [چطوری میتونیم بین ریست شدنهای service-worker دادههای مورد نظرمون رو مجدد استفاده کنیم؟](#چطوری-میتونیم-بین-ریست-شدنهای-service-worker-دادههای-مورد-نظرمون-رو-مجدد-استفاده-کنیم) |
-|34 | [IndexedDB چیه؟](#IndexedDB-چیه) |
-|35 | [Web-storage چیه؟](#Web-storage-چیه) |
-|36 | [Post-message چیه؟](#Post-message-چیه) |
-|37 | [Cookie چیه؟](#Cookie-چیه) |
-|38 | [چرا به cookie نیاز داریم؟](#چرا-به-cookie-نیاز-داریم) |
-|39 | [گزینههای قابل تنظیم توی cookie چیا هستن؟](#گزینههای-قابل-تنظیم-توی-cookie-چیا-هستن) |
-|40 | [چطوری میشه یه cookie رو حذف کرد؟](#چطوری-میشه-یه-cookie-رو-حذف-کرد) |
-|41 | [تفاوتهای بین cookie، local-storage و session-storage چیا هستن؟](#تفاوتهای-بین-cookie،-local-storage-و-session-storage-چیا-هستن) |
-|42 | [تفاوتهای بین localStorage و sessionStorage چیا هستن؟](#تفاوتهای-بین-localStorage-و-sessionStorage-چیا-هستن) |
-|43 | [چطوری به web-storage دسترسی پیدا میکنی؟](#چطوری-به-web-storage-دسترسی-پیدا-میکنی) |
-|44 | [چه متدهایی روی session-storage قابل استفاده هستن؟](#چه-متدهایی-روی-session-storage-قابل-استفاده-هستن) |
-|45 | [رخداد storage چیه و چطوری ازش استفاده میکنیم؟](#رخداد-storage-چیه-و-چطوری-ازش-استفاده-میکنیم) |
-|46 | [چرا به web-storage نیاز داریم؟](#چرا-به-web-storage-نیاز-داریم) |
-|47 | [چطوری میتونیم پشتیبانی از web-storage توسط مرورگر رو بررسی کنیم؟](#چطوری-میتونیم-پشتیبانی-از-web-storage-توسط-مرورگر-رو-بررسی-کنیم) |
-|48 | [چطوری میتونیم پشتیبانی از web-worker توسط مرورگر رو بررسی کنیم؟](#چطوری-میتونیم-پشتیبانی-از-web-worker-توسط-مرورگر-رو-بررسی-کنیم) |
-|49 | [یه مثال از web-workerها میتونی بزنی؟](#یه-مثال-از-web-workerها-میتونی-بزنی) |
-|50 | [محدودیتهای web-workerها روی DOM چیا هستن؟](#محدودیتهای-web-workerها-روی-DOM-چیا-هستن) |
-|51 | [Promise چیه؟](#Promise-چیه ) |
-|52 | [چرا به promise نیاز داریم؟](#چرا-به-promise-نیاز-داریم) |
-|53 | [سه تا وضعیت ممکن برای یه promise چیا هستن؟](#سه-تا-وضعیت-ممکن-برای-یه-promise-چیا-هستن) |
-|54 | [توابع callback چی هستن؟](#توابع-callback-چی-هستن) |
-|55 | [چرا به توابع callback نیاز داریم؟](#چرا-به-توابع-callback-نیاز-داریم) |
-|56 | [Callback-hell یا جهنم توابع callback چیه؟](#Callback-hell-یا-جهنم-توابع-callback-چیه ) |
-|57 | [Server-sent-events(SSE) چیه؟](#Server-sent-eventsSSE-چیه ) |
-|58 | [چطوری میتونیم اعلانهای server-sent-event رو دریافت کنیم؟](#چطوری-میتونیم-اعلانهای-server-sent-event-رو-دریافت-کنیم) |
-|59 | [چطوری میتونیم پشتیبانی مرورگر برای SSE رو بررسی کنیم؟](#چطوری-میتونیم-پشتیبانی-مرورگر-برای-SSE-رو-بررسی-کنیم) |
-|60 | [کدوم توابع روی SSE وجود دارن؟](#کدوم-توابع-روی-SSE-وجود-دارن) |
-|61 | [اصلیترین قوانین promiseها چیا هستن؟](#اصلیترین-قوانین-promiseها-چیا-هستن) |
-|62 | [Callback توی callback چطوری رخ میده؟](#Callback-توی-callback-چطوری-رخ-میده ) |
-|63 | [زنجیره promiseها چیه؟](#زنجیره-promiseها-چیه) |
-|64 | [کاربرد متد promise.all چیه؟](#کاربرد-متد-promise.all-چیه) |
-|65 | [هدف از متد race روی promise چیه؟](#هدف-از-متد-race-روی-promise-چیه) |
-|66 | [حالت strict توی جاواسکریپت چی کار میکنه؟](#حالت-strict-توی-جاواسکریپت-چی-کار-میکنه) |
-|67 | [چرا به حالت strict نیاز داریم؟](#چرا-به-حالت-strict-نیاز-داریم) |
-|68 | [چطوری میتونیم حالت strict رو فعال کنیم؟](#چطوری-میتونیم-حالت-strict-رو-فعال-کنیم) |
-|69 | [هدف از عملگر نقیض دوتایی(!!) چیه؟](#هدف-از-عملگر-نقیض-دوتایی!!-چیه) |
-|70 | [هدف از عملگر delete چیه؟](#هدف-از-عملگر-delete-چیه) |
-|71 | [عملگر typeof چیکار میکنه؟](#عملگر-typeof-چیکار-میکنه) |
-|72 | [undefined چیه و چه زمانی undefined میگیریم؟](#undefined-چیه-و-چه-زمانی-undefined-میگیریم ) |
-|73 | [null چیه؟](#null-چیه ) |
-|74 | [تفاوتهای بین null و undefined چیا هستن؟](#تفاوتهای-بین-null-و-undefined-چیا-هستن) |
-|75 | [eval چیه؟](#eval-چیه ) |
-|76 | [تفاوتهای بین window و document چیا هستن؟](#تفاوتهای-بین-window-و-document-چیا-هستن) |
-|77 | [توی جاواسکریپت چطوری میتونیم به history دسترسی داشته باشیم؟](#توی-جاواسکریپت-چطوری-میتونیم-به-history-دسترسی-داشته-باشیم) |
-|78 | [انواع دادههای جاواسکریپت کدوما هستن؟](#انواع-دادههای-جاواسکریپت-کدوما-هستن) |
-|79 | [isNaN چیه و چیکار میکنه؟](#isNaN-چیه-و-چیکار-میکنه ) |
-|80 | [تفاوتهای بین undeclared و undefined چیا هستن؟](#تفاوتهای-بین-undeclared-و-undefined-چیا-هستن) |
-|81 | [کدوم متغیرها عمومی هستن؟](#کدوم-متغیرها-عمومی-هستن) |
-|82 | [مشکلات متغیرهای عمومی چیا هستن؟](#مشکلات-متغیرهای-عمومی-چیا-هستن) |
-|83 | [مقدار NaN چیه؟](#مقدار-NaN-چیه) |
-|84 | [هدف از تابع isFinite چیه؟](#هدف-از-تابع-isFinite-چیه) |
-|85 | [یه event-flow چیه؟](#یه-event-flow-چیه) |
-|86 | [Event-bubbling چیه؟](#Event-bubbling-چیه ) |
-|87 | [Event-capturing چیه؟](#Event-capturing-چیه ) |
-|88 | [چطوری میشه یه فرم رو با استفاده از جاواسکریپت ثبت کرد؟](#چطوری-میشه-یه-فرم-رو-با-استفاده-از-جاواسکریپت-ثبت-کرد) |
-|89 | [چطوری میشه به اطلاعات مربوط به سیستم عامل کاربر دسترسی داشت؟](#چطوری-میشه-به-اطلاعات-مربوط-به-سیستم-عامل-کاربر-دسترسی-داشت) |
-|90 | [تفاوتهای بین رخدادهای document-load و DOMContentLoaded چیا هستن؟](#تفاوتهای-بین-رخدادهای-document-load-و-DOMContentLoaded-چیا-هستن) |
-|91 | [تفاوتهای بین objectهای native، host و user چیا هستن؟](#تفاوتهای-بین-objectهای-native،-host-و-user-چیا-هستن) |
-|92 | [کدوم ابزار و تکنیکها برای دیباگ کردن برنامه جاواسکریپتی استفاده میشن؟](#کدوم-ابزار-و-تکنیکها-برای-دیباگ-کردن-برنامه-جاواسکریپتی-استفاده-میشن) |
-|93 | [مزایا و معایب استفاده از promiseها به جای callback چیا هستن؟](#مزایا-و-معایب-استفاده-از-promiseها-به-جای-callback-چیا-هستن) |
-|94 | [تفاوتهای بین attribute و property روی DOM چیا هستن؟](#تفاوتهای-بین-attribute-و-property-روی-DOM-چیا-هستن) |
-|95 | [سیاست same-origin چیه؟](#سیاست-same-origin-چیه) |
-|96 | [هدف استفاده از void 0 چیه؟](#هدف-استفاده-از-void-0-چیه) |
-|97 | [جاواسکریپت یه زبان تفسیری هست یا کامپایلری؟](#جاواسکریپت-یه-زبان-تفسیری-هست-یا-کامپایلری) |
-|98 | [آیا جاواسکریپت یه زبان حساس به بزرگی و کوچکی(case-sensitive) حروف است؟](#آیا-جاواسکریپت-یه-زبان-حساس-به-بزرگی-و-کوچکیcase-sensitive-حروف-است) |
-|99 | [ارتباطی بین Java و JavaScript وجود داره؟](#ارتباطی-بین-Java-و-JavaScript-وجود-داره) |
-|100| [Eventها چی هستن؟](#Eventها-چی-هستن) |
-|101| [کی جاواسکریپت رو ساخته؟](#کی-جاواسکریپت-رو-ساخته) |
-|102| [هدف از متد preventDefault چیه؟](#هدف-از-متد-preventDefault-چیه) |
-|103| [کاربرد متد stopPropagation چیه؟](#کاربرد-متد-stopPropagation-چیه) |
-|104| [مراحلی که موقع استفاده از return false توی یه event-handler رخ میده چیا هستن؟](#مراحلی-که-موقع-استفاده-از-return-false-توی-یه-event-handler-رخ-میده-چیا-هستن) |
-|105| [BOM چیه؟](#BOM-چیه) |
-|106| [موارد استفاده از setTimeout کدوما هستن؟](#موارد-استفاده-از-setTimeout-کدوما-هستن) |
-|107| [موارد استفاده از setInterval کدوما هستن؟](#موارد-استفاده-از-setInterval-کدوما-هستن) |
-|108| [چرا جاواسکریپت رو به عنوان یه زبان تک thread میشناسن؟](#چرا-جاواسکریپت-رو-به-عنوان-یه-زبان-تک-thread-میشناسن) |
-|109| [Event-delegation چیه؟](#Event-delegation-چیه) |
-|110| [ECMAScript چیه؟](#ECMAScript-چیه) |
-|111| [JSON چیه؟](#JSON-چیه) |
-|112| [قوانین فرمت JSON کدوما هستن؟](#قوانین-فرمت-JSON-کدوما-هستن) |
-|113| [هدف از متد JSON.stringify چیه؟](#هدف-از-متد-JSON.stringify-چیه) |
-|114| [چطوری میتونیم یه رشته(string) JSON رو تجزیه کنیم؟](#چطوری-میتونیم-یه-رشتهstring-JSON-رو-تجزیه-کنیم) |
-|115| [چرا به JSON نیاز داریم؟](#چرا-به-JSON-نیاز-داریم) |
-|116| [PWAها چی هستن؟](#PWAها-چی-هستن) |
-|117| [هدف از متد clearTimeout چیه؟](#هدف-از-متد-clearTimeout-چیه) |
-|118| [هدف از متد clearInterval چیه؟](#هدف-از-متد-clearInterval-چیه) |
-|119| [توی جاواسکریپت، چطوری میشه به یه صفحه جدید redirect انجام داد؟](#توی-جاواسکریپت،-چطوری-میشه-به-یه-صفحه-جدید-redirect-انجام-داد) |
-|120| [چطوری بررسی میکنین که یه string شامل یه substring هست یا نه؟](#چطوری-بررسی-میکنین-که-یه-string-شامل-یه-substring-هست-یا-نه) |
-|121| [توی جاواسکریپت، چطوری مقدار یه آدرس email رو اعتبارسنجی میکنین؟](#توی-جاواسکریپت،-چطوری-مقدار-یه-آدرس-email-رو-اعتبارسنجی-میکنین) |
-|122| [چطوری میتونیم مقدار آدرس url جاری رو بخونیم؟](#چطوری-میتونیم-مقدار-آدرس-url-جاری-رو-بخونیم) |
-|123| [ویژگیهای مختلف url روی object مربوط به history کدوما هستن؟](#ویژگیهای-مختلف-url-روی-object-مربوط-به-history-کدوما-هستن) |
-|124| [توی جاواسکریپت چطوری میتونیم مقدار یه query-string رو بخونیم؟](#توی-جاواسکریپت-چطوری-میتونیم-مقدار-یه-query-string-رو-بخونیم) |
-|125| [چطوری میتونیم بررسی کنیم که آیا یه پراپرتی روی آبجکت وجود داره یا نه؟](#چطوری-میتونیم-بررسی-کنیم-که-آیا-یه-پراپرتی-روی-آبجکت-وجود-داره-یا-نه) |
-|126| [ری روی یه object حلقه میزنی؟](#چطوری-روی-یه-object-حلقه-میزنی) |
-|127| [چطوری تست میکنی که یه object خالیه؟](#چطوری-تست-میکنی-که-یه-object-خالیه) |
-|128| [arguments object چیه؟](#arguments-object-چیه) |
-|129| [چطوری حرف اول یه رشته رو به حرف بزرگ تبدیل میکنی؟](#چطوری-حرف-اول-یه-رشته-رو-به-حرف-بزرگ-تبدیل-میکنی) |
-|130| [مزایا و معایب حلقه for چیا هستن؟](#مزایا-و-معایب-حلقه-for-چیا-هستن) |
-|131| [چطوری تاریخ جاری رو توی جاواسکریپت نشون میدی؟](#چطوری-تاریخ-جاری-رو-توی-جاواسکریپت-نشون-میدی) |
-|132| [چطوری دو تا date object رو با هم مقایسه میکنی؟](#چطوری-دو-تا-date-object-رو-با-هم-مقایسه-میکنی) |
-|133| [چطوری بررسی میکنی که یه رشته با یه رشته دیگه شروع میشه؟](#چطوری-بررسی-میکنی-که-یه-رشته-با-یه-رشته-دیگه-شروع-میشه) |
-|134| [چطوری یه رشته رو trim میکنی؟](#چطوری-یه-رشته-رو-trim-میکنی) |
-|135| [توی جاواسکریپت چطوری میتونیم یه زوج مرتب از key یه valueها بسازیم؟](#توی-جاواسکریپت-چطوری-میتونیم-یه-زوج-مرتب-از-key-یه-valueها-بسازیم) |
-|136| [آیا عبارت '!--' عملگر خاصی هست؟](#آیا-عبارت-!---عملگر-خاصی-هست) |
-|137| [چطوری میتونیم به متغیرهامون مقادیر اولیه بدیم؟](#چطوری-میتونیم-به-متغیرهامون-مقادیر-اولیه-بدیم) |
-|138| [چطوری میتونیم متنهای چند خطی درست کنیم؟](#چطوری-میتونیم-متنهای-چند-خطی-درست-کنیم) |
-|139| [مدل app-shell چیه؟](#مدل-app-shell-چیه) |
-|140| [چطوری میتونیم روی یه تابع property اضافه کنیم؟](#چطوری-میتونیم-روی-یه-تابع-property-اضافه-کنیم) |
-|141| [چطوری میتونیم تعداد پارامترهای ورودی یه تابع رو به دست بیاریم؟](#چطوری-میتونیم-تعداد-پارامترهای-ورودی-یه-تابع-رو-به-دست-بیاریم) |
-|142| [Polyfill چیه؟](#Polyfill-چیه) |
-|143| [عبارات Break و continue چی هستن؟](#عبارات-Break-و-continue-چی-هستن) |
-|144| [توی جاواسکریپت labelها چیکار میکنن؟](#توی-جاواسکریپت-labelها-چیکار-میکنن) |
-|145| [مزایای declare کردن متغیرها در اوایل کد چیه؟](#مزایای-declare-کردن-متغیرها-در-اوایل-کد-چیه) |
-|146| [مزایای مقداردهی اولیه متغیرها چیه؟](#مزایای-مقداردهی-اولیه-متغیرها-چیه) |
-|147| [روش توصیه شده برای ایجاد object چیه؟](#روش-توصیه-شده-برای-ایجاد-object-چیه) |
-|148| [چطوری میتونیم آرایه JSON تعریف کنیم؟](#چطوری-میتونیم-آرایه-JSON-تعریف-کنیم) |
-|149| [چطوری میتونیم اعداد تصادفی تولید کنیم؟](#چطوری-میتونیم-اعداد-تصادفی-تولید-کنیم) |
-|150| [میتونی یه تابع تولید اعداد تصادفی توی یه بازه مشخص بنویسی؟](#میتونی-یه-تابع-تولید-اعداد-تصادفی-توی-یه-بازه-مشخص-بنویسی) |
-|151| [Tree-shaking چیه؟](#Tree-shaking-چیه) |
-|152| [دلایل نیاز به tree-shaking کدوما هستن؟](#دلایل-نیاز-به-tree-shaking-کدوما-هستن) |
-|153| [آیا استفاده از eval توصیه میشه؟](#آیا-استفاده-از-eval-توصیه-میشه) |
-|154| [Regular-Expression چیه؟](#Regular-Expression-چیه) |
-|155| [متدهای رشته که روی Regular-expression مجاز هستن کدوماست؟](#متدهای-رشته-که-روی-Regular-expression-مجاز-هستن-کدوماست) |
-|156| [توی Regex بخش modifiersها چیکار میکنه؟](#توی-Regex-بخش-modifiersها-چیکار-میکنه) |
-|157| [پترنهای regular-expression چیه؟](#پترنهای-regular-expression-چیه) |
-|158| [آبجکت RegExp چیه؟](#آبجکت-RegExp-چیه) |
-|159| [چطوری روی یه رشته دنبال یه پترن RegExp میگردی؟](#چطوری-روی-یه-رشته-دنبال-یه-پترن-RegExp-میگردی) |
-|160| [هدف از متد exec چیه؟](#هدف-از-متد-exec-چیه) |
-|161| [چطوری استایلهای یه المنت HTML رو تغییر میدی؟](#چطوری-استایلهای-یه-المنت-HTML-رو-تغییر-میدی) |
-|162| [نتیجه عبارت 1+2+'3' چی میشه؟](#نتیجه-عبارت-1+2+3-چی-میشه) |
-|163| [عبارت debugger چیکار میکنه؟](#عبارت-debugger-چیکار-میکنه) |
-|164| [هدف از breakpointها توی debugging چیه؟](#هدف-از-breakpointها-توی-debugging-چیه) |
-|165| [آیا میتونیم از عبارتهای رزرو شده در تعریف identifierها(اسم متغیر، کلاس و ...) استفاده کنیم؟](#آیا-میتونیم-از-عبارتهای-رزرو-شده-در-تعریف-identifierهااسم-متغیر،-کلاس-و--استفاده-کنیم) |
-|166| [چطوری تشخیص بدیم که یه مرورگر mobile هست یا نه؟](#چطوری-تشخیص-بدیم-که-یه-مرورگر-mobile-هست-یا-نه) |
-|167| [چطوری بدون Regex تشخیص بدیم که یه مرورگر mobile هست یا نه؟](#چطوری-بدون-Regex-تشخیص-بدیم-که-یه-مرورگر-mobile-هست-یا-نه) |
-|168| [چطوری طول و عرض یه تصویر رو با جاواسکریپت به دست میاری؟](#چطوری-طول-و-عرض-یه-تصویر-رو-با-جاواسکریپت-به-دست-میاری) |
-|169| [چطوری درخواستهای synchronous HTTP بزنیم؟](#چطوری-درخواستهای-synchronous-HTTP-بزنیم) |
-|170| [چطوری درخواستهای asynchronous HTTP بزنیم؟](#چطوری-درخواستهای-asynchronous-HTTP-بزنیم) |
-|171| [چطوری یه تاریخ رو به یه تاریخ در timezone دیگه تبدیل کنیم؟](#چطوری-یه-تاریخ-رو-به-یه-تاریخ-در-timezone-دیگه-تبدیل-کنیم) |
-|172| [چه propertyهایی برای اندازهگیزی سایز window به کار میره؟](#چه-propertyهایی-برای-اندازهگیزی-سایز-window-به-کار-میره) |
-|173| [عملگر شرطی سه گانه توی جاواسکریپت چیه؟](#عملگر-شرطی-سه-گانه-توی-جاواسکریپت-چیه) |
-|174| [آیا میشه روی عملگر شرطی زنجیره شرطها رو اعمال کرد؟](#آیا-میشه-روی-عملگر-شرطی-زنجیره-شرطها-رو-اعمال-کرد) |
-|175| [روشهای اجرای جاواسکریپت بعد از لود شدن صفحه کدوما هستن؟](#روشهای-اجرای-جاواسکریپت-بعد-از-لود-شدن-صفحه-کدوما-هستن) |
-|176| [تفاوتهای بین proto و prototype کدوما هستن؟](#تفاوتهای-بین-proto-و-prototype-کدوما-هستن) |
-|177| [میتونی یه مثال از زمانی که واقعا به سمیکولون(;) نیاز هست بزنی؟](#میتونی-یه-مثال-از-زمانی-که-واقعا-به-سمیکولون-نیاز-هست-بزنی) |
-|178| [متد freeze چیکار میکنه؟](#متد-freeze-چیکار-میکنه) |
-|179| [هدف از متد freeze چیه؟](#هدف-از-متد-freeze-چیه) |
-|180| [چرا به متد freeze نیاز داریم؟](#چرا-به-متد-freeze-نیاز-داریم) |
-|181| [چطوری میتونیم زبان ترجیحی یه مرورگر رو تشخیص بدیم؟](#چطوری-میتونیم-زبان-ترجیحی-یه-مرورگر-رو-تشخیص-بدیم) |
-|182| [چطوری میتونیم حرف اول همه کلمات یه رشته رو به حرف بزرگ تبدیل کنیم؟](#چطوری-میتونیم-حرف-اول-همه-کلمات-یه-رشته-رو-به-حرف-بزرگ-تبدیل-کنیم) |
-|183| [چطوری میشه تشخیص داد که جاواسکریپت یه صفحه وب غیرفعال شده؟](#چطوری-میشه-تشخیص-داد-که-جاواسکریپت-یه-صفحه-وب-غیرفعال-شده) |
-|184| [عملگرهای پشتیبانی شده توسط جاواسکریپت کدوما هستن؟](#عملگرهای-پشتیبانی-شده-توسط-جاواسکریپت-کدوما-هستن) |
-|185| [پارامتر rest چیکار میکنه؟](#پارامتر-rest-چیکار-میکنه) |
-|186| [اگه پارامتر rest رو به عنوان آخرین پارامتر استفاده نکنیم چی میشه؟](#اگه-پارامتر-rest-رو-به-عنوان-آخرین-پارامتر-استفاده-نکنیم-چی-میشه) |
-|187| [عملگرهای منطقی باینری توی جاواسکریپت کدوما هستن؟](#عملگرهای-منطقی-باینری-توی-جاواسکریپت-کدوما-هستن) |
-|188| [عملگر spread چیکار میکنه؟](#عملگر-spread-چیکار-میکنه) |
-|189| [چطوری تشخیص میدی که یه آبجکت freeze شده یا نه؟](#چطوری-تشخیص-میدی-که-یه-آبجکت-freeze-شده-یا-نه) |
-|190| [چطوری بررسی کنیم که دو تا مقدار(شامل آبجکت) با هم برابرن یا نه؟](#چطوری-بررسی-کنیم-که-دو-تا-مقدارشامل-آبجکت-با-هم-برابرن-یا-نه) |
-|191| [هدف از متد is روی object چیه؟](#هدف-از-متد-is-روی-object-چیه) |
-|192| [چطوری propertyهای یه object رو به یه object دیگه کپی میکنی؟](#چطوری-propertyهای-یه-object-رو-به-یه-object-دیگه-کپی-میکنی) |
-|193| [کاربردهای ممتد assign چیه؟](#کاربردهای-ممتد-assign-چیه) |
-|194| [آبجکت proxy چیه؟](#آبجکت-proxy-چیه) |
-|195| [هدف از متد seal چیه؟](#هدف-از-متد-seal-چیه) |
-|196| [کاربردهای متد seal چیه؟](#کاربردهای-متد-seal-چیه) |
-|197| [تفاوتهای بین متدهای freeze و seal چیا هست؟](#تفاوتهای-بین-متدهای-freeze-و-seal-چیا-هست) |
-|198| [چطوری تشخیص میدی که یه آبجکت seal شده یا نه؟](#چطوری-تشخیص-میدی-که-یه-آبجکت-seal-شده-یا-نه) |
-|199| [چطوری کلید و مقدارهای enumerable رو به دست میاری؟](#چطوری-کلید-و-مقدارهای-enumerable-رو-به-دست-میاری) |
-|200| [تفاوتهای بین متدهای Object.values و Object.entries چیا هست؟](#تفاوتهای-بین-متدهای-Objectvalues-و-Objectentries-چیا-هست) |
-|201| [چطوری لیست کلیدهای یه object رو بدست میاری؟](#چطوری-لیست-کلیدهای-یه-object-رو-بدست-میاری) |
-|202| [چطوری یه object با prototype درست میکنی؟](#چطوری-یه-object-با-prototype-درست-میکنی) |
-|203| [WeakSet چیه؟](#WeakSet-چیه) |
-|204| [تفاوتهای بین WeakSet و Set کدوما هستن؟](#تفاوتهای-بین-WeakSet-و-Set-کدوما-هستن) |
-|205| [لیست متدهایی که رو WeakSet قابل استفاده هستن رو میتونی بگی؟](#لیست-متدهایی-که-رو-WeakSet-قابل-استفاده-هستن-رو-میتونی-بگی) |
-|206| [WeakMap چیه؟](#WeakMap-چیه) |
-|207| [تفاوتهای بین WeakMap و Map کدوما هستن؟](#تفاوتهای-بین-WeakMap-و-Map-کدوما-هستن) |
-|208| [لیست متدهایی که رو WeakMap قابل استفاده هستن رو میتونی بگی؟](#لیست-متدهایی-که-رو-WeakMap-قابل-استفاده-هستن-رو-میتونی-بگی) |
-|209| [هدف از متد uneval چیه؟](#هدف-از-متد-uneval-چیه) |
-|210| [چطوری یه URL رو encode میکنی؟](#چطوری-یه-URL-رو-encode-میکنی) |
-|211| [چطوری یه URL رو decode میکنی؟](#چطوری-یه-URL-رو-decode-میکنی) |
-|212| [چطوری محتوای یه صفحه رو پرینت میگیری؟](#چطوری-محتوای-یه-صفحه-رو-پرینت-میگیری) |
-|213| [تفاوتهای بین uneval و eval چیا هستن؟](#تفاوتهای-بین-uneval-و-eval-چیا-هستن) |
-|214| [تابع anonymous چیه؟](#تابع-anonymous-چیه) |
-|215| [تفاوت تقدم بین متغیرهای local و global چطوریه؟](#تفاوت-تقدم-بین-متغیرهای-local-و-global-چطوریه) |
-|216| [accessorهای جاواسکریپت چیکار میکنن؟](#accessorهای-جاواسکریپت-چیکار-میکنن) |
-|217| [چطوری روی constructor یه Object یه مقدار تعریف میکنی؟](#چطوری-روی-constructor-یه-Object-یه-مقدار-تعریف-میکنی) |
-|218| [تفاوتهای بین get و defineProperty چیا هست؟](#تفاوتهای-بین-get-و-defineProperty-چیا-هست) |
-|219| [مزایای استفاده از Getter و Setter چیه؟](#مزایای-استفاده-از-Getter-و-Setter-چیه) |
-|220| [میتونیم getter و setter رو با استفاده از متد defineProperty تعریف کنیم؟](#میتونیم-getter-و-setter-رو-با-استفاده-از-متد-defineProperty-تعریف-کنیم) |
-|221| [هدف استفاده از switch-case چیه؟](#هدف-استفاده-از-switch-case-چیه) |
-|222| [چه قواعدی برای استفاده از swtich-case باید رعایت بشه؟](#چه-قواعدی-برای-استفاده-از-swtich-case-باید-رعایت-بشه) |
-|223| [نوع دادههای primitive کدوما هستن؟](#نوع-دادههای-primitive-کدوما-هستن) |
-|224| [روشهای مختلف دسترسی به propertyهای object کدوما هستن؟](#روشهای-مختلف-دسترسی-به-propertyهای-object-کدوما-هستن) |
-|225| [قوانین پارامترهای توابع کدوما هستن؟](#قوانین-پارامترهای-توابع-کدوما-هستن) |
-|226| [آبجکت error چیه؟](#آبجکت-error-چیه) |
-|227| [چه موقعی خطای syntax دریافت میکنیم؟](#چه-موقعی-خطای-syntax-دریافت-میکنیم) |
-|228| [عنوان خطاهای مختلف که روی error-object برمیگردن کدوما هستن؟](#عنوان-خطاهای-مختلف-که-روی-error-object-برمیگردن-کدوما-هستن) |
-|229| [عبارات مختلف که در هنگام مدیریت error استفاده میشن کدوما هستن؟](#عبارات-مختلف-که-در-هنگام-مدیریت-error-استفاده-میشن-کدوما-هستن) |
-|230| [دو نوع مختلف حلفهها در جاواسکریپت کدوما هستن؟](#دو-نوع-مختلف-حلفهها-در-جاواسکریپت-کدوما-هستن) |
-|231| [nodejs چیه؟](#nodejs-چیه) |
-|232| [آبجکت Intl چیه؟](#آبجکت-Intl-چیه) |
-|233| [چطوری تاریخ و زمان رو بر اساس زبان جاری سیستم کاربر نمایش بدیم؟](#چطوری-تاریخ-و-زمان-رو-بر-اساس-زبان-جاری-سیستم-کاربر-نمایش-بدیم) |
-|234| [Iterator چیه؟](#Iterator-چیه) |
-|235| [حلفههای synchronous(همزمان) چطوری کار میکنن؟](#حلفههای-synchronousهمزمان-چطوری-کار-میکنن) |
-|236| [Event-loop چیه؟](#Event-loop-چیه) |
-|237| [Call-stack چیه؟](#Call-stack-چیه) |
-|238| [Event-queue چیه؟](#Event-queue-چیه) |
-|239| [Decorator چیه؟](#Decorator-چیه) |
-|240| [مقادیر موجود روی آبجکت Intl کدوما هستن؟](#مقادیر-موجود-روی-آبجکت-Intl-کدوما-هستن) |
-|241| [عملگر Unary چیه؟](#عملگر-Unary-چیه) |
-|242| [چطوری المنتهای موجود تو یه آرایه رو مرتب میکنی؟](#چطوری-المنتهای-موجود-تو-یه-آرایه-رو-مرتب-میکنی) |
-|243| [هدف از تابع مرتبسازی موقع استفاده از متد sort چیه؟](#هدف-از-تابع-مرتبسازی-موقع-استفاده-از-متد-sort-چیه) |
-|244| [چطوری آیتمهای یه آرایه رو معکوس مرتب کنیم؟](#چطوری-آیتمهای-یه-آرایه-رو-معکوس-مرتب-کنیم) |
-|245| [چطوری حداقل و حداکثر مقدار یه آرایه رو بدست بیاریم؟](#چطوری-حداقل-و-حداکثر-مقدار-یه-آرایه-رو-بدست-بیاریم) |
-|246| [چطوری حداقل و حداکثر مقدار یه آرایه رو بدون استفاده از متدهای Math بدست بیاریم؟](#چطوری-حداقل-و-حداکثر-مقدار-یه-آرایه-رو-بدون-استفاده-از-متدهای-Math-بدست-بیاریم) |
-|247| [عبارت خالی چیه و هدف از استفاده ازش چیه؟](#عبارت-خالی-چیه-و-هدف-از-استفاده-ازش-چیه) |
-|248| [چطوری metadata یه ماژول رو بدست میاری؟ meta data of a module](#چطوری-metadata-یه-ماژول-رو-بدست-میاری-meta-data-of-a-module) |
-|249| [عملگر comma چیه و چیکار میکنه؟](#عملگر-comma-چیه-و-چیکار-میکنه) |
-|250| [مزایای استفاده از عملگر comma چیه؟](#مزایای-استفاده-از-عملگر-comma-چیه) |
-|251| [Typescript چیه؟](#Typescript-چیه) |
-|252| [تفاوتهای بین javascript و typescript کدوما هستن؟](#تفاوتهای-بین-javascript-و-typescript-کدوما-هستن) |
-|253| [مزایای typescript نسبت به javascript چیاست؟](#مزایای-typescript-نسبت-به-javascript-چیاست) |
-|254| [object-initializer چیه؟](#object-initializer-چیه) |
-|255| [متد constructor چیه؟](#متد-constructor-چیه) |
-|256| [اگه متد constructor رو بیش از یه بار توی کلاس بنویسیم چی میشه؟](#اگه-متد-constructor-رو-بیش-از-یه-بار-توی-کلاس-بنویسیم-چی-میشه) |
-|257| [چطوری متد constructor کلاس والد رو صدا بزنیم؟](#چطوری-متد-constructor-کلاس-والد-رو-صدا-بزنیم) |
-|258| [چطوری prototype یه object رو به دست میاری؟](#چطوری-prototype-یه-object-رو-به-دست-میاری) |
-|259| [اگه به متد getPrototype رشته پاس بدیم چی میشه؟](#اگه-به-متد-getPrototype-رشته-پاس-بدیم-چی-میشه) |
-|260| [چطوری prototype یه object روی یه object دیگه ست کنیم؟](#چطوری-prototype-یه-object-روی-یه-object-دیگه-ست-کنیم) |
-|261| [چطوری بررسی میکنی که یه object قابل extend هست یا نه؟](#چطوری-بررسی-میکنی-که-یه-object-قابل-extend-هست-یا-نه) |
-|262| [چطوری جلوی extend یه object رو بگیریم؟](#چطوری-جلوی-extend-یه-object-رو-بگیریم) |
-|263| [روشهای مختلف برای تبدیل یه object به object غیرقابل extend چیه؟](#روشهای-مختلف-برای-تبدیل-یه-object-به-object-غیرقابل-extend-چیه) |
-|264| [چطوری propertyهای متعددی رو روی یه object تعریف میکنی؟](#چطوری-propertyهای-متعددی-رو-روی-یه-object-تعریف-میکنی) |
-|265| [منظور از MEAN توی جاواسکریپت چیه؟ javascript](#منظور-از-MEAN-توی-جاواسکریپت-چیه-javascript) |
-|266| [Obfuscation توی جاواسکریپت چیه و چیکار میکنه؟ javascript](#Obfuscation-توی-جاواسکریپت-چیه-و-چیکار-میکنه-javascript) |
-|267| [چه نیازی به Obfuscate کردن داریم؟](#چه-نیازی-به-Obfuscate-کردن-داریم) |
-|268| [Minification چیه؟](#Minification-چیه) |
-|269| [مزایای minification یا کم حجمسازی چیه؟](#مزایای-minification-یا-کم-حجمسازی-چیه) |
-|270| [تفاوتهای بین Obfuscation و Encryption چیه؟](#تفاوتهای-بین-Obfuscation-و-Encryption-چیه) |
-|271| [ابزارهای مختلف برای minification کدوما هستن؟](#ابزارهای-مختلف-برای-minification-کدوما-هستن) |
-|272| [چطوری اعتبارسنجی فرم رو با javascript انجام میدی؟](#چطوری-اعتبارسنجی-فرم-رو-با-javascript-انجام-میدی) |
-|273| [چطوری اعتبارسنجی فرم رو بدون javascript انجام میدی؟](#چطوری-اعتبارسنجی-فرم-رو-بدون-javascript-انجام-میدی) |
-|274| [متدهای موجود روی DOM برای اعتبارسنجی کدوما هستن؟](#متدهای-موجود-روی-DOM-برای-اعتبارسنجی-کدوما-هستن) |
-|275| [مقادیر موجود روی DOM برای اعتبارسنجی کدوما هستن؟](#مقادیر-موجود-روی-DOM-برای-اعتبارسنجی-کدوما-هستن) |
-|276| [مقادیر موجود روی input برای اعتبارسنجی کدوما هستن؟](#مقادیر-موجود-روی-input-برای-اعتبارسنجی-کدوما-هستن) |
-|277| [یه مثال از استفاده ویژگی rangeOverflow میتونی بزنی؟](#یه-مثال-از-استفاده-ویژگی-rangeOverflow-میتونی-بزنی) |
-|278| [جاواسکریپت قابلیت استفاده از enum رو پیشفرض توی خودش داره؟](#جاواسکریپت-قابلیت-استفاده-از-enum-رو-پیشفرض-توی-خودش-داره) |
-|279| [enum چیه؟](#enum-چیه) |
-|280| [چطوری همه propertyهای یه object رو به دست بیاریم؟](#چطوری-همه-propertyهای-یه-object-رو-به-دست-بیاریم) |
-|281| [چطوری get property descriptors of an object](#چطوری-get-property-descriptors-of-an-object) |
-|282| [گزینههایی که موقع تعریف ویژگی object با descriptor داریم کدوما هستن؟](#گزینههایی-که-موقع-تعریف-ویژگی-object-با-descriptor-داریم-کدوما-هستن) |
-|283| [چطوری کلاسها رو extend میکنی؟](#چطوری-کلاسها-رو-extend-میکنی) |
-|284| [چطوری آدرس صفحه رو بدون رفرش صفحه عوض کنیم؟](#چطوری-آدرس-صفحه-رو-بدون-رفرش-صفحه-عوض-کنیم) |
-|285| [چطوری بررسی میکنی که یه آرایه یه مقدار مشخص رو داره یا نه؟](#چطوری-بررسی-میکنی-که-یه-آرایه-یه-مقدار-مشخص-رو-داره-یا-نه) |
-|286| [چطوری آرایههای scalar رو با هم مقایسه میکنی؟](#چطوری-آرایههای-scalar-رو-با-هم-مقایسه-میکنی) |
-|287| [چطوری میشه پارامترهای صفحه رو از متد GET گرفت؟](#چطوری-میشه-پارامترهای-صفحه-رو-از-متد-GET-گرفت) |
-|288| [چطوری اعداد رو میشه سه رقم سه رقم جدا کرد؟](#چطوری-اعداد-رو-میشه-سه-رقم-سه-رقم-جدا-کرد) |
-|289| [تفاوت بین java و javascript چیه؟](#تفاوت-بین-java-و-javascript-چیه) |
-|290| [آیا جاواسکریپت namespace رو پشتیبانی میکنه؟](#آیا-جاواسکریپت-namespace-رو-پشتیبانی-میکنه) |
-|291| [چطوری namespace تعریف میکنی؟](#چطوری-namespace-تعریف-میکنی) |
-|292| [چطوری میتونیم تکه کد جاواسکریپت داخل یه iframe رو از صفحه والد صدا بزنیم؟](#چطوری-میتونیم-تکه-کد-جاواسکریپت-داخل-یه-iframe-رو-از-صفحه-والد-صدا-بزنیم) |
-|293| [چطوری میشه اختلاف timezone رو از آبجکت date بگیریم؟](#چطوری-میشه-اختلاف-timezone-رو-از-آبجکت-date-بگیریم) |
-|294| [چطوری فایلهای CSS و JS رو به شکل داینامیک بارگذاری کنیم؟](#چطوری-فایلهای-CSS-و-JS-رو-به-شکل-داینامیک-بارگذاری-کنیم) |
-|295| [روشهای مختلف برای پیدا کردن elementها توی DOM کدوما هستن؟](#روشهای-مختلف-برای-پیدا-کردن-elementها-توی-DOM-کدوما-هستن) |
-|296| [jQuery چیه؟](#jQuery-چیه) |
-|297| [موتور V8 جاواسکریپت چیه؟](#موتور-V8-جاواسکریپت-چیه) |
-|298| [چرا ما جاواسکریپت رو به عنوان یه زبان داینامیک میشناسیم؟](#چرا-ما-جاواسکریپت-رو-به-عنوان-یه-زبان-داینامیک-میشناسیم) |
-|299| [عملگر void چیکار میکنه؟](#عملگر-void-چیکار-میکنه) |
-|300| [چطوری میشه نمایشگر موس صفحه رو به درحال لود تغییر داد؟](#چطوری-میشه-نمایشگر-موس-صفحه-رو-به-درحال-لود-تغییر-داد) |
-|301| [چطوری میشه یه حلقه بینهایت درست کرد؟](#چطوری-میشه-یه-حلقه-بینهایت-درست-کرد) |
-|302| [چرا باید در استفاده از عبارت with تجدیدنظر کرد؟](#چرا-باید-در-استفاده-از-عبارت-with-تجدیدنظر-کرد) |
-|303| [خروجی این حلقهها چی میشه؟](#خروجی-این-حلقهها-چی-میشه) |
-|304| [میتونی یه سری از ویژگیهای ES6 رو اسم ببری؟](#میتونی-یه-سری-از-ویژگیهای-ES6-رو-اسم-ببری) |
-|305| [ES6 چیه؟](#ES6-چیه) |
-|306| [آیا میتونیم متغیرهای تعریف شده با let و const رو مجددا declare کنیم؟](#آیا-میتونیم-متغیرهای-تعریف-شده-با-let-و-const-رو-مجددا-declare-کنیم) |
-|307| [آیا استفاده از const برای تعریف متغیر اونا رو immutable میکنه؟](#آیا-استفاده-از-const-برای-تعریف-متغیر-اونا-رو-immutable-میکنه) |
-|308| [parameterهای پیشفرض چی هستن؟](#parameterهای-پیشفرض-چی-هستن) |
-|309| [template-literalها چی هستن؟](#template-literalها-چی-هستن) |
-|310| [چطوری رشتههای چند خطی رو توی template-literalها مینویسیم؟](#چطوری-رشتههای-چند-خطی-رو-توی-template-literalها-مینویسیم) |
-|311| [template-literalهای تودرتو چی هستن؟](#template-literalهای-تودرتو-چی-هستن) |
-|312| [tagged-templateها چی هستن؟](#tagged-templateها-چی-هستن) |
-|313| [رشتههای خام چی هستن؟](#رشتههای-خام-چی-هستن) |
-|314| [assign کردن با destructuring چیه و چطوری انجام میشه؟](#assign-کردن-با-destructuring-چیه-و-چطوری-انجام-میشه) |
-|315| [موقع assign کردن با destructuring چطوری میشه مقدار اولیه تعریف کرد؟](#موقع-assign-کردن-با-destructuring-چطوری-میشه-مقدار-اولیه-تعریف-کرد) |
-|316| [چطوری میتونیم مقدار یه آرایه رو با استفاده از destructuring-assignment تعویض کنیم؟](#چطوری-میتونیم-مقدار-یه-آرایه-رو-با-استفاده-از-destructuring-assignment-تعویض-کنیم) |
-|317| [Enhanced-object-literalها چی هستن؟](#Enhanced-object-literalها-چی-هستن) |
-|318| [importهای داینامیک چی هستن؟](#importهای-داینامیک-چی-هستن) |
-|319| [کاربرد importهای داینامیک چیه؟](#کاربرد-importهای-داینامیک-چیه) |
-|320| [آرایههای نوعدار(typed-arrays) چیه؟](#آرایههای-نوعدارtyped-arrays-چیه) |
-|321| [مزایای لودر ماژولها چیه؟](#مزایای-لودر-ماژولها-چیه) |
-|322| [collation چیه؟](#collation-چیه) |
-|323| [عبارت for...of چیه؟](#عبارت-forof-چیه) |
-|324| [خروجی عملگر spread روی آرایه زیر چیه؟](#خروجی-عملگر-spread-روی-آرایه-زیر-چیه) |
-|325| [آیا PostMessage امنه؟](#آیا-PostMessage-امنه) |
-|326| [مشکلات استفاده از postmessage با origin روی wildcard چیه؟](#مشکلات-استفاده-از-postmessage-با-origin-روی-wildcard-چیه) |
-|327| [چطوری از دریافت postMessageهای ناخواسته و ناامن از طرف هکرها جلوگیری کنیم؟](#چطوری-از-دریافت-postMessageهای-ناخواسته-و-ناامن-از-طرف-هکرها-جلوگیری-کنیم) |
-|328| [میتونیم کلا postMessageها رو غیرفعال کنیم؟](#میتونیم-کلا-postMessageها-رو-غیرفعال-کنیم) |
-|329| [آیا postMessageها به صورت synchronous و همزمان کار میکنن؟](#آیا-postMessageها-به-صورت-synchronous-و-همزمان-کار-میکنن) |
-|330| [پارادیم زبان جاواسکریپت چیه؟](#پارادیم-زبان-جاواسکریپت-چیه) |
-|331| [تفاوتهای بین جاواسکریپت داخلی و خارجی چیه؟](#تفاوتهای-بین-جاواسکریپت-داخلی-و-خارجی-چیه) |
-|332| [آیا جاواسکریپت سریعتر از اسکریپتهای سمت سرور است؟](#آیا-جاواسکریپت-سریعتر-از-اسکریپتهای-سمت-سرور-است) |
-|333| [چطوری وضعیت چک بودن یه checkbox رو بدست بیاریم؟](#چطوری-وضعیت-چک-بودن-یه-checkbox-رو-بدست-بیاریم) |
-|334| [هدف از عملگر double-tilde چیه؟](#هدف-از-عملگر-double-tilde-چیه) |
-|335| [چطوری یه کاراکتر رو به کد ASCII تبدیل کنیم؟](#چطوری-یه-کاراکتر-رو-به-کد-ASCII-تبدیل-کنیم) |
-|336| [ArrayBuffer چیه؟](#ArrayBuffer-چیه) |
-|337| [خروجی کد زیر چی خواهد بود؟](#خروجی-کد-زیر-چی-خواهد-بود) |
-|338| [هدف از Error-object چیه؟](#هدف-از-Error-object-چیه) |
-|339| [هدف از EvalError-object چیه؟](#هدف-از-EvalError-object-چیه) |
-|340| [خطاهایی که در حالت strict-mode رخ میدن ولی در غیر اون وجود ندارن کدوما هستن؟](#خطاهایی-که-در-حالت-strict-mode-رخ-میدن-ولی-در-غیر-اون-وجود-ندارن-کدوما-هستن) |
-|341| [آیا همه objectها دارای prototype هستن؟](#آیا-همه-objectها-دارای-prototype-هستن) |
-|342| [تفاوتهای بین parameter و argument چیه؟](#تفاوتهای-بین-parameter-و-argument-چیه) |
-|343| [هدف از متد some روی آرایهها چیه؟](#هدف-از-متد-some-روی-آرایهها-چیه) |
-|344| [چطوری دو یا تعداد بیشتری از آرایهها رو با هم ترکیب کنیم؟](#چطوری-دو-یا-تعداد-بیشتری-از-آرایهها-رو-با-هم-ترکیب-کنیم) |
-|345| [تفاوتهای بین Shallow و Deep کپی چیه؟](#تفاوتهای-بین-Shallow-و-Deep-کپی-چیه) |
-|346| [چطوری میتونیم به یه تعداد مشخص از یه رشته کپی کنیم؟](#چطوری-میتونیم-به-یه-تعداد-مشخص-از-یه-رشته-کپی-کنیم) |
-|347| [چطوری همه stringهای match شده با یه regular-expression رو برگردونیم؟](#چطوری-همه-stringهای-match-شده-با-یه-regular-expression-رو-برگردونیم) |
-|348| [چطوری یه رشته رو از اول یا از آخر trim کنیم؟](#چطوری-یه-رشته-رو-از-اول-یا-از-آخر-trim-کنیم) |
-|349| [خروجی کنسول زیر با عملگر unary چی میشه؟](#خروجی-کنسول-زیر-با-عملگر-unary-چی-میشه) |
-|350| [آیا جاواسکریپت از mixinها استفاده میکنه؟](#آیا-جاواسکریپت-از-mixinها-استفاده-میکنه) |
-|351| [تابع thunk چیه و چیکار میکنه؟](#تابع-thunk-چیه-و-چیکار-میکنه) |
-|352| [thunkهای asynchronous چیکار میکنن؟](#thunkهای-asynchronous-چیکار-میکنن) |
-|353| [خروجی فراخوانیهای توابع زیر چی میشه؟](#خروجی-فراخوانیهای-توابع-زیر-چی-میشه) |
-|354| [چطوری همه خطوط جدید رو از یه رشته حذف کرد؟](#چطوری-همه-خطوط-جدید-رو-از-یه-رشته-حذف-کرد) |
-|355| [تفاوت بین reflow و repaint چیه؟](#تفاوت-بین-reflow-و-repaint-چیه) |
-|356| [اگه قبل از یه آرایه عملگر نفی «!» بزاریم چی میشه؟](#اگه-قبل-از-یه-آرایه-عملگر-نفی-«!»-بزاریم-چی-میشه) |
-|357| [اگه دو تا آرایه رو با هم جمع ببندیم چی میشه؟](#اگه-دو-تا-آرایه-رو-با-هم-جمع-ببندیم-چی-میشه) |
-|358| [اگه عملگر جمع «+» روی قبل از مقادیر falsy قرار بدیم چی میشه؟](#اگه-عملگر-جمع-«+»-روی-قبل-از-مقادیر-falsy-قرار-بدیم-چی-میشه) |
-|359| [چطوری با استفاده از آرایهها و عملگرهای منطقی میتونیم رشته self رو تولید کنیم؟](#چطوری-با-استفاده-از-آرایهها-و-عملگرهای-منطقی-میتونیم-رشته-self-رو-تولید-کنیم) |
-|360| [چطوری میتونیم مقادیر falsy رو از آرایه حذف کنیم؟](#چطوری-میتونیم-مقادیر-falsy-رو-از-آرایه-حذف-کنیم) |
-|361| [چطوری مقادیر تکراری رو از یه آرایه حذف کنیم؟](#چطوری-مقادیر-تکراری-رو-از-یه-آرایه-حذف-کنیم) |
-|362| [aliaseهای همزمان با destructuring چطوری کار میکنن؟](#aliaseهای-همزمان-با-destructuring-چطوری-کار-میکنن) |
-|363| [چطوری آیتمهای یه آرایه رو بدون استفاده از متد map پیمایش کنیم؟](#چطوری-آیتمهای-یه-آرایه-رو-بدون-استفاده-از-متد-map-پیمایش-کنیم) |
-|364| [چطوری یه آرایه رو خالی کنیم؟](#چطوری-یه-آرایه-رو-خالی-کنیم) |
-|365| [چطوری اعداد رو با تعداد رقم اعشار مشخص رند میکنی؟](#چطوری-اعداد-رو-با-تعداد-رقم-اعشار-مشخص-رند-میکنی) |
-|366| [سادهترین روش برای تبدیل آرایه به object چیه؟](#سادهترین-روش-برای-تبدیل-آرایه-به-object-چیه) |
-|367| [چطوری یه آرایه با یه سری داده درست کنیم؟](#چطوری-یه-آرایه-با-یه-سری-داده-درست-کنیم) |
-|368| [متغیرهای موجود روی آبجکت console کدوما هستن؟](#متغیرهای-موجود-روی-آبجکت-console-کدوما-هستن) |
-|369| [میشه پیامهای کنسول رو استایلدهی کرد؟](#میشه-پیامهای-کنسول-رو-استایلدهی-کرد) |
-|370| [هدف از متد dir روی آبجکت console چیه؟](#هدف-از-متد-dir-روی-آبجکت-console-چیه) |
-|371| [آیا میشه المنتهای HTML رو توی console دیباگ کرد؟](#آیا-میشه-المنتهای-HTML-رو-توی-console-دیباگ-کرد) |
-|372| [چطوری میشه دادهها رو به شکل جدولی توی console نمایش بدیم؟](#چطوری-میشه-دادهها-رو-به-شکل-جدولی-توی-console-نمایش-بدیم) |
-|373| [چطوری میشه بررسی کرد که یه پارامتر Number هست یا نه؟](#چطوری-میشه-بررسی-کرد-که-یه-پارامتر-Number-هست-یا-نه) |
-|374| [چطوری یه متن رو میتونیم به clipboard کپی کنیم؟](#چطوری-یه-متن-رو-میتونیم-به-clipboard-کپی-کنیم) |
-|375| [چطوری میشه timestamp رو بدست آورد؟](#چطوری-میشه-timestamp-رو-بدست-آورد) |
-|376| [چطوری یه آرایه چندسطحی رو تک سطحی کنیم؟](#چطوری-یه-آرایه-چندسطحی-رو-تک-سطحی-کنیم) |
-|377| [سادهترین روش برای بررسی چندشرطی چیه؟](#سادهترین-روش-برای-بررسی-چندشرطی-چیه) |
-|378| [چطوری کلیک روی دکمه برگشت مرورگر رو متوجه بشیم؟](#چطوری-کلیک-روی-دکمه-برگشت-مرورگر-رو-متوجه-بشیم) |
-|379| [چطوری میتونیم کلیک راست رو غیرفعال کنیم؟](#چطوری-میتونیم-کلیک-راست-رو-غیرفعال-کنیم) |
-|380| [object-wrapperها چی هستن؟](#object-wrapperها-چی-هستن) |
-|381| [AJAX چیه؟](#AJAX-چیه) |
-|382| [روشهای مختلف مدیریت یه کد Asynchronous چیه؟](#روشهای-مختلف-مدیریت-یه-کد-Asynchronous-چیه) |
-|383| [چطوری یه درخواست fetch رو کنسل کنیم؟](#چطوری-یه-درخواست-fetch-رو-کنسل-کنیم) |
-|384| [Speech-API چیه؟](#Speech-API-چیه) |
-|385| [حداقل timeout توی throttling چقدره؟](#حداقل-timeout-توی-throttling-چقدره) |
-|386| [چطوری میشه یه timeout صفر توی مرورگر اجرا کرد؟](#چطوری-میشه-یه-timeout-صفر-توی-مرورگر-اجرا-کرد) |
-|387| [taskها توی event-loop چی هستن؟](#taskها-توی-event-loop-چی-هستن) |
-|388| [microtaskها چی هستن؟](#microtaskها-چی-هستن) |
-|389| [event-loopهای مختلف کدوما هستن؟](#event-loopهای-مختلف-کدوما-هستن) |
-|390| [هدف از queueMicrotask چیه؟](#هدف-از-queueMicrotask-چیه) |
-|391| [چطوری میشه از کتابخونههای جاواسکریپت توی فایل typescript استفاده کرد؟](#چطوری-میشه-از-کتابخونههای-جاواسکریپت-توی-فایل-typescript-استفاده-کرد) |
-|392| [تفاوتهای بین promiseها و observableها کدوما هستن؟](#تفاوتهای-بین-promiseها-و-observableها-کدوما-هستن) |
-|393| [heap چیه؟](#heap-چیه) |
-|394| [event-table چیه؟](#event-table-چیه) |
-|395| [صف microTask چیه؟](#صف-microTask-چیه) |
-|396| [تفاوت بین shim و polyfill چیه؟](#تفاوت-بین-shim-و-polyfill-چیه) |
-|397| [چطوری متوجه primitive یا غیر primitive بودن یه نوع داده میشیم؟](#چطوری-متوجه-primitive-یا-غیر-primitive-بودن-یه-نوع-داده-میشیم) |
-|398| [babel چیه؟](#babel-چیه) |
-|399| [آیا Node.js به شکل کامل تک thread کار میکنه؟](#آیا-Nodejs-به-شکل-کامل-تک-thread-کار-میکنه) |
-|400| [کاربردهای مرسوم observableها کدوما هستن؟](#کاربردهای-مرسوم-observableها-کدوما-هستن) |
-|401| [RxJS چیه؟](#RxJS-چیه) |
-|402| [تفاوت بین Function-constructor و function-declaration چیه؟](#تفاوت-بین-Function-constructor-و-function-declaration-چیه) |
-|403| [شرط Short-circuit یا اتصال کوتاه چیه؟](#شرط-Short-circuit-یا-اتصال-کوتاه-چیه) |
-|404| [سادهترین روش برای تغییر سایز یه آرایه چیه؟](#سادهترین-روش-برای-تغییر-سایز-یه-آرایه-چیه) |
-|405| [observable چیه؟](#observable-چیه) |
-|406| [تفاوتهای بین توابع و کلاسها چیه؟](#تفاوتهای-بین-توابع-و-کلاسها-چیه) |
-|407| [تابع async چیه؟](#تابع-async-چیه) |
-|408| [چطوری خطاهای ایجاد شده هنگام استفاده از promiseها رو کنترل کنیم؟](#چطوری-خطاهای-ایجاد-شده-هنگام-استفاده-از-promiseها-رو-کنترل-کنیم) |
-|409| [Deno چیه؟](#Deno-چیه) |
-|410| [توی جاواسکریپت چطوری یه object قابل پیمایش درست کنیم؟](#توی-جاواسکریپت-چطوری-یه-object-قابل-پیمایش-درست-کنیم) |
-|411| [روش مناسب برای فراخوانی توابع بازگشتی چیه؟](#روش-مناسب-برای-فراخوانی-توابع-بازگشتی-چیه) |
-|412| [چطوری بررسی کنیم که یه آبجکت promise هست یا نه؟](#چطوری-بررسی-کنیم-که-یه-آبجکت-promise-هست-یا-نه) |
-|413| [چطوری متوجه بشیم که یا تابع با تابع constructor صدا زده شده یا نه؟](#چطوری-متوجه-بشیم-که-یا-تابع-با-تابع-constructor-صدا-زده-شده-یا-نه) |
-|414| [تفاوتهای بین آبجکت argument و پارامتر rest چیه؟](#تفاوتهای-بین-آبجکت-argument-و-پارامتر-rest-چیه) |
-|415| [تفاوتهای بین عملگر spread و پارامتر rest چیه؟](#تفاوتهای-بین-عملگر-spread-و-پارامتر-rest-چیه) |
-|416| [نوعهای مختلف generatorها کدوما هستن؟](#نوعهای-مختلف-generatorها-کدوما-هستن) |
-|417| [iterableهای built-in کدوما هستن؟](#iterableهای-built-in-کدوما-هستن) |
-|418| [تفاوتهای بین حلقه for...of و for...in چیه؟](#تفاوتهای-بین-حلقه-forof-و-forin-چیه) |
-|419| [چطوری propertyهای instance و غیر instanceای تعریف میکنی؟](#چطوری-propertyهای-instance-و-غیر-instanceای-تعریف-میکنی) |
-|420| [تفاوتهای بین isNaN و Number.isNaN کدوما هستن؟](#تفاوتهای-بین-isNaN-و-NumberisNaN-کدوما-هستن) |
+| ردیف | سوال | صفحه |
+| ---- | --------- | ------- |
+|1 | [روشهای ایجاد objects توی جاواسکریپت چیا هستن؟](#روشهای-ایجاد-objects-توی-جاواسکریپت-چیا-هستن) | |
+|2 | [زنجیره prototype چیه؟](#زنجیره-prototype-چیه) | |
+|3 | [تفاوتهای بین Call، Apply و Bind چیا هستن؟](#تفاوتهای-بین-Call،-Apply-و-Bind-چیا-هستن) | |
+|4 | [فرمت JSON چیه و عملیاتهای معمول بر روی آن چیا هستن؟](#فرمت-JSON-چیه-و-عملیاتهای-معمول-بر-روی-آن-چیا-هستن) | |
+|5 | [هدف از متد slice روی آرایهها چیه؟](#هدف-از-متد-slice-روی-آرایهها-چیه) | |
+|6 | [هدف از متد splice روی آرایهها چیه؟](#هدف-از-متد-splice-روی-آرایهها-چیه) | |
+|7 | [تفاوت متدهای slice و splice چیا هستن؟](#تفاوت-متدهای-slice-و-splice-چیا-هستن) | |
+|8 | [تفاوتهای Object و Map چیا هستن؟](#تفاوتهای-Object-و-Map-چیا-هستن) | |
+|9 | [تفاوتهای بین عملگرهای == و === چیا هستن؟](#تفاوتهای-بین-عملگرهای-و-چیا-هستن) | |
+|10 | [توابع lambda یا arrow-function چی هستن؟](#توابع-lambda-یا-arrow-function-چی-هستن) | |
+|11 | [یه تابع first-class چجور تابعیـه؟](#یه-تابع-first-class-چجور-تابعیـه) | |
+|12 | [یه تابع first-order چجور تابعیـه؟](#یه-تابع-first-order-چجور-تابعیـه) | |
+|13 | [یه تابع higher-order چجور تابعیـه؟](#یه-تابع-higher-order-چجور-تابعیـه) | |
+|14 | [یه تابع unary چجور تابعیـه؟](#یه-تابع-unary-چجور-تابعیـه) | |
+|15 | [currying توابع یعنی چی؟](#currying-توابع-یعنی-چی) | |
+|16 | [چه توابعی pure هستن؟](#چه-توابعی-pure-هستن) | |
+|17 | [هدف از کلمه کلیدی let چیه؟](#هدف-از-کلمه-کلیدی-let-چیه) | |
+|18 | [تفاوتهای کلمات کلیدی let و var چیا هستن؟](#تفاوتهای-کلمات-کلیدی-let-و-var-چیا-هستن) | |
+|19 | [دلیل انتخاب کلمه کلیدی let چیه؟](#دلیل-انتخاب-کلمه-کلیدی-let-چیه) | |
+|20 | [چطوری میتونیم توی بلوک مربوط به switch بدون دریافت خطا متغیر تعریف کنیم؟](#چطوری-میتونیم-توی-بلوک-مربوط-به-switch-بدون-دریافت-خطا-متغیر-تعریف-کنیم) | |
+|21 | [Temporal-Dead-Zone چیه؟](#Temporal-Dead-Zone-چیه ) | |
+|22 | [IIFE(توابع بلافاصله صدا زده شده) چی هستن؟](#IIFEتوابع-بلافاصله-صدا-زده-شده-چی-هستن) | |
+|23 | [مزایای استفاده از moduleها چیه؟](#مزایای-استفاده-از-moduleها-چیه) | |
+|24 | [Memoization چیه؟](#Memoization-چیه) | |
+|25 | [Hoisting چیه؟](#Hoisting-چیه) | |
+|26 | [Classها توی ES6 چی هستن؟](#Classها-توی-ES6-چی-هستن) | |
+|27 | [Closureها چیا هستن؟](#Closureها-چیا-هستن) | |
+|28 | [Moduleها چیا هستن؟](#Moduleها-چیا-هستن) | |
+|29 | [چرا به moduleها نیاز داریم؟](#چرا-به-moduleها-نیاز-داریم) | |
+|30 | [توی جاواسکریپت scope چیه و چیکار میکنه؟](#توی-جاواسکریپت-scope-چیه-و-چیکار-میکنه) | |
+|31 | [service-worker چیه؟](#service-worker-چیه) | |
+|32 | [توی service-worker چطوری میشه DOM رو دستکاری کرد؟](#توی-service-worker-چطوری-میشه-DOM-رو-دستکاری-کرد) | |
+|33 | [چطوری میتونیم بین ریست شدنهای service-worker دادههای مورد نظرمون رو مجدد استفاده کنیم؟](#چطوری-میتونیم-بین-ریست-شدنهای-service-worker-دادههای-مورد-نظرمون-رو-مجدد-استفاده-کنیم) | |
+|34 | [IndexedDB چیه؟](#IndexedDB-چیه) | |
+|35 | [Web-storage چیه؟](#Web-storage-چیه) | |
+|36 | [Post-message چیه؟](#Post-message-چیه) | |
+|37 | [Cookie چیه؟](#Cookie-چیه) | |
+|38 | [چرا به cookie نیاز داریم؟](#چرا-به-cookie-نیاز-داریم) | |
+|39 | [گزینههای قابل تنظیم توی cookie چیا هستن؟](#گزینههای-قابل-تنظیم-توی-cookie-چیا-هستن) | |
+|40 | [چطوری میشه یه cookie رو حذف کرد؟](#چطوری-میشه-یه-cookie-رو-حذف-کرد) | |
+|41 | [تفاوتهای بین cookie، local-storage و session-storage چیا هستن؟](#تفاوتهای-بین-cookie،-local-storage-و-session-storage-چیا-هستن) | |
+|42 | [تفاوتهای بین localStorage و sessionStorage چیا هستن؟](#تفاوتهای-بین-localStorage-و-sessionStorage-چیا-هستن) | |
+|43 | [چطوری به web-storage دسترسی پیدا میکنی؟](#چطوری-به-web-storage-دسترسی-پیدا-میکنی) | |
+|44 | [چه متدهایی روی session-storage قابل استفاده هستن؟](#چه-متدهایی-روی-session-storage-قابل-استفاده-هستن) | |
+|45 | [رخداد storage چیه و چطوری ازش استفاده میکنیم؟](#رخداد-storage-چیه-و-چطوری-ازش-استفاده-میکنیم) | |
+|46 | [چرا به web-storage نیاز داریم؟](#چرا-به-web-storage-نیاز-داریم) | |
+|47 | [چطوری میتونیم پشتیبانی از web-storage توسط مرورگر رو بررسی کنیم؟](#چطوری-میتونیم-پشتیبانی-از-web-storage-توسط-مرورگر-رو-بررسی-کنیم) | |
+|48 | [چطوری میتونیم پشتیبانی از web-worker توسط مرورگر رو بررسی کنیم؟](#چطوری-میتونیم-پشتیبانی-از-web-worker-توسط-مرورگر-رو-بررسی-کنیم) | |
+|49 | [یه مثال از web-workerها میتونی بزنی؟](#یه-مثال-از-web-workerها-میتونی-بزنی) | |
+|50 | [محدودیتهای web-workerها روی DOM چیا هستن؟](#محدودیتهای-web-workerها-روی-DOM-چیا-هستن) | |
+|51 | [Promise چیه؟](#Promise-چیه ) | |
+|52 | [چرا به promise نیاز داریم؟](#چرا-به-promise-نیاز-داریم) | |
+|53 | [سه تا وضعیت ممکن برای یه promise چیا هستن؟](#سه-تا-وضعیت-ممکن-برای-یه-promise-چیا-هستن) | |
+|54 | [توابع callback چی هستن؟](#توابع-callback-چی-هستن) | |
+|55 | [چرا به توابع callback نیاز داریم؟](#چرا-به-توابع-callback-نیاز-داریم) | |
+|56 | [Callback-hell یا جهنم توابع callback چیه؟](#Callback-hell-یا-جهنم-توابع-callback-چیه ) | |
+|57 | [Server-sent-events(SSE) چیه؟](#Server-sent-eventsSSE-چیه ) | |
+|58 | [چطوری میتونیم اعلانهای server-sent-event رو دریافت کنیم؟](#چطوری-میتونیم-اعلانهای-server-sent-event-رو-دریافت-کنیم) | |
+|59 | [چطوری میتونیم پشتیبانی مرورگر برای SSE رو بررسی کنیم؟](#چطوری-میتونیم-پشتیبانی-مرورگر-برای-SSE-رو-بررسی-کنیم) | |
+|60 | [کدوم توابع روی SSE وجود دارن؟](#کدوم-توابع-روی-SSE-وجود-دارن) | |
+|61 | [اصلیترین قوانین promiseها چیا هستن؟](#اصلیترین-قوانین-promiseها-چیا-هستن) | |
+|62 | [Callback توی callback چطوری رخ میده؟](#Callback-توی-callback-چطوری-رخ-میده ) | |
+|63 | [زنجیره promiseها چیه؟](#زنجیره-promiseها-چیه) | |
+|64 | [کاربرد متد promise.all چیه؟](#کاربرد-متد-promise.all-چیه) | |
+|65 | [هدف از متد race روی promise چیه؟](#هدف-از-متد-race-روی-promise-چیه) | |
+|66 | [حالت strict توی جاواسکریپت چی کار میکنه؟](#حالت-strict-توی-جاواسکریپت-چی-کار-میکنه) | |
+|67 | [چرا به حالت strict نیاز داریم؟](#چرا-به-حالت-strict-نیاز-داریم) | |
+|68 | [چطوری میتونیم حالت strict رو فعال کنیم؟](#چطوری-میتونیم-حالت-strict-رو-فعال-کنیم) | |
+|69 | [هدف از عملگر نقیض دوتایی(!!) چیه؟](#هدف-از-عملگر-نقیض-دوتایی!!-چیه) | |
+|70 | [هدف از عملگر delete چیه؟](#هدف-از-عملگر-delete-چیه) | |
+|71 | [عملگر typeof چیکار میکنه؟](#عملگر-typeof-چیکار-میکنه) | |
+|72 | [undefined چیه و چه زمانی undefined میگیریم؟](#undefined-چیه-و-چه-زمانی-undefined-میگیریم ) | |
+|73 | [null چیه؟](#null-چیه ) | |
+|74 | [تفاوتهای بین null و undefined چیا هستن؟](#تفاوتهای-بین-null-و-undefined-چیا-هستن) | |
+|75 | [eval چیه؟](#eval-چیه ) | |
+|76 | [تفاوتهای بین window و document چیا هستن؟](#تفاوتهای-بین-window-و-document-چیا-هستن) | |
+|77 | [توی جاواسکریپت چطوری میتونیم به history دسترسی داشته باشیم؟](#توی-جاواسکریپت-چطوری-میتونیم-به-history-دسترسی-داشته-باشیم) | |
+|78 | [انواع دادههای جاواسکریپت کدوما هستن؟](#انواع-دادههای-جاواسکریپت-کدوما-هستن) | |
+|79 | [isNaN چیه و چیکار میکنه؟](#isNaN-چیه-و-چیکار-میکنه ) | |
+|80 | [تفاوتهای بین undeclared و undefined چیا هستن؟](#تفاوتهای-بین-undeclared-و-undefined-چیا-هستن) | |
+|81 | [کدوم متغیرها عمومی هستن؟](#کدوم-متغیرها-عمومی-هستن) | |
+|82 | [مشکلات متغیرهای عمومی چیا هستن؟](#مشکلات-متغیرهای-عمومی-چیا-هستن) | |
+|83 | [مقدار NaN چیه؟](#مقدار-NaN-چیه) | |
+|84 | [هدف از تابع isFinite چیه؟](#هدف-از-تابع-isFinite-چیه) | |
+|85 | [یه event-flow چیه؟](#یه-event-flow-چیه) | |
+|86 | [Event-bubbling چیه؟](#Event-bubbling-چیه ) | |
+|87 | [Event-capturing چیه؟](#Event-capturing-چیه ) | |
+|88 | [چطوری میشه یه فرم رو با استفاده از جاواسکریپت ثبت کرد؟](#چطوری-میشه-یه-فرم-رو-با-استفاده-از-جاواسکریپت-ثبت-کرد) | |
+|89 | [چطوری میشه به اطلاعات مربوط به سیستم عامل کاربر دسترسی داشت؟](#چطوری-میشه-به-اطلاعات-مربوط-به-سیستم-عامل-کاربر-دسترسی-داشت) | |
+|90 | [تفاوتهای بین رخدادهای document-load و DOMContentLoaded چیا هستن؟](#تفاوتهای-بین-رخدادهای-document-load-و-DOMContentLoaded-چیا-هستن) | |
+|91 | [تفاوتهای بین objectهای native، host و user چیا هستن؟](#تفاوتهای-بین-objectهای-native،-host-و-user-چیا-هستن) | |
+|92 | [کدوم ابزار و تکنیکها برای دیباگ کردن برنامه جاواسکریپتی استفاده میشن؟](#کدوم-ابزار-و-تکنیکها-برای-دیباگ-کردن-برنامه-جاواسکریپتی-استفاده-میشن) | |
+|93 | [مزایا و معایب استفاده از promiseها به جای callback چیا هستن؟](#مزایا-و-معایب-استفاده-از-promiseها-به-جای-callback-چیا-هستن) | |
+|94 | [تفاوتهای بین attribute و property روی DOM چیا هستن؟](#تفاوتهای-بین-attribute-و-property-روی-DOM-چیا-هستن) | |
+|95 | [سیاست same-origin چیه؟](#سیاست-same-origin-چیه) | |
+|96 | [هدف استفاده از void 0 چیه؟](#هدف-استفاده-از-void-0-چیه) | |
+|97 | [جاواسکریپت یه زبان تفسیری هست یا کامپایلری؟](#جاواسکریپت-یه-زبان-تفسیری-هست-یا-کامپایلری) | |
+|98 | [آیا جاواسکریپت یه زبان حساس به بزرگی و کوچکی(case-sensitive) حروف است؟](#آیا-جاواسکریپت-یه-زبان-حساس-به-بزرگی-و-کوچکیcase-sensitive-حروف-است) | |
+|99 | [ارتباطی بین Java و JavaScript وجود داره؟](#ارتباطی-بین-Java-و-JavaScript-وجود-داره) | |
+|100| [Eventها چی هستن؟](#Eventها-چی-هستن) | |
+|101| [کی جاواسکریپت رو ساخته؟](#کی-جاواسکریپت-رو-ساخته) | |
+|102| [هدف از متد preventDefault چیه؟](#هدف-از-متد-preventDefault-چیه) | |
+|103| [کاربرد متد stopPropagation چیه؟](#کاربرد-متد-stopPropagation-چیه) | |
+|104| [مراحلی که موقع استفاده از return false توی یه event-handler رخ میده چیا هستن؟](#مراحلی-که-موقع-استفاده-از-return-false-توی-یه-event-handler-رخ-میده-چیا-هستن) | |
+|105| [BOM چیه؟](#BOM-چیه) | |
+|106| [موارد استفاده از setTimeout کدوما هستن؟](#موارد-استفاده-از-setTimeout-کدوما-هستن) | |
+|107| [موارد استفاده از setInterval کدوما هستن؟](#موارد-استفاده-از-setInterval-کدوما-هستن) | |
+|108| [چرا جاواسکریپت رو به عنوان یه زبان تک thread میشناسن؟](#چرا-جاواسکریپت-رو-به-عنوان-یه-زبان-تک-thread-میشناسن) | |
+|109| [Event-delegation چیه؟](#Event-delegation-چیه) | |
+|110| [ECMAScript چیه؟](#ECMAScript-چیه) | |
+|111| [JSON چیه؟](#JSON-چیه) | |
+|112| [قوانین فرمت JSON کدوما هستن؟](#قوانین-فرمت-JSON-کدوما-هستن) | |
+|113| [هدف از متد JSON.stringify چیه؟](#هدف-از-متد-JSON.stringify-چیه) | |
+|114| [چطوری میتونیم یه رشته(string) JSON رو تجزیه کنیم؟](#چطوری-میتونیم-یه-رشتهstring-JSON-رو-تجزیه-کنیم) | |
+|115| [چرا به JSON نیاز داریم؟](#چرا-به-JSON-نیاز-داریم) | |
+|116| [PWAها چی هستن؟](#PWAها-چی-هستن) | |
+|117| [هدف از متد clearTimeout چیه؟](#هدف-از-متد-clearTimeout-چیه) | |
+|118| [هدف از متد clearInterval چیه؟](#هدف-از-متد-clearInterval-چیه) | |
+|119| [توی جاواسکریپت، چطوری میشه به یه صفحه جدید redirect انجام داد؟](#توی-جاواسکریپت،-چطوری-میشه-به-یه-صفحه-جدید-redirect-انجام-داد) | |
+|120| [چطوری بررسی میکنین که یه string شامل یه substring هست یا نه؟](#چطوری-بررسی-میکنین-که-یه-string-شامل-یه-substring-هست-یا-نه) | |
+|121| [توی جاواسکریپت، چطوری مقدار یه آدرس email رو اعتبارسنجی میکنین؟](#توی-جاواسکریپت،-چطوری-مقدار-یه-آدرس-email-رو-اعتبارسنجی-میکنین) | |
+|122| [چطوری میتونیم مقدار آدرس url جاری رو بخونیم؟](#چطوری-میتونیم-مقدار-آدرس-url-جاری-رو-بخونیم) | |
+|123| [ویژگیهای مختلف url روی object مربوط به history کدوما هستن؟](#ویژگیهای-مختلف-url-روی-object-مربوط-به-history-کدوما-هستن) | |
+|124| [توی جاواسکریپت چطوری میتونیم مقدار یه query-string رو بخونیم؟](#توی-جاواسکریپت-چطوری-میتونیم-مقدار-یه-query-string-رو-بخونیم) | |
+|125| [چطوری میتونیم بررسی کنیم که آیا یه پراپرتی روی آبجکت وجود داره یا نه؟](#چطوری-میتونیم-بررسی-کنیم-که-آیا-یه-پراپرتی-روی-آبجکت-وجود-داره-یا-نه) | |
+|126| [ری روی یه object حلقه میزنی؟](#چطوری-روی-یه-object-حلقه-میزنی) | |
+|127| [چطوری تست میکنی که یه object خالیه؟](#چطوری-تست-میکنی-که-یه-object-خالیه) | |
+|128| [arguments object چیه؟](#arguments-object-چیه) | |
+|129| [چطوری حرف اول یه رشته رو به حرف بزرگ تبدیل میکنی؟](#چطوری-حرف-اول-یه-رشته-رو-به-حرف-بزرگ-تبدیل-میکنی) | |
+|130| [مزایا و معایب حلقه for چیا هستن؟](#مزایا-و-معایب-حلقه-for-چیا-هستن) | |
+|131| [چطوری تاریخ جاری رو توی جاواسکریپت نشون میدی؟](#چطوری-تاریخ-جاری-رو-توی-جاواسکریپت-نشون-میدی) | |
+|132| [چطوری دو تا date object رو با هم مقایسه میکنی؟](#چطوری-دو-تا-date-object-رو-با-هم-مقایسه-میکنی) | |
+|133| [چطوری بررسی میکنی که یه رشته با یه رشته دیگه شروع میشه؟](#چطوری-بررسی-میکنی-که-یه-رشته-با-یه-رشته-دیگه-شروع-میشه) | |
+|134| [چطوری یه رشته رو trim میکنی؟](#چطوری-یه-رشته-رو-trim-میکنی) | |
+|135| [توی جاواسکریپت چطوری میتونیم یه زوج مرتب از key یه valueها بسازیم؟](#توی-جاواسکریپت-چطوری-میتونیم-یه-زوج-مرتب-از-key-یه-valueها-بسازیم) | |
+|136| [آیا عبارت '!--' عملگر خاصی هست؟](#آیا-عبارت-!---عملگر-خاصی-هست) | |
+|137| [چطوری میتونیم به متغیرهامون مقادیر اولیه بدیم؟](#چطوری-میتونیم-به-متغیرهامون-مقادیر-اولیه-بدیم) | |
+|138| [چطوری میتونیم متنهای چند خطی درست کنیم؟](#چطوری-میتونیم-متنهای-چند-خطی-درست-کنیم) | |
+|139| [مدل app-shell چیه؟](#مدل-app-shell-چیه) | |
+|140| [چطوری میتونیم روی یه تابع property اضافه کنیم؟](#چطوری-میتونیم-روی-یه-تابع-property-اضافه-کنیم) | |
+|141| [چطوری میتونیم تعداد پارامترهای ورودی یه تابع رو به دست بیاریم؟](#چطوری-میتونیم-تعداد-پارامترهای-ورودی-یه-تابع-رو-به-دست-بیاریم) | |
+|142| [Polyfill چیه؟](#Polyfill-چیه) | |
+|143| [عبارات Break و continue چی هستن؟](#عبارات-Break-و-continue-چی-هستن) | |
+|144| [توی جاواسکریپت labelها چیکار میکنن؟](#توی-جاواسکریپت-labelها-چیکار-میکنن) | |
+|145| [مزایای declare کردن متغیرها در اوایل کد چیه؟](#مزایای-declare-کردن-متغیرها-در-اوایل-کد-چیه) | |
+|146| [مزایای مقداردهی اولیه متغیرها چیه؟](#مزایای-مقداردهی-اولیه-متغیرها-چیه) | |
+|147| [روش توصیه شده برای ایجاد object چیه؟](#روش-توصیه-شده-برای-ایجاد-object-چیه) | |
+|148| [چطوری میتونیم آرایه JSON تعریف کنیم؟](#چطوری-میتونیم-آرایه-JSON-تعریف-کنیم) | |
+|149| [چطوری میتونیم اعداد تصادفی تولید کنیم؟](#چطوری-میتونیم-اعداد-تصادفی-تولید-کنیم) | |
+|150| [میتونی یه تابع تولید اعداد تصادفی توی یه بازه مشخص بنویسی؟](#میتونی-یه-تابع-تولید-اعداد-تصادفی-توی-یه-بازه-مشخص-بنویسی) | |
+|151| [Tree-shaking چیه؟](#Tree-shaking-چیه) | |
+|152| [دلایل نیاز به tree-shaking کدوما هستن؟](#دلایل-نیاز-به-tree-shaking-کدوما-هستن) | |
+|153| [آیا استفاده از eval توصیه میشه؟](#آیا-استفاده-از-eval-توصیه-میشه) | |
+|154| [Regular-Expression چیه؟](#Regular-Expression-چیه) | |
+|155| [متدهای رشته که روی Regular-expression مجاز هستن کدوماست؟](#متدهای-رشته-که-روی-Regular-expression-مجاز-هستن-کدوماست) | |
+|156| [توی Regex بخش modifiersها چیکار میکنه؟](#توی-Regex-بخش-modifiersها-چیکار-میکنه) | |
+|157| [پترنهای regular-expression چیه؟](#پترنهای-regular-expression-چیه) | |
+|158| [آبجکت RegExp چیه؟](#آبجکت-RegExp-چیه) | |
+|159| [چطوری روی یه رشته دنبال یه پترن RegExp میگردی؟](#چطوری-روی-یه-رشته-دنبال-یه-پترن-RegExp-میگردی) | |
+|160| [هدف از متد exec چیه؟](#هدف-از-متد-exec-چیه) | |
+|161| [چطوری استایلهای یه المنت HTML رو تغییر میدی؟](#چطوری-استایلهای-یه-المنت-HTML-رو-تغییر-میدی) | |
+|162| [نتیجه عبارت 1+2+'3' چی میشه؟](#نتیجه-عبارت-1+2+3-چی-میشه) | |
+|163| [عبارت debugger چیکار میکنه؟](#عبارت-debugger-چیکار-میکنه) | |
+|164| [هدف از breakpointها توی debugging چیه؟](#هدف-از-breakpointها-توی-debugging-چیه) | |
+|165| [آیا میتونیم از عبارتهای رزرو شده در تعریف identifierها(اسم متغیر، کلاس و ...) استفاده کنیم؟](#آیا-میتونیم-از-عبارتهای-رزرو-شده-در-تعریف-identifierهااسم-متغیر،-کلاس-و--استفاده-کنیم) | |
+|166| [چطوری تشخیص بدیم که یه مرورگر mobile هست یا نه؟](#چطوری-تشخیص-بدیم-که-یه-مرورگر-mobile-هست-یا-نه) | |
+|167| [چطوری بدون Regex تشخیص بدیم که یه مرورگر mobile هست یا نه؟](#چطوری-بدون-Regex-تشخیص-بدیم-که-یه-مرورگر-mobile-هست-یا-نه) | |
+|168| [چطوری طول و عرض یه تصویر رو با جاواسکریپت به دست میاری؟](#چطوری-طول-و-عرض-یه-تصویر-رو-با-جاواسکریپت-به-دست-میاری) | |
+|169| [چطوری درخواستهای synchronous HTTP بزنیم؟](#چطوری-درخواستهای-synchronous-HTTP-بزنیم) | |
+|170| [چطوری درخواستهای asynchronous HTTP بزنیم؟](#چطوری-درخواستهای-asynchronous-HTTP-بزنیم) | |
+|171| [چطوری یه تاریخ رو به یه تاریخ در timezone دیگه تبدیل کنیم؟](#چطوری-یه-تاریخ-رو-به-یه-تاریخ-در-timezone-دیگه-تبدیل-کنیم) | |
+|172| [چه propertyهایی برای اندازهگیزی سایز window به کار میره؟](#چه-propertyهایی-برای-اندازهگیزی-سایز-window-به-کار-میره) | |
+|173| [عملگر شرطی سه گانه توی جاواسکریپت چیه؟](#عملگر-شرطی-سه-گانه-توی-جاواسکریپت-چیه) | |
+|174| [آیا میشه روی عملگر شرطی زنجیره شرطها رو اعمال کرد؟](#آیا-میشه-روی-عملگر-شرطی-زنجیره-شرطها-رو-اعمال-کرد) | |
+|175| [روشهای اجرای جاواسکریپت بعد از لود شدن صفحه کدوما هستن؟](#روشهای-اجرای-جاواسکریپت-بعد-از-لود-شدن-صفحه-کدوما-هستن) | |
+|176| [تفاوتهای بین proto و prototype کدوما هستن؟](#تفاوتهای-بین-proto-و-prototype-کدوما-هستن) | |
+|177| [میتونی یه مثال از زمانی که واقعا به سمیکولون( ; ) نیاز هست بزنی؟](#میتونی-یه-مثال-از-زمانی-که-واقعا-به-سمیکولون-نیاز-هست-بزنی) | |
+|178| [متد freeze چیکار میکنه؟](#متد-freeze-چیکار-میکنه) | |
+|179| [هدف از متد freeze چیه؟](#هدف-از-متد-freeze-چیه) | |
+|180| [چرا به متد freeze نیاز داریم؟](#چرا-به-متد-freeze-نیاز-داریم) | |
+|181| [چطوری میتونیم زبان ترجیحی یه مرورگر رو تشخیص بدیم؟](#چطوری-میتونیم-زبان-ترجیحی-یه-مرورگر-رو-تشخیص-بدیم) | |
+|182| [چطوری میتونیم حرف اول همه کلمات یه رشته رو به حرف بزرگ تبدیل کنیم؟](#چطوری-میتونیم-حرف-اول-همه-کلمات-یه-رشته-رو-به-حرف-بزرگ-تبدیل-کنیم) | |
+|183| [چطوری میشه تشخیص داد که جاواسکریپت یه صفحه وب غیرفعال شده؟](#چطوری-میشه-تشخیص-داد-که-جاواسکریپت-یه-صفحه-وب-غیرفعال-شده) | |
+|184| [عملگرهای پشتیبانی شده توسط جاواسکریپت کدوما هستن؟](#عملگرهای-پشتیبانی-شده-توسط-جاواسکریپت-کدوما-هستن) | |
+|185| [پارامتر rest چیکار میکنه؟](#پارامتر-rest-چیکار-میکنه) | |
+|186| [اگه پارامتر rest رو به عنوان آخرین پارامتر استفاده نکنیم چی میشه؟](#اگه-پارامتر-rest-رو-به-عنوان-آخرین-پارامتر-استفاده-نکنیم-چی-میشه) | |
+|187| [عملگرهای منطقی باینری توی جاواسکریپت کدوما هستن؟](#عملگرهای-منطقی-باینری-توی-جاواسکریپت-کدوما-هستن) | |
+|188| [عملگر spread چیکار میکنه؟](#عملگر-spread-چیکار-میکنه) | |
+|189| [چطوری تشخیص میدی که یه آبجکت freeze شده یا نه؟](#چطوری-تشخیص-میدی-که-یه-آبجکت-freeze-شده-یا-نه) | |
+|190| [چطوری بررسی کنیم که دو تا مقدار(شامل آبجکت) با هم برابرن یا نه؟](#چطوری-بررسی-کنیم-که-دو-تا-مقدارشامل-آبجکت-با-هم-برابرن-یا-نه) | |
+|191| [هدف از متد is روی object چیه؟](#هدف-از-متد-is-روی-object-چیه) | |
+|192| [چطوری propertyهای یه object رو به یه object دیگه کپی میکنی؟](#چطوری-propertyهای-یه-object-رو-به-یه-object-دیگه-کپی-میکنی) | |
+|193| [کاربردهای ممتد assign چیه؟](#کاربردهای-ممتد-assign-چیه) | |
+|194| [آبجکت proxy چیه؟](#آبجکت-proxy-چیه) | |
+|195| [هدف از متد seal چیه؟](#هدف-از-متد-seal-چیه) | |
+|196| [کاربردهای متد seal چیه؟](#کاربردهای-متد-seal-چیه) | |
+|197| [تفاوتهای بین متدهای freeze و seal چیا هست؟](#تفاوتهای-بین-متدهای-freeze-و-seal-چیا-هست) | |
+|198| [چطوری تشخیص میدی که یه آبجکت seal شده یا نه؟](#چطوری-تشخیص-میدی-که-یه-آبجکت-seal-شده-یا-نه) | |
+|199| [چطوری کلید و مقدارهای enumerable رو به دست میاری؟](#چطوری-کلید-و-مقدارهای-enumerable-رو-به-دست-میاری) | |
+|200| [تفاوتهای بین متدهای Object.values و Object.entries چیا هست؟](#تفاوتهای-بین-متدهای-Objectvalues-و-Objectentries-چیا-هست) | |
+|201| [چطوری لیست کلیدهای یه object رو بدست میاری؟](#چطوری-لیست-کلیدهای-یه-object-رو-بدست-میاری) | |
+|202| [چطوری یه object با prototype درست میکنی؟](#چطوری-یه-object-با-prototype-درست-میکنی) | |
+|203| [WeakSet چیه؟](#WeakSet-چیه) | |
+|204| [تفاوتهای بین WeakSet و Set کدوما هستن؟](#تفاوتهای-بین-WeakSet-و-Set-کدوما-هستن) | |
+|205| [لیست متدهایی که رو WeakSet قابل استفاده هستن رو میتونی بگی؟](#لیست-متدهایی-که-رو-WeakSet-قابل-استفاده-هستن-رو-میتونی-بگی) | |
+|206| [WeakMap چیه؟](#WeakMap-چیه) | |
+|207| [تفاوتهای بین WeakMap و Map کدوما هستن؟](#تفاوتهای-بین-WeakMap-و-Map-کدوما-هستن) | |
+|208| [لیست متدهایی که رو WeakMap قابل استفاده هستن رو میتونی بگی؟](#لیست-متدهایی-که-رو-WeakMap-قابل-استفاده-هستن-رو-میتونی-بگی) | |
+|209| [هدف از متد uneval چیه؟](#هدف-از-متد-uneval-چیه) | |
+|210| [چطوری یه URL رو encode میکنی؟](#چطوری-یه-URL-رو-encode-میکنی) | |
+|211| [چطوری یه URL رو decode میکنی؟](#چطوری-یه-URL-رو-decode-میکنی) | |
+|212| [چطوری محتوای یه صفحه رو پرینت میگیری؟](#چطوری-محتوای-یه-صفحه-رو-پرینت-میگیری) | |
+|213| [تفاوتهای بین uneval و eval چیا هستن؟](#تفاوتهای-بین-uneval-و-eval-چیا-هستن) | |
+|214| [تابع anonymous چیه؟](#تابع-anonymous-چیه) | |
+|215| [تفاوت تقدم بین متغیرهای local و global چطوریه؟](#تفاوت-تقدم-بین-متغیرهای-local-و-global-چطوریه) | |
+|216| [accessorهای جاواسکریپت چیکار میکنن؟](#accessorهای-جاواسکریپت-چیکار-میکنن) | |
+|217| [چطوری روی constructor یه Object یه مقدار تعریف میکنی؟](#چطوری-روی-constructor-یه-Object-یه-مقدار-تعریف-میکنی) | |
+|218| [تفاوتهای بین get و defineProperty چیا هست؟](#تفاوتهای-بین-get-و-defineProperty-چیا-هست) | |
+|219| [مزایای استفاده از Getter و Setter چیه؟](#مزایای-استفاده-از-Getter-و-Setter-چیه) | |
+|220| [میتونیم getter و setter رو با استفاده از متد defineProperty تعریف کنیم؟](#میتونیم-getter-و-setter-رو-با-استفاده-از-متد-defineProperty-تعریف-کنیم) | |
+|221| [هدف استفاده از switch-case چیه؟](#هدف-استفاده-از-switch-case-چیه) | |
+|222| [چه قواعدی برای استفاده از swtich-case باید رعایت بشه؟](#چه-قواعدی-برای-استفاده-از-swtich-case-باید-رعایت-بشه) | |
+|223| [نوع دادههای primitive کدوما هستن؟](#نوع-دادههای-primitive-کدوما-هستن) | |
+|224| [روشهای مختلف دسترسی به propertyهای object کدوما هستن؟](#روشهای-مختلف-دسترسی-به-propertyهای-object-کدوما-هستن) | |
+|225| [قوانین پارامترهای توابع کدوما هستن؟](#قوانین-پارامترهای-توابع-کدوما-هستن) | |
+|226| [آبجکت error چیه؟](#آبجکت-error-چیه) | |
+|227| [چه موقعی خطای syntax دریافت میکنیم؟](#چه-موقعی-خطای-syntax-دریافت-میکنیم) | |
+|228| [عنوان خطاهای مختلف که روی error-object برمیگردن کدوما هستن؟](#عنوان-خطاهای-مختلف-که-روی-error-object-برمیگردن-کدوما-هستن) | |
+|229| [عبارات مختلف که در هنگام مدیریت error استفاده میشن کدوما هستن؟](#عبارات-مختلف-که-در-هنگام-مدیریت-error-استفاده-میشن-کدوما-هستن) | |
+|230| [دو نوع مختلف حلفهها در جاواسکریپت کدوما هستن؟](#دو-نوع-مختلف-حلفهها-در-جاواسکریپت-کدوما-هستن) | |
+|231| [nodejs چیه؟](#nodejs-چیه) | |
+|232| [آبجکت Intl چیه؟](#آبجکت-Intl-چیه) | |
+|233| [چطوری تاریخ و زمان رو بر اساس زبان جاری سیستم کاربر نمایش بدیم؟](#چطوری-تاریخ-و-زمان-رو-بر-اساس-زبان-جاری-سیستم-کاربر-نمایش-بدیم) | |
+|234| [Iterator چیه؟](#Iterator-چیه) | |
+|235| [حلفههای synchronous(همزمان) چطوری کار میکنن؟](#حلفههای-synchronousهمزمان-چطوری-کار-میکنن) | |
+|236| [Event-loop چیه؟](#Event-loop-چیه) | |
+|237| [Call-stack چیه؟](#Call-stack-چیه) | |
+|238| [Event-queue چیه؟](#Event-queue-چیه) | |
+|239| [Decorator چیه؟](#Decorator-چیه) | |
+|240| [مقادیر موجود روی آبجکت Intl کدوما هستن؟](#مقادیر-موجود-روی-آبجکت-Intl-کدوما-هستن) | |
+|241| [عملگر Unary چیه؟](#عملگر-Unary-چیه) | |
+|242| [چطوری المنتهای موجود تو یه آرایه رو مرتب میکنی؟](#چطوری-المنتهای-موجود-تو-یه-آرایه-رو-مرتب-میکنی) | |
+|243| [هدف از تابع مرتبسازی موقع استفاده از متد sort چیه؟](#هدف-از-تابع-مرتبسازی-موقع-استفاده-از-متد-sort-چیه) | |
+|244| [چطوری آیتمهای یه آرایه رو معکوس مرتب کنیم؟](#چطوری-آیتمهای-یه-آرایه-رو-معکوس-مرتب-کنیم) | |
+|245| [چطوری حداقل و حداکثر مقدار یه آرایه رو بدست بیاریم؟](#چطوری-حداقل-و-حداکثر-مقدار-یه-آرایه-رو-بدست-بیاریم) | |
+|246| [چطوری حداقل و حداکثر مقدار یه آرایه رو بدون استفاده از متدهای Math بدست بیاریم؟](#چطوری-حداقل-و-حداکثر-مقدار-یه-آرایه-رو-بدون-استفاده-از-متدهای-Math-بدست-بیاریم) | |
+|247| [عبارت خالی چیه و هدف از استفاده ازش چیه؟](#عبارت-خالی-چیه-و-هدف-از-استفاده-ازش-چیه) | |
+|248| [چطوری metadata یه ماژول رو بدست میاری؟ meta data of a module](#چطوری-metadata-یه-ماژول-رو-بدست-میاری-meta-data-of-a-module) | |
+|249| [عملگر comma چیه و چیکار میکنه؟](#عملگر-comma-چیه-و-چیکار-میکنه) | |
+|250| [مزایای استفاده از عملگر comma چیه؟](#مزایای-استفاده-از-عملگر-comma-چیه) | |
+|251| [Typescript چیه؟](#Typescript-چیه) | |
+|252| [تفاوتهای بین javascript و typescript کدوما هستن؟](#تفاوتهای-بین-javascript-و-typescript-کدوما-هستن) | |
+|253| [مزایای typescript نسبت به javascript چیاست؟](#مزایای-typescript-نسبت-به-javascript-چیاست) | |
+|254| [object-initializer چیه؟](#object-initializer-چیه) | |
+|255| [متد constructor چیه؟](#متد-constructor-چیه) | |
+|256| [اگه متد constructor رو بیش از یه بار توی کلاس بنویسیم چی میشه؟](#اگه-متد-constructor-رو-بیش-از-یه-بار-توی-کلاس-بنویسیم-چی-میشه) | |
+|257| [چطوری متد constructor کلاس والد رو صدا بزنیم؟](#چطوری-متد-constructor-کلاس-والد-رو-صدا-بزنیم) | |
+|258| [چطوری prototype یه object رو به دست میاری؟](#چطوری-prototype-یه-object-رو-به-دست-میاری) | |
+|259| [اگه به متد getPrototype رشته پاس بدیم چی میشه؟](#اگه-به-متد-getPrototype-رشته-پاس-بدیم-چی-میشه) | |
+|260| [چطوری prototype یه object روی یه object دیگه ست کنیم؟](#چطوری-prototype-یه-object-روی-یه-object-دیگه-ست-کنیم) | |
+|261| [چطوری بررسی میکنی که یه object قابل extend هست یا نه؟](#چطوری-بررسی-میکنی-که-یه-object-قابل-extend-هست-یا-نه) | |
+|262| [چطوری جلوی extend یه object رو بگیریم؟](#چطوری-جلوی-extend-یه-object-رو-بگیریم) | |
+|263| [روشهای مختلف برای تبدیل یه object به object غیرقابل extend چیه؟](#روشهای-مختلف-برای-تبدیل-یه-object-به-object-غیرقابل-extend-چیه) | |
+|264| [چطوری propertyهای متعددی رو روی یه object تعریف میکنی؟](#چطوری-propertyهای-متعددی-رو-روی-یه-object-تعریف-میکنی) | |
+|265| [منظور از MEAN توی جاواسکریپت چیه؟ javascript](#منظور-از-MEAN-توی-جاواسکریپت-چیه-javascript) | |
+|266| [Obfuscation توی جاواسکریپت چیه و چیکار میکنه؟ javascript](#Obfuscation-توی-جاواسکریپت-چیه-و-چیکار-میکنه-javascript) | |
+|267| [چه نیازی به Obfuscate کردن داریم؟](#چه-نیازی-به-Obfuscate-کردن-داریم) | |
+|268| [Minification چیه؟](#Minification-چیه) | |
+|269| [مزایای minification یا کم حجمسازی چیه؟](#مزایای-minification-یا-کم-حجمسازی-چیه) | |
+|270| [تفاوتهای بین Obfuscation و Encryption چیه؟](#تفاوتهای-بین-Obfuscation-و-Encryption-چیه) | |
+|271| [ابزارهای مختلف برای minification کدوما هستن؟](#ابزارهای-مختلف-برای-minification-کدوما-هستن) | |
+|272| [چطوری اعتبارسنجی فرم رو با javascript انجام میدی؟](#چطوری-اعتبارسنجی-فرم-رو-با-javascript-انجام-میدی) | |
+|273| [چطوری اعتبارسنجی فرم رو بدون javascript انجام میدی؟](#چطوری-اعتبارسنجی-فرم-رو-بدون-javascript-انجام-میدی) | |
+|274| [متدهای موجود روی DOM برای اعتبارسنجی کدوما هستن؟](#متدهای-موجود-روی-DOM-برای-اعتبارسنجی-کدوما-هستن) | |
+|275| [مقادیر موجود روی DOM برای اعتبارسنجی کدوما هستن؟](#مقادیر-موجود-روی-DOM-برای-اعتبارسنجی-کدوما-هستن) | |
+|276| [مقادیر موجود روی input برای اعتبارسنجی کدوما هستن؟](#مقادیر-موجود-روی-input-برای-اعتبارسنجی-کدوما-هستن) | |
+|277| [یه مثال از استفاده ویژگی rangeOverflow میتونی بزنی؟](#یه-مثال-از-استفاده-ویژگی-rangeOverflow-میتونی-بزنی) | |
+|278| [جاواسکریپت قابلیت استفاده از enum رو پیشفرض توی خودش داره؟](#جاواسکریپت-قابلیت-استفاده-از-enum-رو-پیشفرض-توی-خودش-داره) | |
+|279| [enum چیه؟](#enum-چیه) | |
+|280| [چطوری همه propertyهای یه object رو به دست بیاریم؟](#چطوری-همه-propertyهای-یه-object-رو-به-دست-بیاریم) | |
+|281| [چطوری get property descriptors of an object](#چطوری-get-property-descriptors-of-an-object) | |
+|282| [گزینههایی که موقع تعریف ویژگی object با descriptor داریم کدوما هستن؟](#گزینههایی-که-موقع-تعریف-ویژگی-object-با-descriptor-داریم-کدوما-هستن) | |
+|283| [چطوری کلاسها رو extend میکنی؟](#چطوری-کلاسها-رو-extend-میکنی) | |
+|284| [چطوری آدرس صفحه رو بدون رفرش صفحه عوض کنیم؟](#چطوری-آدرس-صفحه-رو-بدون-رفرش-صفحه-عوض-کنیم) | |
+|285| [چطوری بررسی میکنی که یه آرایه یه مقدار مشخص رو داره یا نه؟](#چطوری-بررسی-میکنی-که-یه-آرایه-یه-مقدار-مشخص-رو-داره-یا-نه) | |
+|286| [چطوری آرایههای scalar رو با هم مقایسه میکنی؟](#چطوری-آرایههای-scalar-رو-با-هم-مقایسه-میکنی) | |
+|287| [چطوری میشه پارامترهای صفحه رو از متد GET گرفت؟](#چطوری-میشه-پارامترهای-صفحه-رو-از-متد-GET-گرفت) | |
+|288| [چطوری اعداد رو میشه سه رقم سه رقم جدا کرد؟](#چطوری-اعداد-رو-میشه-سه-رقم-سه-رقم-جدا-کرد) | |
+|289| [تفاوت بین java و javascript چیه؟](#تفاوت-بین-java-و-javascript-چیه) | |
+|290| [آیا جاواسکریپت namespace رو پشتیبانی میکنه؟](#آیا-جاواسکریپت-namespace-رو-پشتیبانی-میکنه) | |
+|291| [چطوری namespace تعریف میکنی؟](#چطوری-namespace-تعریف-میکنی) | |
+|292| [چطوری میتونیم تکه کد جاواسکریپت داخل یه iframe رو از صفحه والد صدا بزنیم؟](#چطوری-میتونیم-تکه-کد-جاواسکریپت-داخل-یه-iframe-رو-از-صفحه-والد-صدا-بزنیم) | |
+|293| [چطوری میشه اختلاف timezone رو از آبجکت date بگیریم؟](#چطوری-میشه-اختلاف-timezone-رو-از-آبجکت-date-بگیریم) | |
+|294| [چطوری فایلهای CSS و JS رو به شکل داینامیک بارگذاری کنیم؟](#چطوری-فایلهای-CSS-و-JS-رو-به-شکل-داینامیک-بارگذاری-کنیم) | |
+|295| [روشهای مختلف برای پیدا کردن elementها توی DOM کدوما هستن؟](#روشهای-مختلف-برای-پیدا-کردن-elementها-توی-DOM-کدوما-هستن) | |
+|296| [jQuery چیه؟](#jQuery-چیه) | |
+|297| [موتور V8 جاواسکریپت چیه؟](#موتور-V8-جاواسکریپت-چیه) | |
+|298| [چرا ما جاواسکریپت رو به عنوان یه زبان داینامیک میشناسیم؟](#چرا-ما-جاواسکریپت-رو-به-عنوان-یه-زبان-داینامیک-میشناسیم) | |
+|299| [عملگر void چیکار میکنه؟](#عملگر-void-چیکار-میکنه) | |
+|300| [چطوری میشه نمایشگر موس صفحه رو به درحال لود تغییر داد؟](#چطوری-میشه-نمایشگر-موس-صفحه-رو-به-درحال-لود-تغییر-داد) | |
+|301| [چطوری میشه یه حلقه بینهایت درست کرد؟](#چطوری-میشه-یه-حلقه-بینهایت-درست-کرد) | |
+|302| [چرا باید در استفاده از عبارت with تجدیدنظر کرد؟](#چرا-باید-در-استفاده-از-عبارت-with-تجدیدنظر-کرد) | |
+|303| [خروجی این حلقهها چی میشه؟](#خروجی-این-حلقهها-چی-میشه) | |
+|304| [میتونی یه سری از ویژگیهای ES6 رو اسم ببری؟](#میتونی-یه-سری-از-ویژگیهای-ES6-رو-اسم-ببری) | |
+|305| [ES6 چیه؟](#ES6-چیه) | |
+|306| [آیا میتونیم متغیرهای تعریف شده با let و const رو مجددا declare کنیم؟](#آیا-میتونیم-متغیرهای-تعریف-شده-با-let-و-const-رو-مجددا-declare-کنیم) | |
+|307| [آیا استفاده از const برای تعریف متغیر اونا رو immutable میکنه؟](#آیا-استفاده-از-const-برای-تعریف-متغیر-اونا-رو-immutable-میکنه) | |
+|308| [parameterهای پیشفرض چی هستن؟](#parameterهای-پیشفرض-چی-هستن) | |
+|309| [template-literalها چی هستن؟](#template-literalها-چی-هستن) | |
+|310| [چطوری رشتههای چند خطی رو توی template-literalها مینویسیم؟](#چطوری-رشتههای-چند-خطی-رو-توی-template-literalها-مینویسیم) | |
+|311| [template-literalهای تودرتو چی هستن؟](#template-literalهای-تودرتو-چی-هستن) | |
+|312| [tagged-templateها چی هستن؟](#tagged-templateها-چی-هستن) | |
+|313| [رشتههای خام چی هستن؟](#رشتههای-خام-چی-هستن) | |
+|314| [assign کردن با destructuring چیه و چطوری انجام میشه؟](#assign-کردن-با-destructuring-چیه-و-چطوری-انجام-میشه) | |
+|315| [موقع assign کردن با destructuring چطوری میشه مقدار اولیه تعریف کرد؟](#موقع-assign-کردن-با-destructuring-چطوری-میشه-مقدار-اولیه-تعریف-کرد) | |
+|316| [چطوری میتونیم مقدار یه آرایه رو با استفاده از destructuring-assignment تعویض کنیم؟](#چطوری-میتونیم-مقدار-یه-آرایه-رو-با-استفاده-از-destructuring-assignment-تعویض-کنیم) | |
+|317| [Enhanced-object-literalها چی هستن؟](#Enhanced-object-literalها-چی-هستن) | |
+|318| [importهای داینامیک چی هستن؟](#importهای-داینامیک-چی-هستن) | |
+|319| [کاربرد importهای داینامیک چیه؟](#کاربرد-importهای-داینامیک-چیه) | |
+|320| [آرایههای نوعدار(typed-arrays) چیه؟](#آرایههای-نوعدارtyped-arrays-چیه) | |
+|321| [مزایای لودر ماژولها چیه؟](#مزایای-لودر-ماژولها-چیه) | |
+|322| [collation چیه؟](#collation-چیه) | |
+|323| [عبارت for...of چیه؟](#عبارت-forof-چیه) | |
+|324| [خروجی عملگر spread روی آرایه زیر چیه؟](#خروجی-عملگر-spread-روی-آرایه-زیر-چیه) | |
+|325| [آیا PostMessage امنه؟](#آیا-PostMessage-امنه) | |
+|326| [مشکلات استفاده از postmessage با origin روی wildcard چیه؟](#مشکلات-استفاده-از-postmessage-با-origin-روی-wildcard-چیه) | |
+|327| [چطوری از دریافت postMessageهای ناخواسته و ناامن از طرف هکرها جلوگیری کنیم؟](#چطوری-از-دریافت-postMessageهای-ناخواسته-و-ناامن-از-طرف-هکرها-جلوگیری-کنیم) | |
+|328| [میتونیم کلا postMessageها رو غیرفعال کنیم؟](#میتونیم-کلا-postMessageها-رو-غیرفعال-کنیم) | |
+|329| [آیا postMessageها به صورت synchronous و همزمان کار میکنن؟](#آیا-postMessageها-به-صورت-synchronous-و-همزمان-کار-میکنن) | |
+|330| [پارادیم زبان جاواسکریپت چیه؟](#پارادیم-زبان-جاواسکریپت-چیه) | |
+|331| [تفاوتهای بین جاواسکریپت داخلی و خارجی چیه؟](#تفاوتهای-بین-جاواسکریپت-داخلی-و-خارجی-چیه) | |
+|332| [آیا جاواسکریپت سریعتر از اسکریپتهای سمت سرور است؟](#آیا-جاواسکریپت-سریعتر-از-اسکریپتهای-سمت-سرور-است) | |
+|333| [چطوری وضعیت چک بودن یه checkbox رو بدست بیاریم؟](#چطوری-وضعیت-چک-بودن-یه-checkbox-رو-بدست-بیاریم) | |
+|334| [هدف از عملگر double-tilde چیه؟](#هدف-از-عملگر-double-tilde-چیه) | |
+|335| [چطوری یه کاراکتر رو به کد ASCII تبدیل کنیم؟](#چطوری-یه-کاراکتر-رو-به-کد-ASCII-تبدیل-کنیم) | |
+|336| [ArrayBuffer چیه؟](#ArrayBuffer-چیه) | |
+|337| [خروجی کد زیر چی خواهد بود؟](#خروجی-کد-زیر-چی-خواهد-بود) | |
+|338| [هدف از Error-object چیه؟](#هدف-از-Error-object-چیه) | |
+|339| [هدف از EvalError-object چیه؟](#هدف-از-EvalError-object-چیه) | |
+|340| [خطاهایی که در حالت strict-mode رخ میدن ولی در غیر اون وجود ندارن کدوما هستن؟](#خطاهایی-که-در-حالت-strict-mode-رخ-میدن-ولی-در-غیر-اون-وجود-ندارن-کدوما-هستن) | |
+|341| [آیا همه objectها دارای prototype هستن؟](#آیا-همه-objectها-دارای-prototype-هستن) | |
+|342| [تفاوتهای بین parameter و argument چیه؟](#تفاوتهای-بین-parameter-و-argument-چیه) | |
+|343| [هدف از متد some روی آرایهها چیه؟](#هدف-از-متد-some-روی-آرایهها-چیه) | |
+|344| [چطوری دو یا تعداد بیشتری از آرایهها رو با هم ترکیب کنیم؟](#چطوری-دو-یا-تعداد-بیشتری-از-آرایهها-رو-با-هم-ترکیب-کنیم) | |
+|345| [تفاوتهای بین Shallow و Deep کپی چیه؟](#تفاوتهای-بین-Shallow-و-Deep-کپی-چیه) | |
+|346| [چطوری میتونیم به یه تعداد مشخص از یه رشته کپی کنیم؟](#چطوری-میتونیم-به-یه-تعداد-مشخص-از-یه-رشته-کپی-کنیم) | |
+|347| [چطوری همه stringهای match شده با یه regular-expression رو برگردونیم؟](#چطوری-همه-stringهای-match-شده-با-یه-regular-expression-رو-برگردونیم) | |
+|348| [چطوری یه رشته رو از اول یا از آخر trim کنیم؟](#چطوری-یه-رشته-رو-از-اول-یا-از-آخر-trim-کنیم) | |
+|349| [خروجی کنسول زیر با عملگر unary چی میشه؟](#خروجی-کنسول-زیر-با-عملگر-unary-چی-میشه) | |
+|350| [آیا جاواسکریپت از mixinها استفاده میکنه؟](#آیا-جاواسکریپت-از-mixinها-استفاده-میکنه) | |
+|351| [تابع thunk چیه و چیکار میکنه؟](#تابع-thunk-چیه-و-چیکار-میکنه) | |
+|352| [thunkهای asynchronous چیکار میکنن؟](#thunkهای-asynchronous-چیکار-میکنن) | |
+|353| [خروجی فراخوانیهای توابع زیر چی میشه؟](#خروجی-فراخوانیهای-توابع-زیر-چی-میشه) | |
+|354| [چطوری همه خطوط جدید رو از یه رشته حذف کرد؟](#چطوری-همه-خطوط-جدید-رو-از-یه-رشته-حذف-کرد) | |
+|355| [تفاوت بین reflow و repaint چیه؟](#تفاوت-بین-reflow-و-repaint-چیه) | |
+|356| [اگه قبل از یه آرایه عملگر نفی «!» بزاریم چی میشه؟](#اگه-قبل-از-یه-آرایه-عملگر-نفی-«!»-بزاریم-چی-میشه) | |
+|357| [اگه دو تا آرایه رو با هم جمع ببندیم چی میشه؟](#اگه-دو-تا-آرایه-رو-با-هم-جمع-ببندیم-چی-میشه) | |
+|358| [اگه عملگر جمع «+» روی قبل از مقادیر falsy قرار بدیم چی میشه؟](#اگه-عملگر-جمع-«+»-روی-قبل-از-مقادیر-falsy-قرار-بدیم-چی-میشه) ||
+|359| [چطوری با استفاده از آرایهها و عملگرهای منطقی میتونیم رشته self رو تولید کنیم؟](#چطوری-با-استفاده-از-آرایهها-و-عملگرهای-منطقی-میتونیم-رشته-self-رو-تولید-کنیم) | |
+|360| [چطوری میتونیم مقادیر falsy رو از آرایه حذف کنیم؟](#چطوری-میتونیم-مقادیر-falsy-رو-از-آرایه-حذف-کنیم) | |
+|361| [چطوری مقادیر تکراری رو از یه آرایه حذف کنیم؟](#چطوری-مقادیر-تکراری-رو-از-یه-آرایه-حذف-کنیم) | |
+|362| [aliaseهای همزمان با destructuring چطوری کار میکنن؟](#aliaseهای-همزمان-با-destructuring-چطوری-کار-میکنن) | |
+|363| [چطوری آیتمهای یه آرایه رو بدون استفاده از متد map پیمایش کنیم؟](#چطوری-آیتمهای-یه-آرایه-رو-بدون-استفاده-از-متد-map-پیمایش-کنیم) | |
+|364| [چطوری یه آرایه رو خالی کنیم؟](#چطوری-یه-آرایه-رو-خالی-کنیم) | |
+|365| [چطوری اعداد رو با تعداد رقم اعشار مشخص رند میکنی؟](#چطوری-اعداد-رو-با-تعداد-رقم-اعشار-مشخص-رند-میکنی) | |
+|366| [سادهترین روش برای تبدیل آرایه به object چیه؟](#سادهترین-روش-برای-تبدیل-آرایه-به-object-چیه) | |
+|367| [چطوری یه آرایه با یه سری داده درست کنیم؟](#چطوری-یه-آرایه-با-یه-سری-داده-درست-کنیم) | |
+|368| [متغیرهای موجود روی آبجکت console کدوما هستن؟](#متغیرهای-موجود-روی-آبجکت-console-کدوما-هستن) | |
+|369| [میشه پیامهای کنسول رو استایلدهی کرد؟](#میشه-پیامهای-کنسول-رو-استایلدهی-کرد) | |
+|370| [هدف از متد dir روی آبجکت console چیه؟](#هدف-از-متد-dir-روی-آبجکت-console-چیه) | |
+|371| [آیا میشه المنتهای HTML رو توی console دیباگ کرد؟](#آیا-میشه-المنتهای-HTML-رو-توی-console-دیباگ-کرد) | |
+|372| [چطوری میشه دادهها رو به شکل جدولی توی console نمایش بدیم؟](#چطوری-میشه-دادهها-رو-به-شکل-جدولی-توی-console-نمایش-بدیم) | |
+|373| [چطوری میشه بررسی کرد که یه پارامتر Number هست یا نه؟](#چطوری-میشه-بررسی-کرد-که-یه-پارامتر-Number-هست-یا-نه) | |
+|374| [چطوری یه متن رو میتونیم به clipboard کپی کنیم؟](#چطوری-یه-متن-رو-میتونیم-به-clipboard-کپی-کنیم) | |
+|375| [چطوری میشه timestamp رو بدست آورد؟](#چطوری-میشه-timestamp-رو-بدست-آورد) | |
+|376| [چطوری یه آرایه چندسطحی رو تک سطحی کنیم؟](#چطوری-یه-آرایه-چندسطحی-رو-تک-سطحی-کنیم) | |
+|377| [سادهترین روش برای بررسی چندشرطی چیه؟](#سادهترین-روش-برای-بررسی-چندشرطی-چیه) | |
+|378| [چطوری کلیک روی دکمه برگشت مرورگر رو متوجه بشیم؟](#چطوری-کلیک-روی-دکمه-برگشت-مرورگر-رو-متوجه-بشیم) | |
+|379| [چطوری میتونیم کلیک راست رو غیرفعال کنیم؟](#چطوری-میتونیم-کلیک-راست-رو-غیرفعال-کنیم) | |
+|380| [object-wrapperها چی هستن؟](#object-wrapperها-چی-هستن) | |
+|381| [AJAX چیه؟](#AJAX-چیه) | |
+|382| [روشهای مختلف مدیریت یه کد Asynchronous چیه؟](#روشهای-مختلف-مدیریت-یه-کد-Asynchronous-چیه) | |
+|383| [چطوری یه درخواست fetch رو کنسل کنیم؟](#چطوری-یه-درخواست-fetch-رو-کنسل-کنیم) | |
+|384| [Speech-API چیه؟](#Speech-API-چیه) | |
+|385| [حداقل timeout توی throttling چقدره؟](#حداقل-timeout-توی-throttling-چقدره) | |
+|386| [چطوری میشه یه timeout صفر توی مرورگر اجرا کرد؟](#چطوری-میشه-یه-timeout-صفر-توی-مرورگر-اجرا-کرد) | |
+|387| [taskها توی event-loop چی هستن؟](#taskها-توی-event-loop-چی-هستن) | |
+|388| [microtaskها چی هستن؟](#microtaskها-چی-هستن) | |
+|389| [event-loopهای مختلف کدوما هستن؟](#event-loopهای-مختلف-کدوما-هستن) | |
+|390| [هدف از queueMicrotask چیه؟](#هدف-از-queueMicrotask-چیه) | |
+|391| [چطوری میشه از کتابخونههای جاواسکریپت توی فایل typescript استفاده کرد؟](#چطوری-میشه-از-کتابخونههای-جاواسکریپت-توی-فایل-typescript-استفاده-کرد) | |
+|392| [تفاوتهای بین promiseها و observableها کدوما هستن؟](#تفاوتهای-بین-promiseها-و-observableها-کدوما-هستن) | |
+|393| [heap چیه؟](#heap-چیه) | |
+|394| [event-table چیه؟](#event-table-چیه) | |
+|395| [صف microTask چیه؟](#صف-microTask-چیه) | |
+|396| [تفاوت بین shim و polyfill چیه؟](#تفاوت-بین-shim-و-polyfill-چیه) | |
+|397| [چطوری متوجه primitive یا غیر primitive بودن یه نوع داده میشیم؟](#چطوری-متوجه-primitive-یا-غیر-primitive-بودن-یه-نوع-داده-میشیم) | |
+|398| [babel چیه؟](#babel-چیه) | |
+|399| [آیا Node.js به شکل کامل تک thread کار میکنه؟](#آیا-Nodejs-به-شکل-کامل-تک-thread-کار-میکنه) | |
+|400| [کاربردهای مرسوم observableها کدوما هستن؟](#کاربردهای-مرسوم-observableها-کدوما-هستن) | |
+|401| [RxJS چیه؟](#RxJS-چیه) | |
+|402| [تفاوت بین Function-constructor و function-declaration چیه؟](#تفاوت-بین-Function-constructor-و-function-declaration-چیه) | |
+|403| [شرط Short-circuit یا اتصال کوتاه چیه؟](#شرط-Short-circuit-یا-اتصال-کوتاه-چیه) | |
+|404| [سادهترین روش برای تغییر سایز یه آرایه چیه؟](#سادهترین-روش-برای-تغییر-سایز-یه-آرایه-چیه) | |
+|405| [observable چیه؟](#observable-چیه) | |
+|406| [تفاوتهای بین توابع و کلاسها چیه؟](#تفاوتهای-بین-توابع-و-کلاسها-چیه) | |
+|407| [تابع async چیه؟](#تابع-async-چیه) | |
+|408| [چطوری خطاهای ایجاد شده هنگام استفاده از promiseها رو کنترل کنیم؟](#چطوری-خطاهای-ایجاد-شده-هنگام-استفاده-از-promiseها-رو-کنترل-کنیم) | |
+|409| [Deno چیه؟](#Deno-چیه) | |
+|410| [توی جاواسکریپت چطوری یه object قابل پیمایش درست کنیم؟](#توی-جاواسکریپت-چطوری-یه-object-قابل-پیمایش-درست-کنیم) | |
+|411| [روش مناسب برای فراخوانی توابع بازگشتی چیه؟](#روش-مناسب-برای-فراخوانی-توابع-بازگشتی-چیه) | |
+|412| [چطوری بررسی کنیم که یه آبجکت promise هست یا نه؟](#چطوری-بررسی-کنیم-که-یه-آبجکت-promise-هست-یا-نه) | |
+|413| [چطوری متوجه بشیم که یا تابع با تابع constructor صدا زده شده یا نه؟](#چطوری-متوجه-بشیم-که-یا-تابع-با-تابع-constructor-صدا-زده-شده-یا-نه) | |
+|414| [تفاوتهای بین آبجکت argument و پارامتر rest چیه؟](#تفاوتهای-بین-آبجکت-argument-و-پارامتر-rest-چیه) | |
+|415| [تفاوتهای بین عملگر spread و پارامتر rest چیه؟](#تفاوتهای-بین-عملگر-spread-و-پارامتر-rest-چیه) | |
+|416| [نوعهای مختلف generatorها کدوما هستن؟](#نوعهای-مختلف-generatorها-کدوما-هستن) | |
+|417| [iterableهای built-in کدوما هستن؟](#iterableهای-built-in-کدوما-هستن) | |
+|418| [تفاوتهای بین حلقه for...of و for...in چیه؟](#تفاوتهای-بین-حلقه-forof-و-forin-چیه) | |
+|419| [چطوری propertyهای instance و غیر instanceای تعریف میکنی؟](#چطوری-propertyهای-instance-و-غیر-instanceای-تعریف-میکنی) | |
+|420| [تفاوتهای بین isNaN و Number.isNaN کدوما هستن؟](#تفاوتهای-بین-isNaN-و-NumberisNaN-کدوما-هستن) | |
+
+{Pishgoftar}
@@ -3778,7 +3773,7 @@ footerTemplate: '