<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های ali aharian</title>
        <link>https://virgool.io/feed/@m_90741077</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-16 10:35:21</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/2939197/avatar/vRSI44.jpg?height=120&amp;width=120</url>
            <title>ali aharian</title>
            <link>https://virgool.io/@m_90741077</link>
        </image>

                    <item>
                <title>temporal dead zone در جاوا اسکریپت چیست؟</title>
                <link>https://virgool.io/@m_90741077/temporal-dead-zone-%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-%DA%86%DB%8C%D8%B3%D8%AA-ryq01xmuurei</link>
                <description>Javascript Temporal Dead Zoneسلام دوستانامیدوارم خوب باشین.یک مبحثی در جاوا اسکریپت وجود داره به اسم temporal dead zone یا به اختصار TDZ که کمتر بهش پرداخته شده اما دونستن اون میتونه به شما خیلی کمک بکنه توی فهم بیشتر این که اصلا js چطور کار میکنه و چرا تفاوت های اساسی توی متغیر های var و let رو داریم و خیلی چیز های دیگه (همچنین بهتون کمک میکنه تا برای مصاحبه مجبور نباشید خیلی چیز ها رو فقط حفظ کنین! )قبل از این که شروع کنیم بهتره یه مروری داشته باشیم به این که &quot;JS Runtime Context&quot; چطور کار میکنه!نحوه کار موتور اجرای جاوا اسکریپت (Java Script Runtime Context)رانتایم جاوا اسکریپت برای اجرای کد های شما دو مرحله اصلی رو طی میکنه: ۱- ایجاد(creation) ۲-اجرا(execution)در مرحله اول (creation) اول از همه js برای خودش یک آبجکت گلوبال یا آبجکت window (بسته به محیط اجرای js که در محیط وب باشه یا node) ایجاد میکنه و بلافاصله در گام بعدی از مرحله اول میاد و یک فضای خالی حافظه (memory heap) برای ذخیره سازی متغیر ها یا رفرنس توابع ستاپ(setup) میکنه و در نهایت اون متغیر ها و توابع رو با مقدار undefined مقدار دهی اولیه میکنه که بهش میگن (variable initialization).حالا تو فاز دوم یعنی (execution)، جاوا اسکریپت کد شما رو خط به خط  اجرا میکنه و ادامه میده تا به آخر کد برسه!TDZ یا Temporal Dead Zone چیست؟به طور خلاصه، TDZ یک زمان بین مرحله ی تعریف و مقدار دهی اولیه در رانتایم جاوا اسکریپت (js runtime context) است.یکی از مهم ترین اتفاقاتی که در این مرحله اتفاق میفته مقدار دهی اولیه متغیر های let  و const هست! در صورتی که متغیر های var در مرحله ی execution مقدار دهی اولیه میشن.در واقع به همین دلیل هست که وقتی ما قبل از تعریف متغیر var مقدار اون رو میخونیم، مقدار undefined میگیریم اما وقتی مقدار متغیر let رو میخوایم قبل از تعریفش بخونیم جاوا اسکریپت به ما خطا نمایش میده.چون متغیر های var در همون مرحله ی creation توسط جاوا اسکریپت با undefined مقدار دهی شدند اما متغیر های let بعد از اون و در مرحله ی TDZ قرار بوده که مقدار دهی بشن ولی ما قبل از این که به اون برسیم اونهارو فراخوانی کردیم.به تعبیر دیگر temporal dead zone جایی هست که متغیر ها هنوز غیر قابل دسترسی هستند تا زمانی که کامپیوتر به طور کامل اونها رو با مقادیر اولیه پر کنه.اسکوپ Temporal Dead Zone دقیقا کجاست؟به طور خلاصه، بلاک TDZ  از ابتدای کد ما (یا ابتدای اون بلاک لوکال) شروع میشه و تا جایی ادامه پیدا میکنه که جاوا اسکریپت به طول کامل متغیر های ما رو با مقادیر اولیه پر کنه.بذارین با یه مثال ساده مطلب رو واضح تر کنم:{
  // TDZ starts here (at the beginning of this block’s local scope)
  // TDZ continues here
  // TDZ continues here
  // TDZ continues here
  console.log(myName); // returns ReferenceError because TDZ continues here
  // TDZ continues here
  // TDZ continues here  
  let myName = &amp;quotAli&quot; // TDZ ends here
  // TDZ does not exist here
  // TDZ does not exist here
  //TDZ does not exist here
}اگر به کد دقت کنین متوجه میشین که TDZ دقیقا تا جایی ادامه پیدا کرده که تمامی متغیر های ما (در اینجا فقط  متغیر myName) به طور کامل مقدار دهی شدند و تا قبل از اون چون هنوز در محدوده TDZ قرار داریم، دسترسی به متغیر هامون امکان پذیر نیست و با خطا روبرو میشیم.حالا به این مثال توجه کنین:{
  // TDZ starts here (at the beginning of this block’s local scope)
  // TDZ continues here
  // TDZ continues here
  // TDZ continues here
  // TDZ continues here
  // TDZ continues here
  // TDZ continues here
  let myName; // TDZ ends here
  console.log(myName); // returns undefined because TDZ does not exist here
  myName = &amp;quotAli&quot; // TDZ does not exist here
  console.log(myName); // returns &amp;quotAli&amp;quot because TDZ does not exist here
}همونطور که می بینید، TDZ به محض تعریف اولیه(initialization) متغیر ما به پایان میرسه و بعد از اون متغیر های ما قابل دسترسی هستند و برای همین هم در اولین لاگ، ما مقدار myName که برابر undefined هست رو میتونیم بدون هیچ خطایی مشاهده کنیم. و بعد از اون هم طبق روال اجرای خط به خط کد، متغیر ما مقدار میگیره و بعدش ما میتونیم تو لاگ بعدی مقدارش رو مشاهده کنیم.تفاوت متغیر های var با let و const در temporal dead zone چیست؟اصلی ترین تفاوت متغیر var با متغیر های let و const در TDZ، زمان به پایان رسیدن temporal dead zone هست.به عنوان مثال کد زیر رو در نظر بگیرید:{
  // TDZ starts and ends here
  console.log(myName); // returns undefined because TDZ does not exist here
  var myName = &amp;quotAli&quot; // TDZ does not exist here
  console.log(myName); // returns &amp;quotAli&amp;quot because TDZ does not exist here
  // TDZ does not exist here
  // TDZ does not exist here
}زمانی که قطعه کد بالا رو اجرا میکنیم، جاوا اسکریپت به طور خودکار در مرحله ی creation متغیر myName رو با مقدار undefined مقدار دهی اولیه میکنه و بعد از این که مرحله ی مقدار دهی اولیه تموم میشه و وارد TDZ میشیم، چون هیچ متغیری وجود نداره که مقدار دهی اولیه نشده باشه، temporal dead zone بلافاصله بعد از شروع به پایان میرسه و تمامی متغیر ها در دسترس قرار میگیرند و طبیعتا در لاگ اول، مقدار اولیه ی myName که برابر با undefined باشه نمایش داده میشه.اما در مقابل، جاوا اسکریپت متغیر های const و let را در مرحله ی creation مقدار دهی اولیه نمیکنه (اصلی ترین تفاوت این دو نوع متغیر در مبحث hoisting) و این متغیر ها به صورت مرده (DEAD) باقی می مونن تا در مرحله ی Temporal Dead Zone  مقدار دهی اولیه بشن.در نتیجه، TDZ در متغیر های let و const زمانی به پایان میرسه که اونها به طور کامل مقدار دهی شده باشند اما در متغیر var، تمپورال دد زون TDZ بلافاصله بعد از hoisting به پایان میرسه.در بالا من از اصطلاح hoisting استفاده کردم، اما اصلا hoisting چی هست؟اصطلاح Hoisting در javascript به چه معنی است؟هویستینگ (hoisting) در لغت به معنای بالا بردست هست و به جاوا اسکریپت این اجازه رو میده تا مطابق اصولی که در نحوه کار موتور جاوا اسکریپت توضیح دادم، ایجاد (creation) متغیر ها و فانکشن ها و کلاس ها رو با بالاترین اولویت (قبل از بقیه کار ها و اجرای خط به خط کد) انجام بده.در واقع هویستینگ به کامپیوتر اجازه میده تا تعریف متغیر ها رو قبل از هر کاری انجام بده.***توجه کنید که hoisting به این معنی نیست که js ترتیب اجرای کد ها رو تغییر میده. به هیچ عنوان این اتفاق نمیفته و صرفا قبل از اجرای خط به خط کد و به همون ترتیبی که نوشته شده، متغیر ها تعریف میشن.برای مثال بیاین قطعه کد زیر رو ببینیم و با هم مرحله به مرحله بررسی کنیم که hositing دقیقا چیکار میکنه:hoisting در جاوا اسکریپت چگونه مرحله به مرحله کار میکند؟{
  // Declare a variable:
  let myName = &amp;quotAli&quot;

  // Declare another variable:
  let showMyName = function () {
    console.log(myName);
    let myName = &amp;quotSara&quot;
  };

  // Invoke showMyName function:
  showMyName();
}

