سلام، به CodeTrail خوش اومدید. ☘️
این کانال با هدف ثبت مسیر یادگیری، اشتراکگذاری تجربهها و انتشار نکات کاربردی در حوزه Front-End Development ایجاد شده.
اینجا هر چیزی که یاد میگیرم، پروژههایی که انجام میدم و تجربههایی که تو این مسیر کسب میکنم رو باهاتون به اشتراک میذارم. 📚
امیدوارم این مسیر برای شما هم مفید و الهامبخش باشه. 🌱
این کانال با هدف ثبت مسیر یادگیری، اشتراکگذاری تجربهها و انتشار نکات کاربردی در حوزه Front-End Development ایجاد شده.
اینجا هر چیزی که یاد میگیرم، پروژههایی که انجام میدم و تجربههایی که تو این مسیر کسب میکنم رو باهاتون به اشتراک میذارم. 📚
امیدوارم این مسیر برای شما هم مفید و الهامبخش باشه. 🌱
❤3
💡 JavaScript Tip #1
در جاوااسکریپت، کپی کردن آبجکتها همیشه اون چیزی نیست که فکر میکنیم! 🤔
مثلاً:
خروجی:
چرا؟
چون user1 و user2 به جای داشتن دو آبجکت جدا، هر دو به یک آبجکت در حافظه اشاره میکنند.
برای ساخت یک کپی واقعی میتوانیم از روشهایی مثل
استفاده کنیم:
این موضوع در کار با React، مدیریت State و جلوگیری از باگها خیلی مهم است.
#JavaScript #CodeTrail
در جاوااسکریپت، کپی کردن آبجکتها همیشه اون چیزی نیست که فکر میکنیم! 🤔
مثلاً:
let user1 = {
name: "Sara"
};
let user2 = user1;
user2.name = "Raha";
console.log(user1.name);خروجی:
Saraچرا؟
چون user1 و user2 به جای داشتن دو آبجکت جدا، هر دو به یک آبجکت در حافظه اشاره میکنند.
برای ساخت یک کپی واقعی میتوانیم از روشهایی مثل
spread operator
استفاده کنیم:
let user2 = { ...user1 };این موضوع در کار با React، مدیریت State و جلوگیری از باگها خیلی مهم است.
#JavaScript #CodeTrail
❤3🤩1
💡 CSS Tip #1
میدونستی فقط JavaScript نیست که میتونه از انتخاب شدن متن جلوگیری کنه؟
فقط با یک خط CSS میتونی انتخاب شدن متن رو غیرفعال کنی.
مثال:
حالا اگر کاربر چند بار روی دکمه کلیک کنه یا موس رو روی اون بکشه، متن دکمه انتخاب نمیشه.
📌 این ویژگی برای دکمهها، آیکونها و المانهایی که نباید متنشون انتخاب بشه خیلی کاربردیه.
#CSS #CodeTrail
میدونستی فقط JavaScript نیست که میتونه از انتخاب شدن متن جلوگیری کنه؟
فقط با یک خط CSS میتونی انتخاب شدن متن رو غیرفعال کنی.
user-select: none;
مثال:
button {
user-select: none;
}حالا اگر کاربر چند بار روی دکمه کلیک کنه یا موس رو روی اون بکشه، متن دکمه انتخاب نمیشه.
📌 این ویژگی برای دکمهها، آیکونها و المانهایی که نباید متنشون انتخاب بشه خیلی کاربردیه.
#CSS #CodeTrail
❤3
💡 JavaScript Tip #2
فکر میکنی خروجی این کد چیه؟ 👀
قبل از اینکه جواب رو ببینی، چند ثانیه بهش فکر کن...
👇
👇
👇
خروجی:
چون جاوااسکریپت قبل از استفاده از
و در نهایت:
📌 این یکی از مثالهای جالب Type Coercion در JavaScript هست.
#JavaScript #CodeTrail
🔗https://t.me/codetrailWeb
فکر میکنی خروجی این کد چیه؟ 👀
console.log([] + [])
قبل از اینکه جواب رو ببینی، چند ثانیه بهش فکر کن...
👇
👇
👇
خروجی:
""
چون جاوااسکریپت قبل از استفاده از
+، آرایهها رو به رشته تبدیل میکنه:String([]) // ""
و در نهایت:
"" + ""
📌 این یکی از مثالهای جالب Type Coercion در JavaScript هست.
#JavaScript #CodeTrail
🔗https://t.me/codetrailWeb
❤2👏1
CodeTrail🚀
📌خروجی پروژه امروز کد این مینی پروژه در پست بعدی👇
💡 JavaScript Tip #3
در این پروژه با استفاده از OOP (Object-Oriented Programming) یک سیستم Modal قابل استفاده مجدد پیادهسازی شده است.
به جای نوشتن کد تکراری برای هر Modal، فقط کافی است یک Instance جدید از کلاس Modal بسازید.
✅ Reusable Code
✅ Clean Code
✅ Easy to Maintain
#JavaScript #OOP #CodeTrail
در این پروژه با استفاده از OOP (Object-Oriented Programming) یک سیستم Modal قابل استفاده مجدد پیادهسازی شده است.
به جای نوشتن کد تکراری برای هر Modal، فقط کافی است یک Instance جدید از کلاس Modal بسازید.
✅ Reusable Code
✅ Clean Code
✅ Easy to Maintain
#JavaScript #OOP #CodeTrail
❤2👏1
❤2🤔1
CodeTrail🚀
CSS Tip #2 فکر میکنی خروجی این کد چیه؟ Width : min ( 500px,90% ); } #CSS #CodeTrail
خروجی:
عرض عنصر هیچوقت بیشتر از 500px نمیشود، اما در صفحههای کوچک تا 90% عرض صفحه کوچک میشود.
📌 به جای نوشتن:
فقط با یک خط کد میتونی همون نتیجه رو بگیری:
width: min(500px, 90%);
این یکی از قابلیتهای کمتر شناختهشدهی توابع min() و max() در CSS است که کدها را کوتاهتر و خواناتر میکند.
#CSS #Frontend #CodeTrail
عرض عنصر هیچوقت بیشتر از 500px نمیشود، اما در صفحههای کوچک تا 90% عرض صفحه کوچک میشود.
📌 به جای نوشتن:
max-width: 500px;
فقط با یک خط کد میتونی همون نتیجه رو بگیری:
width: min(500px, 90%);
این یکی از قابلیتهای کمتر شناختهشدهی توابع min() و max() در CSS است که کدها را کوتاهتر و خواناتر میکند.
#CSS #Frontend #CodeTrail
❤2🔥1
💡 #Frontend Fact
میدونستی همه تصاویر یک صفحه، همون لحظه که سایت باز میشه دانلود نمیشن؟ 🧐
بیشتر وبسایتهای امروزی از قابلیتی به اسم Lazy Loading استفاده میکنند
یعنی تصاویر و ویدیوهایی که پایین صفحه هستن، فقط زمانی دانلود میشن که به اون قسمت اسکرول کنی.
📌 نتیجه؟
- سرعت بارگذاری اولیه سایت بیشتر میشه.
- مصرف اینترنت کاربر کمتر میشه.
- عملکرد سایت بهتر میشه.
به همین دلیله که گاهی وقتی سریع اسکرول میکنی، بعضی تصاویر با یک تأخیر کوتاه ظاهر میشن.
#Frontend
#LazyLoading
#CodeTrail
میدونستی همه تصاویر یک صفحه، همون لحظه که سایت باز میشه دانلود نمیشن؟ 🧐
بیشتر وبسایتهای امروزی از قابلیتی به اسم Lazy Loading استفاده میکنند
یعنی تصاویر و ویدیوهایی که پایین صفحه هستن، فقط زمانی دانلود میشن که به اون قسمت اسکرول کنی.
📌 نتیجه؟
- سرعت بارگذاری اولیه سایت بیشتر میشه.
- مصرف اینترنت کاربر کمتر میشه.
- عملکرد سایت بهتر میشه.
به همین دلیله که گاهی وقتی سریع اسکرول میکنی، بعضی تصاویر با یک تأخیر کوتاه ظاهر میشن.
#Frontend
#LazyLoading
#CodeTrail
❤2🔥1
💡 #JavaScript OOP Fact Tip #4
میدونستی در JavaScript لازم نیست دو کلاس از یک والد ارثبری کنن تا Polymorphism داشته باشی؟
اگر چند آبجکت فقط متدی با اسم یکسان داشته باشن، میتونی با همهشون یکسان رفتار کنی
خروجی 👇
📌 جاوااسکریپت به جای اینکه بپرسه «این آبجکت از چه کلاسی ساخته شده؟»، فقط میبینه آیا متد "speak()" رو داره یا نه
به این سبک، Duck Typing میگن.
#JavaScript #OOP #CodeTrail
میدونستی در JavaScript لازم نیست دو کلاس از یک والد ارثبری کنن تا Polymorphism داشته باشی؟
اگر چند آبجکت فقط متدی با اسم یکسان داشته باشن، میتونی با همهشون یکسان رفتار کنی
speak() {
console.log("Woof!");
}
}
class Cat {
speak() {
console.log("Meow!");
}
}
function makeSound(animal) {
animal.speak();
}
makeSound(new Dog());
makeSound(new Cat());خروجی 👇
Woof!
Meow!📌 جاوااسکریپت به جای اینکه بپرسه «این آبجکت از چه کلاسی ساخته شده؟»، فقط میبینه آیا متد "speak()" رو داره یا نه
به این سبک، Duck Typing میگن.
#JavaScript #OOP #CodeTrail
❤2🔥1