<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های محسن زارعی</title>
        <link>https://virgool.io/feed/@itsMohsenZarei</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-16 20:07:59</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1567119/avatar/nk4g0S.jpeg?height=120&amp;width=120</url>
            <title>محسن زارعی</title>
            <link>https://virgool.io/@itsMohsenZarei</link>
        </image>

                    <item>
                <title>مدیریت حافظه در جاوا اسکریپت</title>
                <link>https://virgool.io/@itsMohsenZarei/%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D8%AD%D8%A7%D9%81%D8%B8%D9%87-%D8%AF%D8%B1-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-jomi5zitexdy</link>
                <description>به طور کلی مدیریت حافظه توی جاوا اسکریپت توسط متور جاوا اسکریپت انجام میشه و کاربرا نیازی ندارن که به صورت دستی حافظه ای رو تخصیص بدن یا این که مدریریتش کننچرخه:همه زبان های برنامه نویسی عموما شبیه هم عمل میکنن، که ما اینجا جاوا اسکریپت رو بررسی میکنیم:1) اختصاص حافظه: حافظه رو به شی ایجاد شده اختصاص میده2) استفاده از حافظه اختصاص داده شده3) جمع آوری زباله: زمانی که چرخه حیاط شی به پایان رسید و از حافظه استفاده ای نمیشه یه زباله جمع کن که توی موتور وجود داره میاد و حافظه رو آزاد میکنه موتورهای جاوا اسکریپت داده ها رو توی دو مکان ذخیره میکنناستک (Stack): یه ساختاره داده ای که برای ذخیره داده های استاتیک استفاده میشه. داده های استاتیک به داده هایی گفته میشه که اندازه اونا توسط موتور مشخص شده و اندازه ثابتی دارن هیپ (Heap): این نوع حافظه برای ذخیره اشیا و توابع استفاده میشه، متور مقدار ثابتی رو بهشون اختصاص نمیده به جاش اندازشون متغیره و در صورت نیاز فضای بیشتری بهشون داده میشهداده‌ای که توی حافظه Stack و Heap ذخیره میشه چه فرقی دارن؟ استک (Stack):مقدار های اولیه (Primitive) , مرجع (References) حافظه Heapاندازه مشخص در زمان کامپایلحافظه ثابتی بهشون اختصاص داده میشههیپ (Heap):آبجت ها و توابعاندازه تو زمان اجرا مشخص میشهمحدودیتی برای حافظه وجود ندارهیه مثال ببینیم از نحوه ذخیره داده توی این دو نوع حافظه!</description>
                <category>محسن زارعی</category>
                <author>محسن زارعی</author>
                <pubDate>Sun, 30 Jun 2024 14:08:56 +0330</pubDate>
            </item>
                    <item>
                <title>لیست ها و key ها در react</title>
                <link>https://virgool.io/@itsMohsenZarei/%D9%84%DB%8C%D8%B3%D8%AA-%D9%87%D8%A7-%D9%88-key-%D9%87%D8%A7-%D8%AF%D8%B1-react-vginjss0rvuo</link>
                <description>اول بیاید یه نگاهی به لیست ها در جاوا اسکریپت بندازیم.با توجه به کد زیر، ما با استفاده از تابع ()map آرایه numbers رو پیمایش میکنیم و مقدار های ورودی رو دو برابر میکنیم؛ در نهایت ازشون log میگیریم:این کد توی console مقدارهای  [2, 4, 6, 8, 10] رو log میگیره.در react، تبدیل آرایه ها به لیستی از elementها کاملا مشابه کد بالاستحالا، آرایه ای از اعداد رو با استفاده از تابع ()map جاوا اسکریپت رو پیمایش میکنیم و برای هر کدوم از آیتم های آرایه یک المنت &lt;li&gt; رو return میکنیم و در نهایت مقدار به دست اومده رو درون ثابتی به نام listItems میریزیمبعدش میتونیم کل آرایه listItems رو درون یک المنت &lt;ul&gt; استفاده کنیماین کد یه لیست از رقم های بین 1 تا 5 رو (که گلوله های مشکی کنارش هست) نمایش میدهما معمولاً فهرست ها رو درون یک کامپوننت render میکنیموقتی این کد را اجرا کنیم، به ما هشداری داده می شود که باید برای آیتم های لیست یه کلید ارائه بدیم. key یه صفت منحصر به فرده که ما باید هنگام ساخت لیستی از آرایه ها به هریک از element ها باید اختصاص بدیم. شاید براتون سوال بشه که دلیل این کار چیه که در ادامه توضیح میدم...اول بیاید یه key به لیست خودمون اختصاص بدیم و مشکل کلید رو حل کنیم، کد بالا رو به این شکل ویرایش میکنیم صفت key در شناسایی این که کدوم عنصر تغییر داشته، اضافه شده، یا حذو شده به react کمک میکنه. keyها باید به عناصر داخل آرایه داده شود تا عناصر هویت پایداری داشته باشند.بهترین راه برای انتخاب یه key، استفاده از رشته ای است که به طور منحصر به فرد آیتم‌های لیست رو بین خواهر و برادرش شناسایی می کنه. اغلب ما از IDهای داده های دریافتی برای keyها استفاده میکنیموقتی هم که IDهای مشخصی برای render کردن item ها نداشتیم، به عنوان گزینه آخر میتونیم از indexهای itemهای آرایه به عنوان key استفاده کنیماگه قراره ترتیب آیتم ها تغییر کنه، استفاده از indexها را برای keyها توصیه نمیشه؛ این کار میتونه در کارایی تاثیر منفی بزاره و ممکنه مشکلاتی رو برای state کامپوننت ها ایجاد کنه.ضمناً اگه ما صفت key رو به itemهای لیستمون ندیم react به صورت پیشفرض از indexها استفاده میکنهنکته 1: keyها فقط در زمینه آرایه معنا دارن، و عناصر درون ()map نیاز به key دارند.نکته 2:  keyهای استفاده شده در هر آرایه باید در بین خواهر و برادرشان منحصر به فرد باشه و در دو آرایه متفاوت میتونیم از keyهای یک سان استفاده کنیمنکته 3: صفت key فقط به react مربوط میشه و به کامپوننت ارسال نمیشه، اگه نیاز داشتیم که مقدار key رو به کامپوننت ارسال کنیم باید اونو با یه اسم متفاوت ارسال کنیم</description>
                <category>محسن زارعی</category>
                <author>محسن زارعی</author>
                <pubDate>Mon, 18 Apr 2022 23:19:15 +0430</pubDate>
            </item>
            </channel>
</rss>