// The code above will return:
&amp;quotUncaught ReferenceError: Cannot access &#039;myName&#039; before initialization&amp;quotخب حالا بیاین خودمون رو جای js بذاریم و ببینیم چه اتفاقی داره میفته:جاوا اسکریپت اولین متغیر myName را تعریف میکند:let myName //اولین متغیر myName در برنامهدقت کنید که زمانی که js اولین متغیر myName رو تعریف میکنه، اون رو توی TDZ نگه میداره تا به طور کامل مقدار دهی بشه.۲.  جاوا اسکریپت متغیر showMyName را تعریف میکند:let showMyNameهمچنین این متغیر نیز تا مقدار دهی اولیه کامل در TDZ باقی می ماند.۳.  جاوا اسکریپت اولین متغیر myName را مقدار دهی اولیه میکند:let myName = &amp;quotAli&amp;quot //اولین متغیر myName در برنامه۴.  جاوا اسکریپت متغیر showMyName را مقدار دهی اولیه میکند (که یک تابع است):let showMyName = function () {  
   console.log(myName);  
   let myName = &amp;quotSara&quot;  
 };۵.  جاوا اسکریپت تابع showMyName را  فراخوانی می کند:showMyName();۶.  متغیر myName دوم که داخل تابع  showMyName است تعریف می شود:let myName; //این دومین متغیر myName است که داخل تابع قرار داردهمونطور که میدونین اسکوپ متغیر let به صورت block scope هست و عملا دوتا متغیر myName ارتباطی با هم ندارند.این متغیر myName دوم هم بعد از تعریف در TDZ خودش قرار میگیره تا به صورت کامل مقدار دهی اولیه بشه و تا اون موقع قابل دسترسی نیست (چون توی temporal dead zone قرار داره!)۷.  جاوا اسکریپت دستور console.log(myName) را اجرا میکند:console.log(myName);به یاد دارید که جاوا اسکریپت هنوز تمام متغیر هارو مقدار دهی اولیه نکرده، در نتیجه هنوز در TDZ قرار داره و در این شرایط دسترسی به متغیر ها امکان پذیر نیست، در نتیجه سیستم نمیتونه به متغیری که هنوز در دسترس نیست دسترسی پیدا بکنه و با ریترن کردن یک خطای ReferenceErrorبه برنامه پایان میده!بعد از برگردوندن خطا، جاوا اسکریپت به ادامه ی اجرای فانکشن پایان میده و هیچوقت دومین متغیر myName مقدار دهی اولیه نمیشه و عملا ما در محیط temporal dead zone این خطا رو میگیریم.حالا به صورت کلی یه نگاه به این تحلیل بندازیم:let myName // 1. اولین متغیرmyName تعریف می شود

let showMyName // 2. متغیر showMyName تعریف می شود

myName = &amp;quotAli&quot; // 3. اولین متغیر myName مقدار دهی اولیه می شود

showMyName = function () {
  console.log(myName);
  let myName = &amp;quotsara&quot;
}; // 4. متغیر showMyName با یک فانکشن مقدار دهی می شود

