جستجو برای:
سبد خرید 0
  • صفحه اصلی
  • وبلاگ
  • تماس با ما
  • درباره ما
logo-frontendi-150
0
  • خانه
  • دوره ها
  • وبلاگ فِرانت اِندی
  • تماس با ما
ورود / عضویت
  • صفحه اصلی
  • وبلاگ
  • تماس با ما
  • درباره ما
ورود / عضویت

وبلاگ

فرانت اندی > وبلاگ فِرانت اِندی > فرانت اند > 400 سوال مصاحبه فرانت اند ! بزرگترین لیست سوالات مصاحبه فرانت اند !

400 سوال مصاحبه فرانت اند ! بزرگترین لیست سوالات مصاحبه فرانت اند !

18 آبان 1403
ارسال شده توسط احمد احمدنژاد
فرانت اند
سوالات مصاحبه فرانت اند - سوال مصاحبه فرانت اند - سوالات مصاحبه Front End - سوال مصاحبه front end

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

تو این مقاله 400 عدد از سوالات مصاحبه فِرانت اِند رو جمع آوری کردیم، این دقیقاً همون چیزیه که نیاز داری تا خودت رو حسابی برای جلسه فنی آماده کنی.
سوال‌ هایی که اینجا هست، جز مواردی هست که بارها و بارها تو مصاحبه‌ ها از آدم‌ها پرسیده میشه. با دونستن جواب این سوالات، دیگه نه تنها استرس نمیگیری، بلکه میتونی با اعتماد به نفس بیشتری سر جلسه حاضر بشی و توانایی‌ هات رو نشون بدی.

از طرفی، آماده بودن برای این سوالات نشون میده که نه تنها تو مباحث پایه‌ ای جاوااسکریپت، CSS و HTML قوی هستی، بلکه حتی مفاهیم پیشرفته‌ تر مثل رندرینگ سمت سرور، مدیریت وضعیت و ابزارهای جدید تر رو هم بلدی.
این به مصاحبه‌ کننده‌ ها ثابت میکنه که تو واقعاً بروز هستی و روی کارت مسلطی.

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

تو این لیست 400 عددی سعی کردیم سوالاتی که مربوط به HTML , CSS , JS و ابزار های عمومی فِرانت اِند هستن رو مطرح کنیم اما ممکنه چند سوال از React هم باشه ( اگه React Developer نیستید، سوالهایی که درمورد React هست رو مطالعه نکنید )

بخش اول سوالات مصاحبه فرانت اند

تفاوت == و === در جاوااسکریپت چیه؟

عملگر == مقادیر رو بدون در نظر گرفتن نوع داده ای مقایسه میکنه و تبدیل نوع (Type Coercion) انجام میده. اما === علاوه بر مقدار، نوع داده رو هم بررسی میکنه. برای مثال:

5 == ‘5’ // true
5 === ‘5’ // false

وظیفه اصلی box-sizing در CSS چیه؟

خاصیت box-sizing کنترل میکنه که چطور اندازه عناصر محاسبه بشه. حالت پیشفرض content-box هست که فقط محتوای عنصر اندازه گرفته میشه و پدینگ و حاشیه ها حساب نمیشن. در حالت border-box، پدینگ و حاشیه ها هم در اندازه نهایی عنصر لحاظ میشن.

فرق let و var در جاوااسکریپت چیه؟

let در ES6 معرفی شد و محدوده اش بلاک اسکوپ (Block Scope) هست، یعنی فقط داخل بلوک قابل استفاده ست. var اما فانکشن اسکوپ (Function Scope) هست و مشکلاتی مثل هوئیستینگ (Hoisting) داره که ممکنه باعث مشکلات غیرمنتظره بشه.

تفاوت null و undefined چیه؟

 undefined به معنای اینه که یه متغیر تعریف شده ولی مقدار نگرفته. null به معنای یه مقدار خالی یا پوچ عمدیه که برنامه نویس به متغیر اختصاص میده.

کاربرد Flexbox در CSS چیه؟

Flexbox سیستمی برای چیدمان عناصر هست که به راحتی میتونیم عناصر رو در یک بعد (ستون یا ردیف) مرتب کنیم. به خصوص برای چیدمان های پیچیده که نیاز به هم ترازی و توزیع فضای پویا دارن، خیلی مفیده.

عملکرد this در جاوااسکریپت چجوریه؟

مقدار this به بستری که تابع در اون اجرا میشه بستگی داره. توابع معمولی this رو به آبجکت گلوبال (یا undefined در حالت strict) ارجاع میدن، در حالی که Arrow Functions مقدار this رو از محیط بیرونی به ارث میبرن.

مفهوم DOM چیه و چجوری باهاش کار میکنیم؟

DOM (Document Object Model) یه ساختار داده ایه که مرورگر از صفحه HTML میسازه و اجازه میده با جاوااسکریپت به عناصر دسترسی داشته باشیم و تغییرشون بدیم. مثلاً میتونیم با document.getElementById() یه عنصر رو بگیریم و محتوای اون رو تغییر بدیم.

تفاوت padding و margin در CSS چیه؟

padding فضای داخلی عنصر رو نسبت به محتوای اون تعیین میکنه، یعنی فاصله بین محتوا و حاشیه عنصر. margin فاصله بیرونی عنصر از عناصر دیگه رو مشخص میکنه.

یه callback function چیه و کجا استفاده میشه؟

یه تابع که به عنوان آرگومان به تابع دیگه ای پاس داده میشه و وقتی عملیات اون تابع تکمیل شد، فراخوانی میشه. معمولاً توی توابع غیرهمزمان (Async) استفاده میشه، مثل درخواست های AJAX.

چرا باید از async/await استفاده کنیم؟

async/await یه روش ساده و خوانا برای مدیریت توابع غیرهمزمانه و جایگزین مناسبی برای Promises و callback های تو در تو هست. با استفاده از await میتونیم به راحتی منتظر نتیجه یه تابع async بمونیم و کدهای ما شبیه به کدهای همزمان بشن.

بخش دوم سوالات مصاحبه فرانت اند

فرق GET و POST در درخواست‌های HTTP چیه؟

 GET برای گرفتن داده از سرور استفاده میشه و پارامترها رو توی URL میفرسته، بنابراین محدودیت اندازه داره. POST برای ارسال داده به سرور استفاده میشه و داده‌ها رو در بدنه درخواست ارسال میکنه، پس ایمن‌ تر و مناسب‌ تر برای داده‌های حجیم یا حساس هست.

