تو دنیای جاوااسکریپت برای مدیریت کدهای بزرگ و پیچیده، ماژولبندی حیاتی هست. دو سیستم معروف CommonJS و ESM هر کدوم ویژگیها و کاربردهای خاص خودشون رو دارن. CommonJS که از Node.js اومده و از روش همزمان (sync) بارگذاری استفاده میکنه، تو محیط سرور حسابی جا افتاده، ولی تو مرورگر بهصورت مستقیم کار نمیکنه و نیاز به ابزارهای bundler مثل Webpack داره. از طرف دیگه، ESM که استاندارد جدید ECMAScript هست، با بارگذاری غیرهمزمان (async) و قابلیت tree-shaking (حذف کدهای بلااستفاده) بهینهتره و هم تو مرورگر های مدرن و هم تو Node.js نسخههای جدید پشتیبانی میشه.
برای مطالعه دقیق راجب تفاوت CommonJS و ESM این مقاله رو میتونید بخونید:
🔗 تفاوت های CommonJs و ESM
#Javascript #JS #CommonJS #ESM
☕️Telegram | Website | Discord
برای مطالعه دقیق راجب تفاوت CommonJS و ESM این مقاله رو میتونید بخونید:
🔗 تفاوت های CommonJs و ESM
#Javascript #JS #CommonJS #ESM
☕️Telegram | Website | Discord
❤🔥7🔥5
خواندن متن کپی شده با جاوااسکریپت 👀
🔹️برای دریافت متنی که کاربر داخل کلیپبورد خودش داره میتونید از navigator استفاده کنید.
🔸️چیزی که متد readText بهتون میده از جنس پرامیس هست و نکته مهم دیگه ای که هستش اینه که کاربرد باید حتما بهتون دسترسی بده وگرنه ارور دریافت میکنید.
#javascript #js #clipboard
☕️Telegram | Website | Discord
🔹️برای دریافت متنی که کاربر داخل کلیپبورد خودش داره میتونید از navigator استفاده کنید.
text= navigator.clipboard.readText();
consloe.log(text);
🔸️چیزی که متد readText بهتون میده از جنس پرامیس هست و نکته مهم دیگه ای که هستش اینه که کاربرد باید حتما بهتون دسترسی بده وگرنه ارور دریافت میکنید.
#javascript #js #clipboard
☕️Telegram | Website | Discord
❤🔥10🔥3
⚙️ یکی از اشتباهات رایج در جاوااسکریپت زمانی پیش میاد که بخوای متغیر خصوصی (Private Variable) رو با Prototype ترکیب کنی.
در متدهایی که داخل constructor تعریف میشن، متغیرهای خصوصی از طریق Closure در دسترس هستن.
اما وقتی متد رو روی prototype تعریف کنی، اون متد به scope خصوصی constructor دسترسی نداره و فقط میتونه از this استفاده کنه.
اینجا getX روی prototype تعریف شده، اما به متغیر x که داخل constructor بوده دسترسی نداره؛ چون اون متغیر فقط داخل closure ساخته شده.
اما توی این مثال:
اینجا متد getX داخل constructor تعریف شده و به x دسترسی داره چون در همون scope ساخته شده.
#js #prototype
☕️Telegram | Website | Discord
در متدهایی که داخل constructor تعریف میشن، متغیرهای خصوصی از طریق Closure در دسترس هستن.
اما وقتی متد رو روی prototype تعریف کنی، اون متد به scope خصوصی constructor دسترسی نداره و فقط میتونه از this استفاده کنه.
function MyConstructor() {
var x = "ABC";
}
MyConstructor.prototype.getX = function() {
return x;
};اینجا getX روی prototype تعریف شده، اما به متغیر x که داخل constructor بوده دسترسی نداره؛ چون اون متغیر فقط داخل closure ساخته شده.
اما توی این مثال:
function MyConstructor() {
var x = "ABC";
this.getX = function() {
return x;
};
}اینجا متد getX داخل constructor تعریف شده و به x دسترسی داره چون در همون scope ساخته شده.
#js #prototype
☕️Telegram | Website | Discord
❤🔥38🔥5😍1