showMyName(); // 5. تابع showMyName فراخوانی می شود

let myName // 6. دومین متغیر myName تعریف می شود و در TDZ قرار میگیرد

console.log(myName); // 7. فانکشن console.log اجرا می شود

Uncaught ReferenceError // فراخوانی myName دوم خطا بازمیگردانداین تعریف و مقدار دهی های اولیه قبل از اجرای کد دقیقا همان چیزی است  که ما به اون میگیم hoisting.جمع بندیدر این مقاله سعی کردم تا با مثال های مختلف و توضیحات ساده اما دقیق، مفهوم temporal dead zone یا TDZ رو برای شما توضیح بدم و جا بندازم.همونطور که گفتم دونستن این مفهوم به ما درک عمیقی از نحوه کار موتور جاوا اسکریپت و همچنین چگونگی عملکرد تعریف و مقدار دهی متغیر ها و تفاوت انواع متغیر ها با هم به ما میده. همچنین باعث میشه که بتونیم به راحتی به تمام سوالات چالشی مصاحبه های js در این زمینه پاسخ بدیم.خیلی ممنونم که زمان گذاشتین و این مطلب رو تا انتها مطالعه کردینلطفا با ری اکشن ها به من انرژی بدین و با کامنت ها من رو در بهتر شدن این محتوا همراهی کنین.تن سالم و جیب پر پول داشته باشید ✋</description>
                <category>ali aharian</category>
                <author>ali aharian</author>
                <pubDate>Sat, 20 Apr 2024 13:19:25 +0330</pubDate>
            </item>
                    <item>
                <title>بررسی فیچر های جدید جاوااسکریپت (ES14) 2023</title>
                <link>https://virgool.io/@m_90741077/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D9%81%DB%8C%DA%86%D8%B1-%D9%87%D8%A7%DB%8C-%D8%AC%D8%AF%DB%8C%D8%AF-%D8%AC%D8%A7%D9%88%D8%A7%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-es14-2023-ii99ajqxlztd</link>
                <description>غوطه‌ور شوید به دنیای پویای تحول جاوااسکریپت!اکما اسکریپت ۱۴ موجی از ویژگی‌های هیجان‌انگیز را در سال ۲۰۲۳ به نمایش گذاشته تا تجربه‌ی بهتری از برنامه نویسی جاوا اسکریپت به شما ارائه دهند.اکما اسکریپت ۱۴ که در ماه ژوئن ۲۰۲۳ منتشر شده، قصد دارد روش‌های جدیدی برای جستجو و تغییر آرایه‌ها اضافه کند، به نمادها اجازه دهد که به عنوان کلیدهای WeakMap استفاده شوند، و پشتیبانی از دستورات hashbang را استاندارد سازی کند.بیاید با هم ویژگی‌های جدید معرفی شده در جاوااسکریپت را بررسی کنیم! 🚀✨۱. متد  findLastاین متد در پروتوتایپ تمامی آرایه‌ها قابل دسترسی است (به عنوان مثال Array.prototype.findLast) و به طور مشابه به متد find عمل می‌کند که برای یافتن یک عضو در آرایه استفاده می‌شود. با این تفاوت که جستجو را از انتهای آرایه شروع می‌کند:const array1 = [5, 12, 50, 100, 44];
const found = array1.findLast((element) =&gt; element &gt; 45);
console.log(found);//Output: 100۲. متد findLastIndexاین متد نیز مانند متد findIndex عمل می‌کند که برای یافتن شماره ایندکس یک آیتم خاص در یک آرایه استفاده می‌شود؛ با این تفاوت که عملیات جستجو را از انتهای آرایه شروع می‌کند:const array1 = [5, 12, 50, 100, 44];
const found = array1.findLastIndex((element) =&gt; element &gt; 45);
console.log(found);//Output: 3۳. متد toSortedاین متد نیز مشابه متد sort است که قبلاً موجود بوده است. این دو متد برای مرتب‌سازی اعضای یک آرایه استفاده می‌شوند، با این تفاوت که متد toSorted آرایه اصلی را تغییر نمی‌دهد و خروجی آن یک آرایه جدید از اعضای مرتب‌شده است:const letters = [&amp;quotD&amp;quot, &amp;quotA&amp;quot, &amp;quotE&amp;quot, &amp;quotC&amp;quot, &amp;quotB&amp;quot]
const numbers = [4, 2, 5, 1, 3]

// toSorted
const sortedLetters = letters.toSorted();
console.log(letters) // Output: [&amp;quotD&amp;quot, &amp;quotA&amp;quot, &amp;quotE&amp;quot, &amp;quotC&amp;quot, &amp;quotB&amp;quot]
console.log(sortedLetters) // Output: [&amp;quotA&amp;quot, &amp;quotB&amp;quot, &amp;quotC&amp;quot, &amp;quotD&amp;quot, &amp;quotE&amp;quot]

const sortedNumbers = numbers.toSorted((a, b) =&gt; a - b)
console.log(sortedNumbers) // Output: [1, 2, 3, 4, 5]

// common mistake using numbers
const nums2 = [0, 15, 5, 10, 20]
const sortedNums2 = nums2.toSorted()
console.log(sortedNums2) // Output: [0, 10, 15, 20, 5]۴. متد toReversedاین متد نیز مشابه متد reverse عمل می‌کند که برای معکوس کردن اعضای یک آرایه استفاده می‌شود، با این تفاوت که متد toReversed آرایهٔ اصلی را تغییر نمی‌دهد، بلکه خروجی آن یک آرایه جدید از اعضای معکوس شده است:const originalArray = [1, 2, 3, 4, 5];

// toReversed
const newArray = originalArray.toReversed();

console.log(originalArray); // Output: [1, 2, 3, 4, 5] the array is unmodified
console.log(newArray); // Output:[5, 4, 3, 2, 1]۵. متد toSplicedاین متد نیز همانند متد splice عمل می‌کند و برای اعمال تغییرات در یک آرایه (حذف، اضافه و یا جایگزینی) استفاده می‌شود. با این تفاوت که متد splice، آرایه اصلی را تغییر می‌دهد، در حالی که با استفاده از متد toSpliced می‌توانیم بدون ایجاد تغییر در آرایه اصلی و یا نیاز به کپی‌برداری از آن، عملیات مورد نظر را انجام دهیم:const numbers = [1, 2, 6, 6, 7]