ریسپانسیو بودن وب‌ سایت یعنی چی؟

ریسپانسیو بودن یعنی وب‌ سایت به درستی روی همه دستگاه‌ ها (موبایل، تبلت، دسکتاپ) نمایش داده بشه.برای اینکار از تکنیک‌ هایی مثل مدیا کوئری‌ها، طراحی فلوئید، و تصاویر واکنش‌ گرا استفاده می‌کنیم.

تفاوت بین inline و block در CSS چیه؟

عناصر block کل عرض موجود رو اشغال میکنن و از خط بعد شروع میشن، اما عناصر inline فقط به اندازه محتوای خودشون فضا میگیرن و توی یک خط میمونن. برای مثال، <div> یک عنصر block هست و <span> یک عنصر inline.

مفهوم Web Accessibility چیه؟

دسترسی‌ پذیری (Accessibility) یعنی طراحی وب‌ سایت به گونه‌ای که همه افراد، حتی کسانی که محدودیت‌ هایی مثل کم‌ بینایی یا مشکلات حرکتی دارن، بتونن به راحتی از سایت استفاده کنن. این شامل مواردی مثل استفاده از تگ‌های ARIA و تست با ابزار های کمکی میشه.

ماژول‌های ES6 چطور کار میکنن؟

در ES6، میتونیم کدها رو به قطعات کوچیک و ماژولار تقسیم کنیم. از export برای خروجی گرفتن و از import برای وارد کردن این ماژول‌ ها استفاده میکنیم. این باعث میشه کدها خواناتر و مدیریت‌ پذیرتر باشن.

فرق بین forEach و map در جاوااسکریپت چیه؟

forEach روی هر عنصر آرایه اجرا میشه ولی چیزی برنمی‌گردونه. map هم روی هر عنصر آرایه اجرا میشه، اما یک آرایه جدید با نتایج برمی‌گردونه. map برای زمانی که بخوایم داده‌ ها رو تغییر بدیم و آرایه جدید بسازیم، مناسب‌تره.

ویژگی‌های CSS Grid چیه؟

CSS Grid یه سیستم چیدمان دو بعدی قوی برای ساختارهای پیچیده و مرتب کردن عناصر در ردیف‌ها و ستون‌ها هست. برخلاف Flexbox که بیشتر برای چیدمان یک بعدی استفاده میشه، Grid برای چیدمان دو بعدی مناسبه.

یه promise چیه و چرا استفاده میشه؟

Promise در جاوااسکریپت یه شیء برای مدیریت عملیات‌ های غیر همزمان هست. میتونیم از then و catch برای کنترل نتیجه موفقیت‌ آمیز یا خطا استفاده کنیم. این به ما کمک میکنه که از callbackهای تو در تو جلوگیری کنیم.

تفاوت call() و apply() چیه؟

هر دو برای فراخوانی یک تابع با this خاص استفاده میشن. تفاوتشون اینه که call() آرگومان‌ ها رو به صورت جداگانه میگیره، اما apply() آرگومان‌ ها رو به شکل آرایه میگیره.

چرا از preload برای فونت‌ها در HTML استفاده میکنیم؟

preload به مرورگر میگه که فایل فونت رو زودتر بارگذاری کنه تا وقتی صفحه بارگذاری میشه، سریع‌ تر و بدون تاخیر از فونت استفاده بشه. این باعث بهبود عملکرد و تجربه کاربری میشه.

بخش سوم سوالات مصاحبه فرانت اند

مفهوم Shadow DOM در وب کامپوننت‌ ها چیه؟

 Shadow DOM بخشی از Web Components هست که به ما اجازه میده یه دام جداگانه و مستقل ایجاد کنیم. این باعث میشه استایل‌ ها و اسکریپت‌ های داخل اون بخش به بقیه صفحه نشت نکنن و همین‌طور از استایل‌ های خارجی تأثیر نگیرن.

ویژگی‌های کلیدی TypeScript چیه؟

 TypeScript یه زبان برنامه‌ نویسی است که روی جاوااسکریپت ساخته شده و تایپ‌ دهی ایستا (Static Typing) رو اضافه میکنه. ویژگی‌ هایی مثل کلاس‌ ها، اینترفیس‌ ها و قابلیت‌ های ES6 رو داره و به بهبود دیباگ و کدنویسی کمک میکنه.

روش جلوگیری از رخ دادن Reflow در مرورگر چیه؟

برای جلوگیری از Reflow باید تغییرات DOM رو به حداقل برسونیم، از ویژگی‌های CSS مثل transform به جای top یا left استفاده کنیم و اندازه تصاویر رو از قبل مشخص کنیم. همچنین، از DocumentFragment برای اضافه کردن چند عنصر به DOM استفاده کنیم.

تفاوت em و rem در CSS چیه؟

em به اندازه فونت عنصر والد وابسته‌ ست، در حالی که rem به اندازه فونت ریشه (عنصر html) وابسته هست. استفاده از rem معمولاً ترجیح داده میشه چون مقیاس‌ پذیری بهتری فراهم میکنه.

تفاوت بین Progressive Enhancement و Graceful Degradation چیه؟

Progressive Enhancement یعنی اول یه نسخه ساده و قابل دسترس برای همه مرورگرها میسازیم و بعد قابلیت‌ های پیشرفته رو اضافه میکنیم. Graceful Degradation برعکسه، یعنی اول یه نسخه پیشرفته میسازیم و بعد برای مرورگرهای قدیمی‌ تر ساده‌ ترش میکنیم.

روش کار کردن با Fetch API چطوره؟

Fetch API یه روش مدرن برای انجام درخواست‌ های HTTP در جاوااسکریپت هست. با fetch() میتونیم داده‌ ها رو از سرور بگیریم یا ارسال کنیم و از then و catch برای مدیریت پاسخ و خطا استفاده کنیم. برای مثال:

fetch(‘https://api.example.com/data’)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(‘Error:’, error));

عملکرد CSS Preprocessors مثل Sass چیه؟

CSS Preprocessor مثل Sass به ما کمک میکنه که از قابلیت‌های پیشرفته مثل متغیر ها، توابع، و تو در تویی در CSS استفاده کنیم. این باعث میشه کدنویسی سریع‌ تر و سازماندهی بهتری داشته باشیم. فایل‌های Sass به CSS کامپایل میشن و قابل استفاده در مرورگر میشن.

چطور از debounce برای بهینه کردن رویدادها استفاده میکنیم؟

debounce یه تکنیکه که باعث میشه یه تابع فقط وقتی اجرا بشه که یک رویداد متوالی (مثل اسکرول یا تایپ) برای مدت زمان مشخصی متوقف بشه. این کمک میکنه که عملکرد صفحه بهینه بشه و تعداد دفعات اجرای توابع کاهش پیدا کنه.

Webpack چیه و چرا استفاده میشه؟

Webpack یه ابزار ساخت (Build Tool) برای باندل کردن فایل‌های پروژه، مثل جاوااسکریپت، CSS، و تصاویر هست. این ابزار به ما کمک میکنه که کدها رو بهینه و ماژولار کنیم و از پلاگین‌های مختلف برای کارهای اضافی مثل مینیفای کردن استفاده کنیم.

تفاوت localStorage و sessionStorage چیه؟

هر دو برای ذخیره‌ سازی داده در مرورگر استفاده میشن، اما localStorage داده‌ها رو حتی بعد از بستن مرورگر حفظ میکنه، در حالی که sessionStorage داده‌ ها رو فقط تا زمانی که تب یا پنجره مرورگر بازه نگه میداره.

بخش چهارم سوالات مصاحبه فرانت اند

مفهوم ARIA در دسترسی‌ پذیری وب چیه؟

ARIA (Accessible Rich Internet Applications) مجموعه‌ ای از ویژگی‌ هاست که به ما کمک میکنه وب‌ سایت‌ های قابل دسترس‌ تری بسازیم، به ویژه برای کاربران با ناتوانی‌ ها. این ویژگی‌ ها اطلاعاتی اضافی در مورد نقش و وضعیت عناصر به صفحه اضافه میکنن.

فرق undefined و not defined در جاوااسکریپت چیه؟

undefined وقتی رخ میده که یه متغیر تعریف شده ولی مقدار نگرفته. not defined وقتی رخ میده که متغیر اصلاً تعریف نشده و جاوااسکریپت نمیتونه اون رو پیدا کنه.

چطور میشه عملکرد رندرینگ مرورگر رو بهینه کرد؟

بهینه‌ سازی شامل کاهش تعداد Repaint و Reflow، به کار بردن تصاویر فشرده، استفاده از requestAnimationFrame برای انیمیشن‌ ها، و کم کردن استفاده از DOM های پیچیده و سنگین هست.

چطور میتونیم یه شیء رو در جاوااسکریپت کپی عمیق (Deep Copy) کنیم؟

برای کپی عمیق میتونیم از روش‌ های مثل JSON.parse(JSON.stringify(obj)) استفاده کنیم، اما این روش محدودیت‌ هایی داره. یا میشه از کتابخونه‌ هایی مثل lodash استفاده کرد که قابلیت کپی عمیق بهتری دارن.

تفاوت بین inline styles و external stylesheets چیه؟

استایل‌ های inline به عنصر HTML اضافه میشن و فقط همون عنصر رو تحت تأثیر قرار میدن، در حالی که external stylesheets فایل‌های جداگانه CSS هستن که به صفحه لینک میشن و میتونن چندین صفحه رو استایل بدن. استفاده از external stylesheets برای نگهداری و بهینه‌ سازی بهتره.

چطور از event delegation استفاده میکنیم؟

event delegation یه تکنیکه که به ما اجازه میده رویدادها رو به یک عنصر والد اضافه کنیم، به جای این که به عناصر فرزند جداگانه اضافه کنیم. این باعث میشه کد تمیزتر و عملکرد بهتر بشه، به خصوص وقتی تعداد عناصر فرزند زیاد باشه.

تفاوت static و relative در موقعیت‌ دهی CSS چیه؟

موقعیت‌ دهی static حالت پیشفرض هست و عنصر رو طبق جریان معمولی صفحه قرار میده. موقعیت‌ دهی relative عنصر رو نسبت به موقعیت اصلی خودش جابه‌ جا میکنه و فضای باقی‌مانده صفحه تغییر نمیکنه.

چطور از reduce() در جاوااسکریپت استفاده میکنیم؟

reduce() روی آرایه‌ها استفاده میشه تا یه مقدار واحد از تمام عناصر تولید کنیم. مثلاً برای جمع زدن عناصر یه آرایه:

const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((acc, curr) => acc + curr, 0); // 10

مفهوم Lazy Loading چیه؟

Lazy Loading یعنی بارگذاری محتوا یا منابع (مثل تصاویر یا اسکریپت‌ها) فقط وقتی که بهشون نیاز داریم، مثلاً وقتی کاربر به بخشی از صفحه اسکرول میکنه. این باعث میشه سرعت بارگذاری اولیه صفحه بهتر بشه.

چطور میتونیم یه فایل CSS رو به صورت async بارگذاری کنیم؟

میتونیم از ویژگی media استفاده کنیم و بعد از بارگذاری، اون رو به all تغییر بدیم. یا از کتابخونه‌ ها و راه‌ حل‌ های دیگه برای بارگذاری غیر همزمان استفاده کنیم.

بخش پنجم سوالات مصاحبه فرانت اند

کاربرد Service Worker چیه؟

Service Worker یه اسکریپت پس‌ زمینه در مرورگر هست که به ما اجازه میده درخواست‌ های شبکه رو رهگیری کنیم و تجربه آفلاین ایجاد کنیم. این امکان ذخیره‌ سازی کش برای بارگذاری سریع‌ تر و قابلیت‌ های پیشرفته‌ تر مثل نوتیفیکیشن‌ های پوش رو فراهم میکنه.

مفهوم Hoisting در جاوااسکریپت چیه؟

Hoisting یعنی متغیرها و توابع به بالای محدوده خودشون منتقل میشن، به این معنا که میشه قبل از تعریف، ازشون استفاده کرد. مثلاً:

console.log(x); // undefined
var x = 5;

در این مثال، تعریف var x به بالای محدوده منتقل میشه، اما مقداردهی انجام نمیشه.

چطور یه کاربر رو در مورد خطاهای فرم راهنمایی کنیم؟

باید از پیام‌ های خطای قابل فهم و دقیق استفاده کنیم، مثلاً “ایمیل وارد شده معتبر نیست”. همچنین بهتره از نشانه‌های بصری مثل رنگ قرمز یا آیکون‌های هشدار استفاده کنیم و مکان خطاها رو به وضوح مشخص کنیم.

فرق innerHTML و textContent چیه؟

innerHTML کل محتوای HTML داخل یه عنصر رو برمیگردونه یا تنظیم میکنه و میتونه HTML رو پردازش کنه. textContent فقط متن ساده عنصر رو برمیگردونه و از HTML چشم‌ پوشی میکنه. textContent امن‌ تره چون کد HTML مخرب رو اجرا نمیکنه.

چطور از CSS Variables استفاده میکنیم؟

CSS Variables یا متغیرهای سفارشی به ما امکان میدن مقادیر CSS رو در جاهای مختلف به اشتراک بذاریم. با استفاده از --variable-name تعریف میشن و با var(--variable-name) فراخوانی میشن. برای مثال:

:root {
–main-color: #3498db;
}
body {
color: var(–main-color);
}

React چطور با Virtual DOM کار میکنه؟

 Virtual DOM نسخه‌ای از DOM واقعی هست که در حافظه ساخته میشه. هر زمان که تغییراتی در رابط کاربری ایجاد بشه، React این تغییرات رو ابتدا در Virtual DOM اعمال میکنه و بعد تفاوت‌ها (diffs) رو با DOM واقعی هماهنگ میکنه، که باعث بهبود عملکرد میشه.

چطور یه تصویر SVG رو در HTML قرار بدیم؟

میشه به چند روش از SVG استفاده کرد: مستقیماً در HTML با تگ <svg>...</svg>، یا با استفاده از تگ <img>، و یا به عنوان بک‌ گراند در CSS. روش اول برای کنترل کامل استایل و تغییرات SVG مفیده.

فرق بین == و != و === و !== چیه؟

== و != مقایسه مقادیر رو انجام میدن و نوع داده رو تبدیل میکنن. === و !== مقایسه سختگیرانه‌ تر هستن و هم مقدار و هم نوع داده رو مقایسه میکنن. برای جلوگیری از خطاهای ناخواسته، بهتره از === و !== استفاده بشه.

چطور یه API رو با استفاده از Axios فراخوانی کنیم؟

Axios یه کتابخونه برای ارسال درخواست‌ های HTTP هست. میتونیم از axios.get()، axios.post() و متدهای مشابه برای تعامل با API استفاده کنیم. برای مثال:

axios.get(‘https://api.example.com/data’)
.then(response => console.log(response.data))
.catch(error => console.error(‘Error:’, error));

چرا باید از BEM در نام‌ گذاری کلاس‌های CSS استفاده کنیم؟

BEM (Block, Element, Modifier) روشی برای نام‌ گذاری کلاس‌ هاست که کدهای CSS رو قابل فهم‌ تر و نگهداری رو ساده‌ تر میکنه. این ساختار از سه بخش تشکیل شده: بلاک (block)، عنصر (element)، و اصلاح‌ کننده (modifier) که استایل‌ ها رو سازمان‌ دهی میکنه.

بخش ششم سوالات مصاحبه فرانت اند

چرا از Linting در جاوااسکریپت استفاده میکنیم؟

ابزارهای linting مثل ESLint برای بررسی و اصلاح خطاهای کدنویسی و رعایت استانداردهای کدنویسی به کار میرن. این ابزارها کمک میکنن کدی تمیز، خوانا، و بدون باگ‌ های رایج بنویسیم.

فرق بین cookies و localStorage چیه؟

هر دو برای ذخیره‌ سازی داده در مرورگر استفاده میشن، اما cookies محدودیت‌ های حجم کمی دارن (حدود 4 کیلوبایت) و معمولاً برای مدیریت نشست‌ ها استفاده میشن. localStorage حجم بیشتری داره و داده‌ ها رو بدون تاریخ انقضا ذخیره میکنه، مگر این که کاربر خودش پاکشون کنه.

چطور میشه از CSS Grid برای طراحی یک صفحه استفاده کرد؟

با استفاده از display: grid میتونیم عناصر رو در ردیف‌ ها و ستون‌ ها چیدمان کنیم. با خواص مثل grid-template-columns و grid-template-rows میشه اندازه و جایگاه بخش‌ ها رو مشخص کرد و به راحتی طرح‌ بندی پیچیده ساخت.

فرق بین state و props در React چیه؟

state متغیرهایی هستن که یه کامپوننت میتونه مدیریت کنه و تغییر بده. props مقادیری هستن که از والد به فرزند منتقل میشن و کامپوننت‌ ها نباید اون‌ ها رو تغییر بدن. به عبارت ساده‌ تر، state داده‌های داخلی و قابل تغییره، و props داده‌های خارجی و ثابت هستن.

چه زمانی باید از fragments در React استفاده کنیم؟

وقتی بخوایم چند عنصر JSX رو بدون اضافه کردن عنصر اضافی به DOM برگردونیم، از fragments استفاده میکنیم. به جای استفاده از یه تگ اضافی مثل <div>, میتونیم از <>...</> استفاده کنیم که بهینه‌ تر هست.

کاربرد memoization در جاوااسکریپت چیه؟

Memoization یه تکنیک بهینه‌ سازیه که نتیجه فراخوانی توابع پرهزینه رو ذخیره میکنه تا دفعه بعد به جای محاسبه مجدد، مستقیماً از نتایج ذخیره شده استفاده کنه. این کار باعث افزایش سرعت و کارایی برنامه میشه.

چطور از Object Destructuring در جاوااسکریپت استفاده میکنیم؟

Object Destructuring به ما اجازه میده مقادیر متغیرها رو از اشیاء به راحتی استخراج کنیم. برای مثال:

const person = { name: ‘Ali’, age: 30 };
const { name, age } = person;
console.log(name); // Ali
console.log(age); // 30

فرق بین e.preventDefault() و e.stopPropagation() چیه؟

e.preventDefault() رفتار پیشفرض مرورگر رو متوقف میکنه، مثل ارسال فرم. e.stopPropagation() از انتشار رویداد به عناصر والد جلوگیری میکنه. معمولاً وقتی میخوایم رفتار رویداد رو محدود کنیم، این دو رو استفاده میکنیم.

چطور از responsive images در HTML استفاده کنیم؟

با استفاده از تگ <picture> و ویژگی‌های srcset و sizes میتونیم تصاویر واکنش‌گرا تعریف کنیم که بر اساس دستگاه کاربر و اندازه صفحه بارگذاری میشن. این باعث بهینه‌ تر شدن بارگذاری تصاویر میشه.

فرق Controlled و Uncontrolled Components در React چیه؟

Controlled Components کامپوننت‌ هایی هستن که وضعیت (state) ورودی‌ ها توسط React کنترل میشه و هر تغییر مستقیماً به state اعمال میشه. Uncontrolled Components ورودی‌ هایی هستن که از وضعیت داخلی DOM استفاده میکنن و معمولاً از ref برای دسترسی به مقادیر استفاده میکنیم.

بخش هفتم سوالات مصاحبه فرانت اند

فرق بین CSS Transitions و CSS Animations چیه؟

CSS Transitions برای تغییرات تدریجی در استایل‌ها استفاده میشه که با تعامل کاربر شروع میشن (مثل هاور کردن روی یه دکمه). CSS Animations برای ایجاد انیمیشن‌ های پیچیده‌ تر و کنترل دقیق‌تر استفاده میشه و میتونن بدون تعامل کاربر هم اجرا بشن.

چطور یه Context API در React تعریف می‌کنیم؟

Context API برای اشتراک‌ گذاری مقادیر بین کامپوننت‌ ها بدون نیاز به ارسال props از والد به فرزندهای متعدد استفاده میشه. اول با React.createContext() یه کانتکست میسازیم، بعد از Provider برای ارائه مقادیر و از Consumer یا useContext برای دریافت استفاده میکنیم.

تفاوت async و defer در بارگذاری اسکریپت‌های HTML چیه؟

async باعث میشه اسکریپت به صورت غیرهمزمان بارگذاری و بلافاصله اجرا بشه، در حالی که defer باعث میشه اسکریپت بارگذاری بشه ولی بعد از تجزیه کامل HTML اجرا بشه. defer برای حفظ ترتیب اجرای اسکریپت‌ها بهتره.

چطور از map() و filter() در جاوااسکریپت استفاده میکنیم؟

map() برای ایجاد یه آرایه جدید از آرایه موجود با اعمال یه تابع روی هر عنصر استفاده میشه. filter() برای فیلتر کردن آرایه و برگرداندن فقط عناصری که تابع شرط رو برآورده می‌کنن، استفاده میشه :

const numbers = [1, 2, 3, 4];
const doubled = numbers.map(num => num * 2); // [2, 4, 6, 8]
const even = numbers.filter(num => num % 2 === 0); // [2, 4]

مفهوم Cross-Origin Resource Sharing (CORS) چیه؟

CORS یه مکانیسم امنیتیه که به مرورگرها اجازه میده منابع یه دامنه رو از یه دامنه دیگه درخواست کنن، مشروط به این که سرور مقصد اجازه داده باشه. این برای جلوگیری از دسترسی ناخواسته به داده‌ها توسط اسکریپت‌ های خارجی به کار میره.

چطور از JSON.stringify() و JSON.parse() استفاده می‌کنیم؟

JSON.stringify() یه شیء جاوااسکریپت رو به یه رشته JSON تبدیل میکنه و JSON.parse() رشته JSON رو دوباره به یه شیء جاوااسکریپت تبدیل میکنه. این‌ها برای ذخیره‌ سازی داده‌ها یا ارسالشون به سرور مفیدن

چطور میشه یه انیمیشن ساده با keyframes در CSS ایجاد کرد؟

با استفاده از @keyframes میشه انیمیشن تعریف کرد و استایل‌ های مختلف رو در فواصل زمانی مشخص تنظیم کرد. مثال:

@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
.fade-in {
animation: fadeIn 2s;
}

چطور Thunk در Redux کار میکنه؟

Thunk یه میدلور برای Redux هست که به ما اجازه میده توابعی رو به عنوان اکشن ارسال کنیم، نه فقط آبجکت‌ ها. این توابع میتونن عملیات‌ های غیرهمزمان مثل فراخوانی API رو انجام بدن و بعد از اتمامش، اکشن‌ های دیگه‌ ای رو دیسپچ کنن.

فرق بین display: none و visibility: hidden چیه؟

display: none باعث میشه عنصر از صفحه حذف بشه و فضایی اشغال نکنه، اما visibility: hidden عنصر رو مخفی میکنه ولی فضای اون همچنان رزرو میشه. برای مخفی کردن بدون تأثیر روی طرح‌بندی، visibility: hidden مفیده.

چه زمانی باید از shouldComponentUpdate() در React استفاده کنیم؟

shouldComponentUpdate یه متد چرخه حیاتیه که به ما امکان میده بهینه‌ سازی‌هایی انجام بدیم و مشخص کنیم آیا کامپوننت باید دوباره رندر بشه یا نه. این میتونه به بهبود عملکرد کمک کنه، به خصوص وقتی داده‌های بزرگ یا پیچیده داریم.

بخش هشتم سوالات مصاحبه فرانت اند

مفهوم Pure Function در برنامه‌ نویسی تابعی چیه؟

یک تابع Pure تابعی هست که خروجی یکسانی برای ورودی‌ های یکسان داره و هیچ تغییری در وضعیت یا داده‌ های خارجی ایجاد نمیکنه. به عبارت دیگه، هیچ Side Effectی نداره و همیشه پیش‌بینی‌پذیر عمل میکنه.

چطور از Intersection Observer برای بارگذاری تنبل (Lazy Loading) استفاده میکنیم؟

Intersection Observer یه API هست که بررسی میکنه آیا یه عنصر داخل نمای کاربر هست یا نه. میشه ازش برای بارگذاری تنبل تصاویر و عناصر سنگین استفاده کرد. به این صورت که وقتی عنصر وارد دید کاربر شد، عملیات بارگذاری انجام میشه.

چطور یه سیستم طراحی (Design System) برای یه پروژه ایجاد میکنیم؟

سیستم طراحی مجموعه‌ای از قوانین، الگوها، و اجزاء قابل استفاده مجدده که برای طراحی منسجم رابط کاربری به کار میره. این شامل تعریف رنگ‌ها، تایپوگرافی، دکمه‌ها، فرم‌ها و کامپوننت‌ های دیگر میشه. می‌تونیم از ابزارهایی مثل Figma یا Sketch برای طراحی و Storybook برای مستندسازی استفاده کنیم.

فرق بین useEffect و useLayoutEffect در React چیه؟

useEffect بعد از رندر کردن کامپوننت اجرا میشه و برای عملیات‌های جانبی مثل گرفتن داده‌ ها از API استفاده میشه. useLayoutEffect قبل از کشیدن صفحه (Layout) اجرا میشه و برای مواردی که نیاز به اندازه‌ گیری دقیق DOM یا تغییرات همزمان داریم، مناسب‌ تره.

چطور یه پروفایل عملکرد (Performance Profile) از یه وب‌ سایت تهیه کنیم؟

می‌تونیم از ابزارهایی مثل DevTools در مرورگر Chrome استفاده کنیم. با استفاده از تب Performance میشه عملکرد سایت رو آنالیز کرد و نقاطی که نیاز به بهینه‌سازی دارن، مثل Reflowهای سنگین یا زمان بارگذاری طولانی، شناسایی کرد.

مفهوم Atomic Design چیه؟

Atomic Design یه روش طراحی رابط کاربریه که اجزاء رو به عناصر کوچیک‌تر و قابل ترکیب تقسیم میکنه: اتم‌ ها، مولکول‌ ها، ارگانیزم‌ ها، قالب‌ ها (templates) و صفحات (pages). این باعث میشه طراحی و توسعه کامپوننت‌ ها ساختارمند تر و منعطف‌ تر باشه.

چطور از PropTypes در React برای تایپ‌ دهی استفاده میکنیم؟

PropTypes یه کتابخونه داخلی React برای بررسی نوع داده‌های props در کامپوننت‌ هاست. این به ما کمک میکنه خطاهای احتمالی رو در زمان توسعه شناسایی کنیم. برای مثال:

چطور از Accessibility Tree برای بهبود دسترسی‌ پذیری استفاده میکنیم؟

Accessibility Tree یه ساختار درختیه که مرورگر بر اساس محتوای صفحه ایجاد میکنه تا به ابزارهای کمکی مثل صفحه‌ خوان‌ها کمک کنه. با استفاده از DevTools می‌تونیم این درخت رو بررسی کنیم و مطمئن بشیم که عناصر به درستی و به صورت قابل دسترس برای همه کاربران ارائه میشن.

بخش نهم سوالات مصاحبه فرانت اند

مفهوم SSR (Server-Side Rendering) چیه؟

SSR یعنی رندر کردن محتوای یک صفحه وب در سرور به جای مرورگر کاربر. وقتی صفحه به کاربر ارسال میشه، محتوای HTML کامل بارگذاری شده و آماده هست. این باعث بهبود سئو و افزایش سرعت بارگذاری اولیه میشه.

چطور از Lazy Loading در React استفاده میکنیم؟

با استفاده از تابع React.lazy() میشه کامپوننت‌ ها رو به صورت تنبل بارگذاری کرد. این کمک میکنه که فقط در زمان نیاز کامپوننت‌ ها بارگذاری بشن و عملکرد بهتری برای برنامه فراهم بشه:

const LazyComponent = React.lazy(() => import(‘./LazyComponent’));

<Suspense fallback={<div>Loading…</div>}>
<LazyComponent />
</Suspense>

چطور میشه عملکرد setState رو در React بهینه کرد؟

باید از بروزرسانی‌ های غیرضروری اجتناب کرد. میشه با استفاده از shouldComponentUpdate یا React.memo از رندرهای غیرضروری جلوگیری کرد. همچنین، میتونیم از useCallback برای ذخیره توابع یا از useMemo برای ذخیره نتایج محاسبات سنگین استفاده کنیم.

چه زمانی باید از Recoil برای مدیریت وضعیت استفاده کنیم؟

Recoil یه کتابخونه سبک برای مدیریت وضعیت در برنامه‌های React هست. وقتی پروژه‌ای داریم که مدیریت وضعیت پیچیده‌ای نیاز داره و استفاده از Context API ناکارآمد میشه، Recoil میتونه انتخاب مناسبی باشه. این کتابخونه قابلیت‌هایی مثل اشتراک داده‌ها و به‌روزرسانی خودکار اجزا رو فراهم میکنه.

مفهوم Rehydration در برنامه‌ های رندر شده سمت سرور چیه؟

Rehydration فرآیند تطبیق یا همگام‌ سازی کد جاوااسکریپت در سمت کاربر با محتوای HTML از قبل رندر شده در سروره. این به React اجازه میده که به جای بازسازی کل UI، فقط قسمت‌ هایی رو به‌روزرسانی کنه که نیاز به تغییر دارن.

چطور از Web Vitals برای بهبود عملکرد استفاده کنیم؟

Web Vitals معیارهای عملکرد کلیدی‌ ای هستن که توسط گوگل برای بهبود تجربه کاربر معرفی شدن، مثل Largest Contentful Paint (LCP)، First Input Delay (FID)، و Cumulative Layout Shift (CLS). میشه از ابزارهایی مثل Lighthouse و PageSpeed Insights برای اندازه‌ گیری این معیارها و بهبود عملکرد استفاده کرد.

چرا از SVG به جای تصاویر بیت‌ مپ استفاده می‌کنیم؟

SVG مقیاس‌ پذیر و مبتنی بر بردار هست، یعنی بدون از دست دادن کیفیت میشه به هر اندازه‌ای تغییر مقیاس داد. این باعث میشه برای آیکون‌ها و گرافیک‌های ساده مناسب‌تر باشه، در حالی که تصاویر بیت‌مپ مثل PNG و JPEG کیفیتشون با بزرگنمایی کاهش پیدا میکنه.

چطور از React Portal استفاده می‌کنیم؟

React Portal برای رندر کردن عناصر در جایی خارج از سلسله‌ مراتب معمولی DOM استفاده میشه. برای مثال، میتونیم یه مودال رو مستقیماً در بدنه (body) صفحه رندر کنیم، در حالی که از لحاظ منطقی هنوز بخشی از کامپوننت والد هست:

ReactDOM.createPortal(
<ModalContent />,
document.getElementById(‘modal-root’)
);

چطور از error boundaries در React استفاده می‌کنیم؟

Error Boundaries کامپوننت‌ هایی هستن که میتونن خطاهای جاوااسکریپت در کامپوننت‌های فرزند خودشون رو بگیرن و به کاربر نمایش بدن. میشه از componentDidCatch و getDerivedStateFromError برای مدیریت خطاها استفاده کرد:

class ErrorBoundary extends React.Component {
state = { hasError: false };

static getDerivedStateFromError(error) {
return { hasError: true };
}

componentDidCatch(error, info) {
// گزارش خطا
}

render() {
if (this.state.hasError) {
return <h1>Something went wrong.</h1>;
}
return this.props.children;
}
}

چطور از axios interceptors برای مدیریت درخواست‌ ها استفاده میکنیم؟

axios interceptors به ما اجازه میده قبل از ارسال درخواست یا بعد از دریافت پاسخ، کارهای اضافی انجام بدیم. میشه از این قابلیت برای افزودن هدرهای سفارشی، ثبت درخواست‌ ها، یا مدیریت خطاها استفاده کرد:

axios.interceptors.request.use(config => {
// تغییرات در درخواست قبل از ارسال
return config;
}, error => {
// مدیریت خطاهای درخواست
return Promise.reject(error);
});

بخش دهم سوالات مصاحبه فرانت اند

چرا از Immutable.js برای مدیریت داده‌ ها در جاوااسکریپت استفاده میکنیم؟

Immutable.js یه کتابخونه هست که ساختار های داده‌ ای غیرقابل تغییر (Immutable) رو فراهم میکنه. استفاده از داده‌های غیرقابل تغییر باعث میشه تغییرات پیش‌ بینی‌ پذیرتر و باگ‌ ها کمتر بشه. همچنین، بهینه‌ سازی‌هایی مثل مقایسه سریع‌تر داده‌ ها ممکن میشه.

تفاوت بین shadow و spread در box-shadow چیه؟

shadow فاصله و جهت سایه رو تعیین میکنه، در حالی که spread اندازه سایه رو تغییر میده. مقدار spread مثبت باعث بزرگ‌ تر شدن سایه میشه و مقدار منفی سایه رو کوچیک‌تر میکنه. این گزینه‌ ها به ما کنترل کامل روی نحوه نمایش سایه میدن.

چطور از async و await در جاوااسکریپت استفاده میکنیم؟

async و await روش‌های ساده‌ تر و خواناتری برای مدیریت توابع غیرهمزمان هستن. async یه تابع رو به تابعی که Promise برمی‌گردونه تبدیل میکنه و await باعث میشه تابع منتظر Promise بمونه و کد به صورت همزمان خوانده بشه:

async function fetchData() {
try {
const response = await fetch(‘https://api.example.com/data’);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(‘Error:’, error);
}
}

چطور از styled-components در React استفاده میکنیم؟

styled-components یه کتابخونه برای نوشتن CSS در جاوااسکریپت هست. میتونیم استایل‌ها رو به عنوان کامپوننت تعریف کنیم و از اونا در JSX استفاده کنیم. این روش باعث میشه استایل‌ها به طور محلی و بدون تداخل با بقیه کدها اعمال بشن:

import styled from ‘styled-components’;

const Button = styled.button`
background-color: blue;
color: white;
padding: 10px;
`;

چطور از CSS Variables به صورت داینامیک استفاده کنیم؟

با تعریف متغیرهای CSS در :root میتونیم اونا رو در کل سند استفاده کنیم و به راحتی با جاوااسکریپت مقدارشون رو تغییر بدیم. برای تغییر مقدار متغیر:

document.documentElement.style.setProperty(‘–main-color’, ‘red’);
فرق for...in و for...of در جاوااسکریپت چیه؟

for...in برای تکرار روی کلید های یه شیء استفاده میشه، در حالی که for...of برای تکرار روی مقادیر یه آرایه یا یه ساختار داده‌ای قابل تکرار (Iterable) مثل Map یا Set استفاده میشه. for...of برای آرایه‌ها مناسب‌ تره.

مفهوم Polyfill در جاوااسکریپت چیه؟

Polyfill یه قطعه کد هست که قابلیت‌ های جدید زبان یا API های مدرن رو برای مرورگرهای قدیمی‌ تر فراهم میکنه. این کار باعث میشه کدی که از ویژگی‌های جدید جاوااسکریپت استفاده میکنه، در مرورگرهایی که اون ویژگی‌ها رو پشتیبانی نمیکنن، هم کار کنه.

چطور یه RESTful API رو طراحی میکنیم؟

طراحی یه RESTful API شامل تعریف منابع به صورت مناسب، استفاده از HTTP متدها (GET، POST، PUT، DELETE) برای عملیات روی منابع، استفاده از URL‌های معنادار، و بازگرداندن کدهای وضعیت مناسب (مثل 200 برای موفقیت یا 404 برای یافت نشدن) هست.

چطور از useReducer در React برای مدیریت وضعیت استفاده میکنیم؟

useReducer یه هوک در React هست که برای مدیریت وضعیت‌ های پیچیده استفاده میشه. این هوک به جای استفاده از useState برای هر مقدار جداگانه، وضعیت رو با کمک یه تابع کاهش‌دهنده (Reducer Function) مدیریت میکنه:

const [state, dispatch] = useReducer(reducer, initialState);

function reducer(state, action) {
switch (action.type) {
case ‘increment’:
return { count: state.count + 1 };
case ‘decrement’:
return { count: state.count – 1 };
default:
return state;
}
}

چطور از ESLint برای بررسی کدهای جاوااسکریپت استفاده میکنیم؟

ESLint یه ابزار برای بررسی کدهای جاوااسکریپت و یافتن خطاها و ایرادات در کدنویسی هست. میتونیم با نصب ESLint و ایجاد یه فایل پیکربندی (.eslintrc)، قوانین مورد نظر رو تنظیم کنیم. همچنین میشه از پلاگین‌های خاص برای فریم‌ورک‌ها مثل React استفاده کرد.

جمع بندی

مصاحبه‌ های فرانت‌ اند فقط به دانستن سوالات فنی ختم نمی‌شن؛ باید یه استراتژی درست برای موفقیت داشته باشی. اول از همه، به یاد داشته باش که آماده‌ سازی کلید موفقیته.
حتماً قبل از مصاحبه پروژه‌هایی که کار کردی رو مرور کن و مطمئن شو که می‌تونی درباره چالش‌ ها، تصمیمات فنی، و دلایل استفاده از تکنیک‌ های خاص توضیح بدی. معمولاً مصاحبه‌کننده‌ها علاقه دارن بفهمن چطور به مسائل فکر می‌کنی و چطور مشکلات رو حل می‌کنی.

یه نکته خیلی مهم دیگه اینه که همیشه آماده باش تا بخشی از کد رو به صورت زنده بنویسی یا یه مسئله رو حل کنی. ممکنه ازت بخوان یه عملکرد ساده رو با جاوااسکریپت بنویسی یا یه ساختار پیچیده‌ تر CSS رو توضیح بدی.
تو این موارد، حتی اگه کامل‌ ترین جواب رو هم نداشتی، از فرآیند فکری‌ ات صحبت کن و توضیح بده که چطور به راه‌ حل‌ها میرسی. مصاحبه‌ کننده‌ها بیشتر به این علاقه دارن که ببینن چطور فکر می‌کنی و چطور مشکلات رو تجزیه و تحلیل میکنی.

یکی دیگه از مواردی که نباید فراموش کنی، اینه که با مفاهیم پایه و اصولی مثل box model، تفاوت‌ های مختلف CSS، نحوه کار DOM، و اصول جاوااسکریپت آشنا باشی.
اما حواست باشه که تسلط بر مفاهیم پیشرفته‌ تر مثل closures، async/await و مدیریت وضعیت در فریم‌ ورک‌هایی مثل React هم میتونه یه امتیاز بزرگ برات باشه. توی دنیای فرانت‌ اند، همیشه آماده بودن برای سوالات ریز و تکنیکی می‌تونه کمک بزرگی باشه.

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

یه نکته دیگه که خیلی به چشم میاد، اشتیاق و علاقه‌ت به یادگیری چیزهای جدیده. فرانت‌اند داره به سرعت پیشرفت می‌کنه و ابزارها و تکنولوژی‌ های جدید دائماً معرفی می‌شن.
اگه بتونی نشون بدی که دوست داری بروز بمونی و از یادگیری ابزارها و کتابخونه‌ های جدید لذت می‌ بری، این می‌تونه یه امتیاز بزرگ برات باشه. شاید بد نباشه تو مصاحبه اشاره کنی که به تازگی چی یاد گرفتی یا روی چه چیزی کار می‌کنی.

نهایتاً، همیشه آماده باش که درباره خودت و تجربیاتت صحبت کنی. یه داستان خوب از پروژه‌ ای که انجام دادی، مشکلی که حل کردی، یا مهارتی که یاد گرفتی، می‌تونه تأثیر زیادی روی مصاحبه‌ کننده‌ها بذاره. تلاش کن که نشون بدی هم توی کدنویسی حرفه‌ ای هستی و هم توی کار تیمی خوب عمل می‌کنی.

و آخرین توصیه‌ ام اینه که از اشتباه کردن نترس! ممکنه توی یه مصاحبه بعضی سوالات رو بلد نباشی یا کامل نتونی بهشون جواب بدی. این کاملاً طبیعیه. مهم اینه که نشون بدی علاقه داری یاد بگیری و ذهنیت رشد داری.
اگر جواب سوالی رو نمی‌دونی، می‌تونی بگی: “این رو کامل نمی‌دونم، اما این‌طور بهش فکر می‌کنم” یا “خوشحال میشم که بعداً در موردش تحقیق کنم”.

امیدوارم این نکات بهت کمک کنه که با آمادگی بیشتری توی مصاحبه‌های فرانت‌اند حاضر بشی و با اعتماد به نفس بیشتری خودت رو نشون بدی.

نکته مهم!

تو این مقاله سوالات مصاحبه فِرانت اِند رو بررسی کردیم که همه موارد آن عمومی بودن ( html , css , js )

اگه React Developer هستید پیشنهاد میکنم سوالات مصاحبه ری اکت رو هم مطالعه کنید.

اگه Vue Developer هستید پیشنهاد میکنم سوالات مصاحبه Vue.js رو هم مطالعه کنید.

اگه Angular Developer هستید پیشنهاد میکنم سوالات مصاحبه Angular  رو هم مطالعه کنید.

درباره احمد احمدنژاد

من یه برنامه نویس و توسعه دهنده وب هستم که عاشق دنیای صفر و یکم❤️

نوشته‌های بیشتر از احمد احمدنژاد
قبلی SSG در ری اکت و نکست جی اس چیست ؟ ( رندر استاتیک در Next.js )
بعدی آینده برنامه نویسی با هوش مصنوعی!! بیکار میشیم یا نه؟

پست های مرتبط

بررسی shadcn در فرانت اند - shadcn/ui در ری اکت

4 دی 1403

Shadcn UI: مجموعه ای بزرگ از کامپوننت های آماده!

احمد احمدنژاد
ادامه مطلب
آینده برنامه نویسی با هوش مصنوعی - برنامه نویسی و هوش مصنوعی

19 آبان 1403

آینده برنامه نویسی با هوش مصنوعی!! بیکار میشیم یا نه؟

احمد احمدنژاد
ادامه مطلب
سوالات مصاحبه انگولار - سوالات مصاحبه Angular

13 آبان 1403

200 سوال مصاحبه انگولار ! بزرگترین لیست سوالات مصاحبه Angular !

احمد احمدنژاد
ادامه مطلب
سختی ها و مسیر پر پیچ و خم فِرانت اِند - سرعت پیشرفت تکنولوژی - مدیریت پروژه‌های بزرگ - طراحی ریسپانسیو - بهینه‌سازی عملکرد - همگام سازی با ابزارهای جدید

13 مرداد 1403

سختی ها و مسیر پر پیچ و خم فِرانت اِند ! ( دل نوشته خودمونی )

احمد احمدنژاد
ادامه مطلب
ابزار Vite - آموزش Vite در فرانت اند - Vite چیست ؟

15 دی 1402

ابزار Vite چیست ؟ هرچیزی که باید درمورد vite در فرانت اند بدونیم!

احمد احمدنژاد
ادامه مطلب

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
پیاده سازی و مشاوره فِرانت اِند!

پیاده سازی اصولی و بهینه پروژه های فِرانت اِند در کمترین زمان ممکن 🙂

پیاده سازی و مشاوره

صفحات فِرانت اِندی
  • وبلاگ
  • تماس با ما
  • درباره ما
تماس با ما
  • [email protected]
  • 09102944692
شبکه های اجتماعی
Youtube Instagram Telegram