جاوااسکریپت

۸۰ سوال مصاحبه فرانت‌اند با توضیح اختصاصی - قسمت اول

Updated 1 year ago

۸۰ سوال مصاحبه فرانت‌اند با توضیح اختصاصی - قسمت اول
September 2nd, 2023 / 23 views

سلام دوستان. توی اولین قسمت از مجموعه پست‌های سوالات مصاحبه فرانت‌اند می‌خوایم ۱۰ تا سوال زیر رو بررسی کنیم:

۱. چه تکنیک‌هایی برای بهینه‌سازی یک برنامهٔ فرانت‌اند می‌شناسین؟ ۲. فایل package-lock.json توی پروژه‌های فرانت‌اندی چیه و چه کاربردی داره؟ ۳. چطوری می‌تونیم یک برنامهٔ فرانت‌اندی Maintainable داشته باشیم؟ ۴. کاربرد Generic ها توی تایپ‌اسکرپیت چیه؟ ۵. اتریبیوت tabindex توی HTML چیه؟ ۶. آیا جاوااسکریپت یک زبان Parallel هست یا Concurrent؟ ۷. چه زمانی از Tuple توی تایپ‌اسکریپت استفاده نکنیم؟ ۸. توی تایپ‌اسکریپت کلمه‌کلیدی declare چکار می‌کنه؟ ۹. چند تا از تایپ‌های پرکاربرد تایپ‌اسکریپت رو نام ببرین ۱۰. دستور Git زیر چکار می‌کنه؟

قبل از ادامه می‌خوام این پست رو تقدیم کنم به صابر راستی کردار عزیز. براش دعا و از اون حمایت کنیم. همین فونت قشنگی که من با اون این پست رو نوشتم و شما هم با اون مشغول خوندن این پست هستین، حاصل کار صابرِ عزیز هست.

خب، بریم که سوالا رو بررسی کنیم 🔥

۱. چه تکنیک‌هایی برای بهینه‌سازی یک برنامهٔ فرانت‌اند می‌شناسین؟ برای بهینه‌سازی یک برنامهٔ فرانت‌اند تکنیک‌های زیادی وجود داره. بعضی از مهمترین اونها مثل:

بهینه‌سازی فایل‌های برنامه (باندل) با تکنیک‌هایی مثل Tree shaking و Compression و Minification حذف Import های بلااستفاده جداسازی کدها و تقسیم اونها به فایل‌های کوچیک‌تر (Code Splitting) با استفاده از تکنیک‌هایی مثل Dynamic Import استفاده از Lazy Loading برای لود کردن محتوا فقط در شرایط نیاز استفاده از کامپوننت‌های Async هنگام استفاده از فریم‌ورک‌ها لود کردن کامپوننت‌ها فقط در شرایط نیاز (Conditional components loading) مدیریت کردن درخواست‌های API با استفاده تکنیک‌هایی مثل AbortController

۲. فایل package-lock.json توی پروژه‌های فرانت‌اندی چیه و چه کاربردی داره؟ این فایل به صورت خودکار توسط ابزارهای مدیریت پکیج مثل npm و yarn تولید میشه و توی اون، ورژن دقیق پکیج‌هایی که توی برنامه استفاده شده ذخیره میشه. وقتی پروژهٔ ما توی محیط‌های دیگه Deploy میشه یا یک توسعه‌دهندهٔ جدید قراره روی اون کار کنه، وجود فایل package-lock.json هنگام اجرای دستور npm install این اطمینان رو به ما میده که دقیقاً همون ورژن از پکیج‌هایی برای ما نصب بشن که انتظار داریم. این کار باعث میشه که برنامهٔ ما توی محیط‌های مختلف رفتارهای یکسان و قابل پیش‌بینی داشته باشه.

۳. چطوری می‌تونیم یک برنامهٔ فرانت‌اندی Maintainable داشته باشیم؟ برنامهٔ Maintainable برنامه‌ای هست که به راحتی و در هر زمانی می‌تونیم اون رو ویرایش کنیم، باگ‌های اون رو برطرف کنیم، توسعه بدیم و به اون توسعه‌دهنده‌های دیگه‌ای اضافه کنیم. چنین برنامه‌ای ارزش نگهداری داره یا به‌قول معروف Maintainable هست. برنامه‌ای که کمترین هزینه و بیشترین منفعت رو برای کسب و کارها به همراه داره.

موارد زیر کمک می‌کنن که یک برنامهٔ Maintainable داشته باشیم:

Best Practice ها و استانداردهای معروف و همگانی رو رعایت کنیم 1-از فریم‌ورک‌ها و کتابخونه‌های معروف استفاده کنیم 2-ابزارها و کتابخونه‌ها رو به‌طور مرتب بروزرسانی کنیم 3-به‌صورت ماژولار پروژه‌مون رو توسعه بدیم 4-از ابزارهای تست خودکار (Automated test) استفاده کنیم 5-از قسمت‌های مختلف برنامه و نحوهٔ کار با اونها مستندات تهیه کنیم 6-از قابلیت‌های ابزارهای Version Control استفاده کنیم

۴. کاربرد Generic ها توی تایپ‌اسکرپیت چیه؟ Generic ها کمک می‌کنن بتونیم توابع، کلاس‌ها و اینترفیس‌هایی داشته باشیم که Reusability (قابلیت استفاده مجدد) بیشتری دارن. فرض کنیم تابعی داریم که پارامترهای اون محدود به نوع number هستن:

function getLastItem(items: number[]): number {
  return items[items.length - 1];
}