// toSpliced method
// starting at index 2, delete 1 element, then add the values  3, 4, and 5
const result = numbers.toSpliced(2, 1, 3, 4, 5) 
console.log(numbers) // Output: [1, 2, 6, 6, 7]
console.log(result) // Output: [1, 2, 3, 4, 5, 6, 7]۶. متد withاین متد به ما اجازه می‌دهد که یک عضو از آرایه را با یک مقدار دیگر جایگزین کنیم، بدون اینکه آرایه اصلی را تغییر دهیم. این متد دو ورودی می‌گیرد: ورودی اول که شماره ایندکس مورد نظر برای جایگزینی است، و ورودی دوم که مقدار جدید مورد نظر است:const result = numbers.with(2, 3)
console.log(numbers) // Output: [1, 2, 9999, 3]
console.log(result) // Output: [1, 2, 3, 4]۷. متد groupByبا استفاده از متد groupBy، می‌توانیم اعضای یک آرایه را بر اساس یک ویژگی مشترک بین آن‌ها گروه‌بندی کنیم. نکته‌ای که درباره‌ی groupBy وجود دارد این است که بر خلاف متدهای بالا، این متد به صورت استاتیک در دسترس است و مستقیماً از شیء Object Global قابل دسترسی است:const inventory = [
  { name: &amp;quotasparagus&amp;quot, type: &amp;quotvegetables&amp;quot, quantity: 5 },
  { name: &amp;quotbananas&amp;quot, type: &amp;quotfruit&amp;quot, quantity: 0 },
  { name: &amp;quotgoat&amp;quot, type: &amp;quotmeat&amp;quot, quantity: 23 },
  { name: &amp;quotcherries&amp;quot, type: &amp;quotfruit&amp;quot, quantity: 5 },
  { name: &amp;quotfish&amp;quot, type: &amp;quotmeat&amp;quot, quantity: 22 },
];

function myCallback({ quantity }) {
  return quantity &gt; 5 ? &amp;quotok&amp;quot : &amp;quotrestock&amp;quot
}

const result2 = Object.groupBy(inventory, myCallback);نتیجه‌ی result2 یک آبجکت است که شامل کلید های دسته بندی است و موارد مربوط به هر دسته بندی به صورت آرایه در داخل آن قرار دارند:{
    &amp;quotrestock&amp;quot: [
        {
            &amp;quotname&amp;quot: &amp;quotasparagus&amp;quot,
            &amp;quottype&amp;quot: &amp;quotvegetables&amp;quot,
            &amp;quotquantity&amp;quot: 5
        },
        {
            &amp;quotname&amp;quot: &amp;quotbananas&amp;quot,
            &amp;quottype&amp;quot: &amp;quotfruit&amp;quot,
            &amp;quotquantity&amp;quot: 0
        },
        {
            &amp;quotname&amp;quot: &amp;quotcherries&amp;quot,
            &amp;quottype&amp;quot: &amp;quotfruit&amp;quot,
            &amp;quotquantity&amp;quot: 5
        }
    ],
    &amp;quotok&amp;quot: [
        {
            &amp;quotname&amp;quot: &amp;quotgoat&amp;quot,
            &amp;quottype&amp;quot: &amp;quotmeat&amp;quot,
            &amp;quotquantity&amp;quot: 23
        },
        {
            &amp;quotname&amp;quot: &amp;quotfish&amp;quot,
            &amp;quottype&amp;quot: &amp;quotmeat&amp;quot,
            &amp;quotquantity&amp;quot: 22
        }
    ]
}۸. پشتیبانی از کامنت های #!Hashbang (یا همان Shebang)کامنت های Hashbang با #! شروع می‌شوند و تنها در ابتدای یک اسکریپت یا ماژول قابل استفاده هستند. هیچ فضای سفیدی قبل از #! مجاز نیست! استانداردسازی hashbang در اسکریپت‌های قابل اجرا اکنون امکان اجرای فایل‌های جاوااسکریپت را مستقیماً از کامند لاین فراهم می‌کند. اکنون می‌توانید کد جاوااسکریپت را با دستور ./نام_فایل.js اجرا کنید به جای چیزی شبیه به node نام_فایل.js.ابتدا مطمئن شوید که مجوز اجرای فایل را دارید با اجرای دستور: ls -l filename.js.برای افزودن مجوزهای اجرا، دستور زیر را اجرا کنید: chmod +x fileName.js:#!/usr/bin/env node

console.log(&amp;quotJavascript is so cool!&amp;quot)
// Output: Javascript is so cool!برای اجرای کد بالا فقط کافیست کامند زیر را اجرا کنیم:./fileName.jsکه در خروجی لاگ زیر را خواهیم داشت:Javascript is so cool!۹. بهبود آبجکت‌های WeakMap و WeakSetدر گذشته، کلیدهای مجموعه‌های ساخته شده با WeakMap و WeakSet بایستی از نوع شیء (Object) می بودند. اما از ورژن ES14 به بعد، می‌توانیم از نمادها (Symbol) نیز به عنوان کلید برای این مجموعه‌ها استفاده کنیم:const weakMapIds = new WeakMap()
const key = Symbol(&amp;quotuserId&amp;quot)

weakMapIds.set(key, &amp;quot123abc&amp;quot)

