1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

(--(: این 18 تکنیک کوتاه‌سازی کدهای جاوا اسکریپت، شما را شگفت‌زده می‌کند! :)--!)

شروع موضوع توسط AftabGardoon ‏22/4/18 در انجمن JS

  1. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    یاهو...
    [​IMG]
     
    Roshana. و n@der از این پست تشکر کرده اند.
  2. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    هیچ‌‌چیز به‌اندازه کوتاه‌سازی و مهم‌تر از آن شفاف‌سازی کدها در دنیای برنامه‌نویسی اهمیت ندارد. جاوا اسکریپت نیز از این قاعده مستثنا نیست و شما به‌عنوان یک طراح جاوا اسکریپت مجبور هستید از تکنیک‌هایی برای کوتاه کردن کدهای خود استفاده کنید. برنامه‌نویسان در طول دوران کاری خود یاد می‌گیرند که چگونه می‌توانند کدهای طولانی را فشرده و خلاصه‌ کنند. این ‌کار نه‌تنها به درک بهتر کدها کمک می‌کند، بلکه باعث می‌شود تا کدهای بلند کوتاه شوند و همچنین توانایی شما در خلق برنامه‌های منطبق با متدولوژی‌های روز دنیای نرم‌افزار را به‌خوبی نشان می‌دهد.
     
    Roshana.، pcmonk و n@der از این ارسال تشکر کرده اند.
  3. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    عملگر سه‌جانبه
    این تکنیک به‌شکل قابل توجهی در کدهای شما صرفه‌جویی می‌کند. به‌ویژه زمانی که در نظر دارید از ترکیب دستورات if…else در یک خط استفاده کنید.
    کد بلند
    کد:
    const x = 20;
    let answer;
    if (x > 10) {
        answer = ‘greater than 10’;
    } else {
        answer = ‘less than 10’;
    }
    کد کوتاه شده
    کد:
    const answer = x > 10 ? ‘greater than 10’ : ‘less than 10’;
     
    Roshana.، pcmonk و n@der از این ارسال تشکر کرده اند.
  4. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    کوتاه کردن ارزیابی‌ها
    زمانی که مقدار یک متغیر به متغیر دیگری اختصاص داده می‌شود، باید اطمینان حاصل کنیم که متغیر مبدأ به null تعریف نشده یا خالی اشاره نکرده باشد.
    شما می‌توانید از یک دستور if بلند با چند دستور شرطی یا از یک عبارت ارزیابی کوتاه شده استفاده کنید.


    کد بلند
    کد:
    if (variable1 !== null || variable1 !== undefined || variable1 !== ‘’) {
         let variable2 = variable1;
    }
    کد کوتاه شده

    کد:
    const variable2 = variable1  || ‘new’;
     
    Roshana.، pcmonk و n@der از این ارسال تشکر کرده اند.
  5. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    کوتاه کردن دستورات ارزیابی
    زمانی که یک دستور if را برای یک ارزیابی ساده به کار می‌برید، اپراتورهای تخصیص داده شده را می‌توانید حذف کنید.
    کد بلند
    کد:
    if (likeJavaScript === true)
    کد کوتاه شده
    کد:
    if (likeJavaScript)
     
    Roshana.، pcmonk و n@der از این ارسال تشکر کرده اند.
  6. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    کوتاه کردن حلقه‌های جاوا اسکریپت
    این تکنیک واقعاً مفید است، به‌ویژه اگر در نظر دارید تنها از جاوا اسکریپت استفاده کنید و به کتابخانه‌های خارجی همچون جی‌کوئری یا lodash اعتماد ندارید.
    کد بلند
    کد:
    for (let i = 0; i < allImgs.length; i++)
    کد کوتاه شده
    کد:
    for (let index of allImgs)
    کوتاه شده برای Array.forEach
    کد:
    function logArrayElements(element, index, array) {
      console.log(“a[“ + index + “] = “ + element);
    }
    [2, 5, 9].forEach(logArrayElements);
    // logs:
    // a[0] = 2
    // a[1] = 5
    // a[2] = 9
     
    Roshana.، pcmonk و n@der از این ارسال تشکر کرده اند.
  7. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    نتیجه ای که از پست قبل گرفتیم:))
    به‌جای نوشتن شش خط کد برای اختصاص یک مقدار پیش‌فرض، اگر پارامتر مورد نظر صفر یا نامشخص است، این توانایی را داریم تا از یک اپراتور منطقی ساده استفاده و آن چند خط کد را در یک خط خلاصه‌ کنیم!
     
    Roshana. و n@der از این پست تشکر کرده اند.
  8. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    کوتاه کردن ارزیابی‌ها
    به‌جای نوشتن شش خط کد برای اختصاص یک مقدار پیش‌فرض، اگر پارامتر مورد نظر صفر یا نامشخص است، این توانایی را داریم تا از یک اپراتور منطقی ساده استفاده و آن چند خط کد را در یک خط خلاصه‌ کنیم.
    کد بلند
    کد:
    let dbHost;
    if (process.env.DB_HOST) {
      dbHost = process.env.DB_HOST;
    } else {
      dbHost = ‘localhost’;
    }
    کد کوتاه شده
    کد:
    const dbHost = process.env.DB_HOST || ‘localhost’;
     
    Roshana. و pcmonk از این پست تشکر کرده اند.
  9. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    مقدار پایه Decimal
    به‌جای آنکه اعداد را با لشگری از صفرها در یک دستور بنویسید، این قابلیت را در اختیار دارید تا از شکل نمایی استفاده کنید. به ‌طور مثال، 1e7 به‌معنای 1 همراه با 7 صفر است.
    کد بلند
    کد:
    for (let i = 0; i < 10000; i++) {}
    کد کوتاه شده
    کد:
    for (let i = 0; i < 1e7; i++) {}

    همه ارزیابی‌های زیر صحیح هستند.


    1e0 === 1;
    1e1 === 10;
    1e2 === 100;
    1e3 === 1000;
    1e4 === 10000;
    1e5 === 100000;
     
    Roshana. و pcmonk از این پست تشکر کرده اند.
  10. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    کوتاه کردن فرآیند تخصیص اشیا
    تعریف object در جاوا اسکریپت زندگی را بیش از پیش ساده کرده است. ES6 حتی یک راهکار ساده‌تر برای اختصاص خاصیت‌ها به اشیا را پیشنهاد داده است. اگر نام یک خاصیت یکسان با نام کلیدی است، شما می‌توانید از مزیت کوتاه کردن کدها استفاده کنید.
    کد بلند
    کد:
    const obj = { x:x, y:y };
    کد ‌کوتاه شده
    کد:
    const obj = { x, y };