console.log(weakMapIds.get(key))// Output: 123abcامیدوارم از اطلاعاتی که مورد بررسی قرار دادیم استفاده کرده باشید.با توجه به تازگی این فیچر ها، لطفاً در استفاده از پشتیبانی مرورگرها و Polyfill ها دقت کنید. روز خوشی داشته باشید! 🖐️  منبع: https://medium.com/nerd-for-tech/exploring-10-new-features-unveiled-in-ecmascript-2023-es14-b8abe7e26f9a</description>
                <category>ali aharian</category>
                <author>ali aharian</author>
                <pubDate>Mon, 25 Mar 2024 12:24:06 +0330</pubDate>
            </item>
                    <item>
                <title>صفر تا صد ترخیص و رفع توقیف خودرو به علت عدم رعایت حجاب</title>
                <link>https://virgool.io/@m_90741077/%D8%B5%D9%81%D8%B1-%D8%AA%D8%A7-%D8%B5%D8%AF-%D8%AA%D8%B1%D8%AE%DB%8C%D8%B5-%D9%88-%D8%B1%D9%81%D8%B9-%D8%AA%D9%88%D9%82%DB%8C%D9%81-%D8%AE%D9%88%D8%AF%D8%B1%D9%88-%D8%A8%D9%87-%D8%B9%D9%84%D8%AA-%D8%B9%D8%AF%D9%85-%D8%B1%D8%B9%D8%A7%DB%8C%D8%AA-%D8%AD%D8%AC%D8%A7%D8%A8-wapnvbkohmrb</link>
                <description>سلام امیدوارم حالتون خوب باشهاز اونجایی که در شرایط فعلی خیلی هامون ممکنه خواسته یا ناخواسته درگیر این مساله بشیم که برامون پیامک اخطار برای حجاب بیاد یا پلیس ماشین مارو بخوابونه و این که تقریبا تو هیچ سایت و مرجعی هیچ توضیح کاملی راجع به رفع توقیف یا به اصطلاح ترخیص خودرو در این مورد نوشته نشده و حتی خود مسئولین کلانتری ها هم اطلاعات درستی راحب این مساله ندارن و اشتباه حتی راهنمایی میکنن خواستم که یک مقاله بنویسم و گام به گام و حالت های مختلف این مساله رو براتون شرح بدم تا اگر خدای نکرده شما هم خودروتون توقیف شد برای حجاب، بتونین با حداقل سردرگمی کار خودتون رو انجام بدین.حالت های توقیف خودرو:کلا دو حالت وجود داره که ماشین شما رو به علت بی حجابی ببرن پارکینگ: 1- پیامک اخطاریه بیاد و خودتون دوطلبانه مراجعه کنین به پارکینگ .2- پلیس به خودروی شما در بین راه یا در خیابان دستور ایست بدهد.تنها تفاوت حالت اول و دوم این هست که در حالت اول یک مرحله کمتر دارید برای طی کردن چون خودتون داوطلبانه به پلیس امنیت اخلاقی مراجعه می کنید و پس از آن به پارکینگ هایی که به شما معرفی میکنند. اما ادامه روند و ترخیص خودرو با حالت دوم مشابه است. برای همین من فقط به شرح مرحله به مرحله و گام به گام حالتی میپردازم که پلیس خودروی شما را توقیف کند.1- دستور ایست پلیس در جاده یا معابر شهری:اگر در خودروی شما بی حجابی صورت گرفته باشد و پلیس مشاهده کند ممکن است به شما دستور ایست بدهد. به نفع شماست که توقف کنید و مدارک خود را تحویل پلیس دهید وگرنه ممکن است در چهارراه بعدی گریبان گیر شما شود!پلیس در آن لحظه مدارک شما را استعلام میگیرد و وضعیت اخطار های حجاب شما را چک میکند. در صورتی که مرتبه اول باشد شما آزادید! یعنی صرفا یک اخطار دریافت میکنید و میتوانید بروید.اما اگر بار اول نباشد و قبلا اخطار دریافت کرده باشید، پلیس با ذکر محل دریافت اخطار قبلی شما را رهسپار نزدیک ترین کلانتری محل می کند.معمولا به این صورت است که مدارک شما را نزد خود نگه می دارد و زمانی که به کلانتری رسیدید مدارک را به شما تحویل می دهد.در کلانتری شما می بایست از کارت خودرو و گواهینامه خود کپی بگیرید (دستگاه کپی در کلانتری وجود دارد) و همچنین دو نسخه برگه ی توقیف خودرو خریداری کنید(در حال حاظر مبلغ کل این ها 15 هزار تومان می شود که حتما باید به صورت نقدی پرداخت کنید). و پس از آن مدارک و آن دو نسخه برگه ی توقیف را به کارمند مربوطه در کلانتری تحویل دهید تا برای شما پرونده ثبت کند.2- حمل خودرو با جرثقیل از کلانتری به پارکینگ:بعد از تشکیل پرونده باید منتظر باشید تا جرثقیل های پارکینگ های طرف قرارداد با کلانتری بیایند تا خودروی شما را به پارکینگ ببرند.چند نکته مهم در این بخش وجود دارد:1- حتما تمای وسایل شخصی و ارزشمند خود را از خودرو خارج کنید . پارکینگ هیچ مسئولیتی در قبال وسایل شخصی شما ندارد.2- دور تا دور خودروی خود را بررسی کنید و از مسئول حمل بخواهید که داخل برگه پارکینگ به صورت دقیق محل های ضربه دیده خودروی شما را (اگر جایی از خودرو قبلا ضربه یا خط و خش دارد) قید کند که در صورت آسیب خودرو ، سند معتبر داشته باشید.3- حتما جک و چراغ خطر و چرخ زاپاس و آچار خودروی خود را به مسئول پارکینگ نشان دهید که در برگه پارکنیگ وجود آنها را قید کند(در صورت ثبت در برگه پارکینگ نیازی به خارج کردن آنها از خودرو ندارید)4- در صورتی که روی خودروی خود لوازم غیر فابریکی مانند ضبط و باند دارید از مسئول پارکینگ بخواهید مشخصات دقیق آنها را در برگه پارکینگ قید کندپس از اینها، مسئول پارکینگ به شما یک قبض دو برگی می دهد که باید نسخه صورتی رنگ را تحویل کلانتری داده و نسخه سفید را نزد خود نگه دارید.در ضمن سوییچ خودرو را نیز به مسئول پارکینگ تحویل دهید و نگران نباشید!در این جا کار شما در کلانتری تمام است و می توانید به منزل بازگردید!3-پیگیری ثبت خودرو در پارکینگ:هنگامی که خودروی شما با جرثقیل به پارکینگ می رود باید دو پیامک دریافت کنید:اولی مبنی بر این که پلیس خودروی شما را به پارکینگ منتقب کردو دومی مبنی بر این که خودروی شما به پارکینگ وارد شد. اگر هر دو پیامک را دریافت نکردید، در ابتدا حتما با نصب برنامه &quot;پلیس من&quot; از کافه بازار و وارد شدن به قسمت &quot;ترخیص خودرو&quot; چک کنید که خودروی شما در پارکینگی که نام آن روی قبض پارکینگ نوشته شده وجود دارد یا نه.اگر وجود نداشت نگران نباشید، ممکن است خطای سیستمی یا تعلل مسئول پاکینگ باشد. حتما با شماره تلفن پارکینگ که روی قبض پارکینگ نوشته شده تماس بگیرید و این مورد را اعلام بکنید و تا زمان دریافت پیامک به پیگیری خود ادامه دهید. برای تسریع در کار خود به مسئول پارکینگ اعلام کنید که خودروی شما طبق استعلام پلیس در پارکینگ ثبت نشده.4-انتظار... : اگر خودروی شما برای حجاب توقیف شده باشد، باید حداقل یک به آن در پارکینگ استراحت دهید!از پرداخت هرگونه شیرینی! به ماموران یا سربازان کلانتری خودداری کنید زیرا در واقع ترخیص خودروی شما اصلا دست آنها نیست. پلیس امنیت اخلاقی باید شکایت خود را از روی خودروی شما بردارد.من پیشنهاد می کنم برای به حداقل رساندن رفت و آمد های خود، پس از اطمینان از ورود خودرو به پارکینگ 7 روز صبر کنید.5-مراجعه به کلانتری ای که خودروی خود را به آنجا بردید:روز 7 ام، صبح اول وقت یعنی ساعت 8 صبح به کلانتری ای که خودروی خود را به آنجا بردید به همراه قبض پارکینگ، کارت ملی، کارت ماشین (یا برگ سبز) ، وکالت نامه محضری (اگر خودرو به نام شما نیست) و گواهینامه  مراجعه کنید و بگویید که برای ترخیص خودرو آمده اید.آنها از شما تقاضا می کنند که یک کپی از مدارک خود به همراه دو برگ ترخیص تهیه کنید که آن هم مجددا مبلغی بین 10 تا 15 هزار تومان می شود که باید نقدا پرداخت کنید.سپس مراحل رفع توقیفی خودروی شما توسط مسئولان کلانتری انجام می شود و یک برگ ترخیص با مهر و امضای کلانتری به شما داده می شود و به قبض پارکینگ ضمیمه خواهد شد. مجددا تاکید می کنم که این برگه ترخیص و تاریخ مندرج در آن هیچ تاثیری در تاریخ ترخیص خودروی شما ندارد، در واقع نامه ترخیص کلانتری صرفا یکی از کارهاییست که باید انجام دهید.6-اصل ماجرا: خب، شما برگه ترخیص کلانتری را گرفته اید و کلانتری نیز به شما میگوید که برو پلیس +10 و پارکینگ و خودروی خود را بگیر. احتمالا خوشحال می شوید که داستان تمام شد اما اینطور نیست!ماموران کلانتری به اشتباه به همه خودرو های توقیفی، روند ترخیص عادی (مثلا به علت پارک ممنوع) را توضیح میدهند. اما ترخیص خودرو بابت توقیف به علت حجاب اندکی متفاوت است!در واقع هنگامی که برای خودروی شما پرونده توقیف کشف حجاب ثبت می شود، دو تا قفل روی پلاک شما می خورد. اولی قفل کلانتری که با گرفتن برگه ترخیص از کلانتری آن را باز کردید و قفل سخت تر، شکایت پلیس امنیت اخلاقی از خودروی شما که باید آن را از روی پلاک بردارید.پس پیشنهاد من به شما این است که برای جلوگیری از اتلاف وقت و هزینه، پس از دریافت برگه ترخیص کلانتری بدون این که به حرف کسی گوش کنید یا هزینه ای را در جای بپردازید مستقیما به مرحله بعد بیایید...7-مراجعه به پلیس امنیت اخلاقی:در این مرحله شما باید به پلیس امنیت اخلاقی مراجعه کنید تا شکایت خود را از روی پلاک شما بردارد.پلیس امنیت اخلاقی قبلا در خیابان وزرا بود اما الان ساختمان آن به خیابان گیشا منتقل شده:آدرس دقیق: بزرگراه جلال آل احمد، بعد از پل گیشا، خیابان جواد فاضل، پشت ایستگاه آتش نشانی، کوچه پارکاز جستجوی کلمه &quot;پلیس امنیت اخلاقی&quot; در گوگل یا نرم افزار های مسیریاب خودداری کنید زیرا به اشتباه شما را به آدرس قبلی می برند (هنوز ادرس این محل در نقشه ها آپدیت نشده!)می توانید &quot;کلانتری 137 گیشا&quot; را سرچ کنید یا البته بهتر است که با توجه به آدرس، موقعیت دقیق را خودتان روی نقشه پیدا کنید.لینک گوگل مپسوقتی به آنجا برسید احتمالا از خیل عظیم جمعیت آنجا بهت زده می شوید! بله، متاسفانه تقریبا همه برای همین کار مراجعه کرده اند. برای این که کارتان سریع تر به نتیجه برسد پیشنهاد می کنم حداقل ساعت 7 و نیم صبح آنجا باشید.نکته: قبل از این که به پلیس امنیت مراجعه کنید و همچنین در تمامی مراحل از به همراه داشتن مدارک کامل (کارت ملی - کارت ماشین یا برگ سبز - گواهینامه - قبض پارکینگ - وکالت نامه محضری اگر خودرو به نام شما نیست - بیمه نامه) و همچنین یک عدد کپی از هر کدام از آنها و حداقل 50 هزار تومان پول نقد و یک خودکار آبی اطمینان حاصل کنید.در ابتدا دم درب ورودی کارت خودرو و قبض پارکنیگ شما را چک میکنند و می توانید پس از آن با بازرسی بدنی وارد شوید.از آنجایی که اجازه ندارید لوازم الکترونیکی یا اشیا نوک تیز به داخل ساختمان ببرید جهت راحتی خود پیشنهاد می کنم که حداقل وسایل اضافی را به همراه داشته باشید.بعد از ورود بلافاصله و بدون درنگ به طبقه دوم (جایی که نوشته اداره خودرویی) مراجعه کنید و قبل از هر کاری نوبت بگیرید. آنجا به حدی شلوغ است که ممکن است در عرض 5 دقیقه 50 نفر نوبت بگیرند.تبریک میگویم شما یک مرحله از بقیه جلوتر هستید چون کپی مدارک خود را دارید اما همچنان یک چیز هست که باید تهیه کنید: تعهد نامه.بعد از گرفتن نوبت به طبقه پایین بیایید و از قسمتی که کپی میگیرند (کنار دستگاه ATM) یک برگه ی تعهد نامه تهیه کنید . اگر هم فراموش کردید که از برگه های کپی بگیرید یا پول نقد به همراه بیاورید مشکلی نیست، در آنجا دستگاه کپی و دستگاه ATM موجود است اما باید صف بایستید!(برای گرفتن تعهدنامه نیازی به صف نیست)برگه تعهد نامه را تا رسیدن نوبت خود پر کنید.صبر کنید تا شماره شما را بخوانند و به باجه مربوطه مراجعه کنید. قبض پارکینگ و تعهد نامه و سایر مدارکی که از شما می خواهند را به آنها تحویل دهید تا نامه اعمال شما را استعلام بگیرند.اگر تعداد موارد اخطار حجاب شما 3 مورد یا کمتر باشد یا این که داوطلبانه در مرتبه اول مراجعه کرده باشید، تقریبا کار شما تمام است. مدارک مورد نیاز و تعهدنامه و کپی ها را از شما میگیرند و می گویند که 12 به بعد به پلیس+10 مراجعه کنید.اما اگر موارد شما بیش از 3 مورد باشد، آنجاست که مراحل اداری شما اندکی پیچیده تر خواهد شد. اما باز هم نگران نباشید. در نهایت خودروی شما را به شما تحویل می دهند!8- بیشتر از سه مورد تخلف دارم چکار کنم؟ :*اگر شما سه مورد یا کمتر داشتید و در مرحله قبل کارتان با پلیس امنیت تمام شد نیازی نیست این مرحله را بخوانید.خب، حال که نامه اعمال شما از تخلفات سنگین است نیاز به تصمیم گیری مدیریت دارید . در این جا تعداد اخطار های حجاب شما را در پست قبض پارکینگ می نویسند و از شما میخواهند که به رییس مراجعه کنید تا ببینید او چه تصمیمی میگیرد (معمولا بین باجه ی 9 و 10 یا طبقه سوم)نحوه برخورد با رییس پلیس امنیت اخلاقی: خوب دقت کنید، این توصیه ها می تواند خودروی شما را یک هفته ای آزاد کند یا یک ماه در پارکینگ نگه دارد.لطفا دروغ نگویید: رییس پلیس تقریبا دسترسی به همه چیز دارد و می تواند ساعت و روز تخلف شما را با ذکر آدرس دقیق و حتی تصویر پلاک به شما نشان بدهد. پس اگر دروغ بگویید ظرف چند ثانیه دروغ شما فاش می شود و اعتماد رییس به شما از بین می رود.لطفا ناله نکنید: گوش رییس پلیس پر است از ناله ها و شیون ها و گریه ها، پس خصوصا اگر خانم هستید جدا از این کار پرهیز کنید چون حتی ممکن است حوصله او را سر ببرید و نتیجه عکس بگیرید.پوشش مناسب داشته باشید: با احترام به بانوان سرزمینم، هر محیطی پوشش مناسب خود را می طلبد. پس برای مراجعه ب پلیس امنیت اخلاقی از پوشش متناسب با قوانین و ضوابط جمهوری اسلامی ایران استفاده کنید. الزامی به استفاده از چادر نیست اما خانم ها بهتر است از مانتوی بلند جلوبسته ی آستین بلند گشاد و مقنعه یا روسری بزرگ و ضخیم استفاده کنند. بهتر است لاک ناخن نداشته باشید یا اگر دارید از دستکش استفاده کنید. آرایش نکنید یا حداقل makeup نکنید! آقایان نیز بهتر است با شلوار ساده کتان یا پارچه ای یا حداقل شلوار لی ساده بدون زاپ! و پیراهن آزاد و آستین بلند یا آستین کوتاه موجه و همچنین مدل موی نرمال استفاده کنند. ترجیحا اگر تتو دارید و قابل مخفی کردن است آن را مخفی کنید.اخلاق را رعایت کنید: رعایت ادب و اخلاق در همه جا نیاز است و حتی در برخی جاها ممکن است عدم رعایت آن برایتان گران تمام شود. به هیچ عنوان هر چیزی که شنیدید عصبی نشوید، تند جواب ندهید و بی احترامی نکنید. نیازی به پاچه خواری و چاپلوسی نیست. همین که مودب و با احترام برخورد کنید کفایت می کند. موارد و ملاحظات یا اعتراضات خود را به رییس پلیس بگویید: اگر 100 درصد اطمینان دارید که اشتباهی صورت گرفته به او اعلام کنید. یا اگر مورد خاصی دارید که نیاز مبرم به خودروی خود دارید، مثلا اگر در اسنپ کار می کنید و از آن کسب درآمد می کنید یا اگر پدر مریض خود را باید هر روز با خودرو به بیمارستان ببرید، اینها را به صورت شمرده و با آرامش مطرح کنید و به رییس اجازه دهید فکر کند. اما اگر به هر دلیلی با اعتراضات شما مخالفت کرد یا سند و مدرکی ارائه داد که نشان می داد اعتراضات شما درست نبوده، با او بحث نکنید و تاکید می کنم که ادب و اخلاق را رعایت کنید.از رییس پلیس راه حل بخواهید: در نهایت مساله را به خود او بسپارید. یک قانون راجع به مساله ی حجاب وجود دارد که به صورت عمومی اعلام نشده و آن موضوع این است که: 3 مورد اخطار یک هفته توقیفی دارد و به ازای هر مورد اخطار بیشتر یک هفته اضافه میشود. پس یعنی اگر ماشین شما 6 مورد اخطار داشت، قانونا باید یک ماه توقیف باشد اما اگر موارد بالا را رعایت کنید و در نهایت به رییس پلیس بگویید &quot;الان دستور شما چیست؟&quot;، احتمال زیادی دارد که تخفیف برای شما قائل شود. مثلا 6 مورد را به جای 30 روز، 10 روزه ترخیص کند.در نهایت رییس پلیس برای شما تصمیمی میگیرد. ممکن است که رضایت بدهد همان لحظه کار شما انجام شود که خب طبیعتا مجدد نوبت میگیرید و روال شماره 7 را طی میکنید. یا ممکن است به شما بگوید که برو و فلان روز بیا (برای مثال برو هفته بعد بیا یا ماه بعد بیا) که خب طبیعتا شما باید از دستور و تصمیم ایشان طبعیت کنید.پیشنهاد می کنم اگر تاریخ اعلامی رییس پلیس به شما خیلی دیر بود (مثلا یک ماه آینده یا سه هفته آینده بود)، هفته ای یک بار (نه بیشتر!) سری به ایشان بزنید و از ایشان خواهش کنید (با رعایت توصیه های بالا) که در مورد شما تخفیفی قائل شود. قطعی نیست اما احتمال دارد که این کار موجب شود خودروی شما زودتر ترخیص شود (شاید هم نشود!)در بدترین حالت، روزی که رییس پلیس به شما اعلام کرده تاریخ ترخیص خودروی شماست که شما مجدد به پلیس امنیت اخلاقی مراجعه می کنید و رییس پلیس روی قبض شما یک دستور می نویسد و مسئولان ترخیص در اداره خودرویی پلیس امنیت طبق روال شماره 7 این مقاله اقدام به برداشتن شکایت از روی پلاک شما میکنند.9-مراجعه به پلیس +10:بعد از اتمام کار شما در پلیس امنیت ملی آنها از شما می خواهند که 12 ظهر به بعد، به پلیس +10 مراجعه کنید. اما من پیشنهاد می کنم که زودتر هم سری به آنجا بزنید (مثلا ساعت 11 ) و به باجه ترخیص خودرو مراجعه کنید.در آنجا همان مدارکی که برای پلیس امنیت آماده کرده بودید را از شما میگیرند و مبلغی (حدودا 60 هزار تومان) بابت استعلامات و درخواست ها به صورت pos از شما دریافت می کنند.اگر خلافی داشته باشید پرینت خلافی خود را از آنجا میگیرید و با مراجعه به نزدیک ترین ATM بانک ملی آن را پرداخت می کنید و به همراه رسید، آن را به مسئول باجه پلیس +10 تحویل می دهید.(نیازی به پرداخت عوارض سالیانه، عوارض آزاد راهی و عوارض طرح ترافیک نیست و فقط باید خلافی راهنمایی رانندگی خود را تسویه کنید). به هیچ عنوان خلافی خود را اینترنتی یا از نرم افزار های واسط پرداخت نکنید زیرا انجام عملیات تسویه آنلاین ممکن است چند روز طول بکشد و در کار شما اختلال ایجاد کند اما پرداخت با قبض پلیس +10 تسویه آنی انجام می دهد.حتما شماره موبایلی را که در هنگام خرید خودرو ثبت کردید به همراه داشته باشید. چون یک کد را باید از پیامک آن برای مسئول باجه بخوانید.پس از آن پلیس +10 به شما یک برگه درخواست ترخیص می دهد و همزمان نیز برای شما یک پیامک می آید که درخواست ترخیص شما ثبت شد اما شما باید منتظر پیامک دوم باشید. پیامک دوم به معنی تایید درخواست ترخیص از سوی واحد ترخیص است.10- مراجعه به پارکینگ: پس از دریافت پیامک دوم که مبلغ هزینه ی پارکینگ در آن نوشته شده، به خودپرداز ملی مراجعه کنید و مبلغ پارکینگ را به شماره کارتی که روی برگه درخواست ترخیص چاپ شده واریز کنید و به همراه رسید پرداخت، قبض پارکینگ و برگه درخواست ترخیص به آدرس پارکینگی که خودروی شما در آنجا توقیف شده مراجعه کنید (آدرس پارکینگ معمولا روی قبض پارکینگ نوشته شده یا اگر نیست از کلانتری ای که خودروی شما را از آنجا بردند می توانید بپرسید)مدارک گفته شده را به مسئول پارکینگ تحویل دهید و احتمالا مبلغی را بابت هزینه جرثقیل در همانجا از شما میگیرند (داخل پارکینگ کارت می کشند).دقت کنید که تنها هزینه ی جرثقیل را داخل پارکینگ پرداخت کنید و هزینه پارکینگ را به همان شماره کارتی که روی برگه درخواست ترخیص بود با atm کارت به کارت کنید.از هزینه جرثقیل تعجب نکنید، ممکن است چیزی حدود 1 میلیون تومان (در تاریخ 7 آبان 1402) باشد!پس از پرداخت یک برگه با عنوان &quot;خروج بلامانع است&quot; یا چیزی مشابه آن میگیرید و با کمک مسئولان پارکینگ، خودروی خود را در پارکینگ پیدا می کنید و آن را تحویل میگیرید.هنگام تحویل تمامی لوازم خودرو مانند زاپاس و جک و ... را چک کنید و از سالم بودن خودروی خود اطمینان حاصل کنید.در نهایت هنگام خروج برگه ی &quot;خروج بلامانع است&quot; را تحویل دهید.سعی کردم در این مقاله به تمامی چالش هایی که خودم برای ترخیص خودرو به آن بر خوردم و تمامی سوالاتی که داشتم و هیچکس پاسخگوی آن نبود پاسخ دهم تا شما برای ترخی خودروی خود با حداقل چالش ها روبرو باشید.امیدوارم هر روزتون از دیروز بهتر باشهپایان</description>
                <category>ali aharian</category>
                <author>ali aharian</author>
                <pubDate>Mon, 30 Oct 2023 09:41:27 +0330</pubDate>
            </item>
            </channel>
</rss>