گیت واقعاً چیکار میکنه؟ 🌱
خیلیا گیت رو فقط با git add و git commit میشناسن، ولی دقیقاً نمیدونن زیرش چه اتفاقی میافته.
سه مرحلهی اصلی کار با گیت:
git add . → فایلها میرن به staging area
git commit -m "..." → یه snapshot ثبت میشه
git push → این snapshot به remote (مثل GitHub) فرستاده میشه
نکته کاربردی: قبل از commit، با
git status
همیشه چک کن چه فایلهایی قراره commit بشن؛ خیلی از commitهای اشتباه همینجا جلوگیری میشه.
اگه این توضیح براتون روشنکننده بود، فوروارد کنید برای کسی که تازه گیت یاد میگیره 🚀
خیلیا گیت رو فقط با git add و git commit میشناسن، ولی دقیقاً نمیدونن زیرش چه اتفاقی میافته.
گیت یه سیستم کنترل نسخهی توزیعشدهست؛ یعنی بهجای اینکه فقط آخرین نسخهی فایلهات رو نگه داره، از کل تاریخچهی پروژه عکس میگیره. هر commit یه snapshot کامل از وضعیت فایلهاست، نه فقط یه لیست تغییرات. به همین خاطره که برگشتن به هر نسخهی قبلی پروژه اینقدر سریع و مطمئنه.
git add . → فایلها میرن به staging area
git commit -m "..." → یه snapshot ثبت میشه
git push → این snapshot به remote (مثل GitHub) فرستاده میشه
نکته کاربردی: قبل از commit، با
git status
همیشه چک کن چه فایلهایی قراره commit بشن؛ خیلی از commitهای اشتباه همینجا جلوگیری میشه.
اگه این توضیح براتون روشنکننده بود، فوروارد کنید برای کسی که تازه گیت یاد میگیره 🚀
❤8
This media is not supported in your browser
VIEW IN TELEGRAM
انیمیشن با CSS خالص، بدون یه خط JS 🎬
هر بار که میخوایم یه چیزی رو تکون بدیم، بزرگش کنیم یا محوش کنیم، عادت داریم بریم سراغ کتابخونههای سنگین. ولی خیلی وقتا همون @keyframes ساده کارو راه میندازه.
اینجا ۵ تا از انیمیشنهایی که خودمون تقریباً تو هر پروژه ازشون استفاده میکنیم رو با کدشون گذاشتیم:
🔄 چرخش کامل با rotate
💓 ضربان و بزرگنمایی با pulse
➡️ اسلاید افقی نرم
👻 محو شدن تدریجی با fadeIn
⬆️ پرش فنری با bounce
کدا رو سیو کن، تست کن، دستکاریش کن. بهترین راه یاد گرفتن همینه.
تو کدوم یکی رو بیشتر استفاده میکنی؟ کامنت کن 👇
@awat_dev
هر بار که میخوایم یه چیزی رو تکون بدیم، بزرگش کنیم یا محوش کنیم، عادت داریم بریم سراغ کتابخونههای سنگین. ولی خیلی وقتا همون @keyframes ساده کارو راه میندازه.
اینجا ۵ تا از انیمیشنهایی که خودمون تقریباً تو هر پروژه ازشون استفاده میکنیم رو با کدشون گذاشتیم:
🔄 چرخش کامل با rotate
💓 ضربان و بزرگنمایی با pulse
➡️ اسلاید افقی نرم
👻 محو شدن تدریجی با fadeIn
⬆️ پرش فنری با bounce
کدا رو سیو کن، تست کن، دستکاریش کن. بهترین راه یاد گرفتن همینه.
تو کدوم یکی رو بیشتر استفاده میکنی؟ کامنت کن 👇
@awat_dev
❤8
🎧 SPARTAN MUSIC FINDER ⚔️
👋سلام
من بهت کمک می کنم که هر آهنگی که دوست داری رو کاملا رایگان دانلود کنی !!!
❗️فقط کافیه که یکی از موارد زیر رو برام بفرستی :
🎶هنرمند یا نام آهنگ
🔤 متن آهنگ
🎙ویس از موسیقی
📹 ویدیو همراه با موسیقی
📼 ضبط صدا
🔗 لینک ویدیو به اینستاگرام ، تیک تاک ، یوتوب و سایت های دیگر
حال کنید 🫡
@Spartamusic_finderbot
@awat_dev
👋سلام
من بهت کمک می کنم که هر آهنگی که دوست داری رو کاملا رایگان دانلود کنی !!!
❗️فقط کافیه که یکی از موارد زیر رو برام بفرستی :
🎶هنرمند یا نام آهنگ
🔤 متن آهنگ
🎙ویس از موسیقی
📹 ویدیو همراه با موسیقی
📼 ضبط صدا
🔗 لینک ویدیو به اینستاگرام ، تیک تاک ، یوتوب و سایت های دیگر
حال کنید 🫡
@Spartamusic_finderbot
@awat_dev
❤4🔥3
چون دانا نماید به کاری درنگ
به پیروزی آرد جهانی به چنگ
همه کارها در فرو بستگی
گشاید ولیکن به آهستگی
به پیروزی آرد جهانی به چنگ
همه کارها در فرو بستگی
گشاید ولیکن به آهستگی
فردوسی
❤5🔥1🕊1
Fetch در JavaScript چیه؟ 🌐
"fetch()" یکی از روشهای ساده و مدرن جاوااسکریپت برای ارسال درخواست به سرور و دریافت اطلاعات از API هست.
مثلاً برای گرفتن اطلاعات از یک API:
🔹 "fetch()" درخواست رو ارسال میکنه.
🔹 "response.json()" پاسخ سرور رو به JSON تبدیل میکنه.
🔹 با "then()" نتیجه رو دریافت و پردازش میکنیم.
🔹 با "catch()" خطاها رو مدیریت میکنیم.
امروزه معمولاً استفاده از "async/await" خوانایی کد رو بیشتر میکنه:
💡 نکته: با "fetch" فقط اطلاعات دریافت نمیکنیم؛ میتونیم درخواستهای "POST"، "PUT" و "DELETE" هم به API ارسال کنیم.
POST => ارسال دیتا به سمت سرور
PUT => تغییر دیتای کلی در سرور
PATCH => تغییر دیتای جزئی در سرور
@awat_dev
"fetch()" یکی از روشهای ساده و مدرن جاوااسکریپت برای ارسال درخواست به سرور و دریافت اطلاعات از API هست.
مثلاً برای گرفتن اطلاعات از یک API:
fetch("https://api.example.com/users")
.then(response => response.json())
.then(data => {
console.log(data);
})
.catch(error => {
console.log("Error:", error);
});
🔹 "fetch()" درخواست رو ارسال میکنه.
🔹 "response.json()" پاسخ سرور رو به JSON تبدیل میکنه.
🔹 با "then()" نتیجه رو دریافت و پردازش میکنیم.
🔹 با "catch()" خطاها رو مدیریت میکنیم.
امروزه معمولاً استفاده از "async/await" خوانایی کد رو بیشتر میکنه:
async function getUsers() {
const response = await fetch("https://api.example.com/users");
const data = await response.json();
console.log(data);
}
💡 نکته: با "fetch" فقط اطلاعات دریافت نمیکنیم؛ میتونیم درخواستهای "POST"، "PUT" و "DELETE" هم به API ارسال کنیم.
POST => ارسال دیتا به سمت سرور
PUT => تغییر دیتای کلی در سرور
PATCH => تغییر دیتای جزئی در سرور
@awat_dev
❤3🔥2
🎬 انیمیشنهایی که با اسکرول شما زنده میشن!
دیگه لازم نیست برای انیمیشنهای وابسته به اسکرول، صد خط جاوااسکریپت بنویسید و به رویداد scroll گوش بدید؛ حالا خود CSS این کار رو انجام میده!
مثال ساده:
نکته مهم: فعلاً این ویژگی روی مرورگرهای مبتنی بر Chromium بهخوبی کار میکنه؛ برای Safari و Firefox حتماً با @supports یک fallback بذارید تا تجربهی کاربر خراب نشه.
اگه این ترفند به کارتون اومد، برای دوستای فرانتاندیتون فوروارد کنید 🚀
دیگه لازم نیست برای انیمیشنهای وابسته به اسکرول، صد خط جاوااسکریپت بنویسید و به رویداد scroll گوش بدید؛ حالا خود CSS این کار رو انجام میده!
با ویژگی تازهی Scroll-Driven Animations میتونید یک انیمیشن رو مستقیم به موقعیت اسکرول کاربر وصل کنید. هرچقدر کاربر پایینتر بره، انیمیشن هم جلوتر میره؛ درست مثل یک نوار پیشرفت زنده.
مثال ساده:
.fade-in {
animation: appear linear;
animation-timeline: view();
animation-range: entry 0% cover 40%;
}
@keyframes appear {
from { opacity: 0; transform: translateY(40px); }
to { opacity: 1; transform: translateY(0); }
}نکته مهم: فعلاً این ویژگی روی مرورگرهای مبتنی بر Chromium بهخوبی کار میکنه؛ برای Safari و Firefox حتماً با @supports یک fallback بذارید تا تجربهی کاربر خراب نشه.
اگه این ترفند به کارتون اومد، برای دوستای فرانتاندیتون فوروارد کنید 🚀
❤5💯3
فلکس باکس چیه و چه کاربردی داره؟
فرض کنین یه container دارین که داخلش سه تا item دارین و اگر آیتم ها تون بلاک لول باشن به صورت پیشفرض زیر هم قرار میگیرن و سه خط رو پر میکنن.
بعضی مواقع شده شما میخواین سه تا آیتم رو بیارین کنار هم قرار بدین سوال براتون پیش میاد چطور بیارمشون کنار هم ؟
دو روش دارین که این روش اول منسوخ شده که میخوام بگم صرفا جهت دونستن میگم بهتون
اولین روش (استفاده نکنید منسوخ شده)
استفاده از float هست قبل از اینکه فلکس باکس برای چیدمان layout سایت بوجود بیاد از float استفاده میشد که کمی کار رو سخت میکرد و اذیت کننده بود مثالش هم پایین براتون مینویسم:
به این صورت آیتم ها رو کنار هم میچیدن که یک باگ خیلی بزرگ داشت
وقتی به سکشن اول ما پراپرتی float رو میدادیم سکشن بعدی که میزدیم میومد کنارش و باید یه پراپرتی دیگ میدادیم بهش تا درست بشه
clear: both;
پراپرتی بالا رو باید میدادیم به سکشن تا بتونیم سکشن بعدی رو درست طراحی کنیم
زیاد دربارش دیگ حرف نمیزنم چون در حد دونستن بود و از این استفاده نکنین.
حالا بریم سراغ مبحث اصلی فلکس باکس
خب برای فعالسازی flexbox ما به کانتینر والد اون آیتم ها
display: flex;
میدیم تا فلکس باکس برای ما فعال بشوند وقتی فعال شد آیتم ها کنار هم میان که برای مدیریت فاصله وسط چین کردن و چیدمان آیتم ها از پراپرتی هایی استفاده میکنیم که برای کانتینر والد هست و برای خود فلکس باکس هست و بدون فعال کردن فلکس باکس هیچ کاری نمیکند.
اولین پراپرتی justify-content هست که با این پراپرتی شما میتوانید فاصله بین آیتم ها را بچینید
مقدار هایی که این پراپرتی میگیرد:
که شما میتوانید مشخص کنید آیتم ها اول یا اخر یا فاصله یکنواخت یا چسبیده داشته باشند
این پراپرتی در موقعیت چپ و راست عمل میکند برای عملیات بالا و پایین از align-items استفاده میکنیم که مقدار های این پراپرتی:
baselineکه هر کدام قابلیت خاص خودش رو داره بیشترین استفاده هم استارت و اند و وسط هستند
برای مثال شما یک کانتینر والد دارید که سه آیتم داخل آن وجود دارد شما میخواهید این آیتم ها را کنار هم بچینید و وسط چین کنید آن ها را بصورت زیر میتوانید انجام دهید:
به همین راحتی آیتم ها میان کنار هم و وسط قرار میگیرند.
فرض کنین یه container دارین که داخلش سه تا item دارین و اگر آیتم ها تون بلاک لول باشن به صورت پیشفرض زیر هم قرار میگیرن و سه خط رو پر میکنن.
بعضی مواقع شده شما میخواین سه تا آیتم رو بیارین کنار هم قرار بدین سوال براتون پیش میاد چطور بیارمشون کنار هم ؟
دو روش دارین که این روش اول منسوخ شده که میخوام بگم صرفا جهت دونستن میگم بهتون
اولین روش (استفاده نکنید منسوخ شده)
استفاده از float هست قبل از اینکه فلکس باکس برای چیدمان layout سایت بوجود بیاد از float استفاده میشد که کمی کار رو سخت میکرد و اذیت کننده بود مثالش هم پایین براتون مینویسم:
.left{
float: left;
width: 50%;
}
.right{
float: right;
width: 50%;
}به این صورت آیتم ها رو کنار هم میچیدن که یک باگ خیلی بزرگ داشت
وقتی به سکشن اول ما پراپرتی float رو میدادیم سکشن بعدی که میزدیم میومد کنارش و باید یه پراپرتی دیگ میدادیم بهش تا درست بشه
clear: both;
پراپرتی بالا رو باید میدادیم به سکشن تا بتونیم سکشن بعدی رو درست طراحی کنیم
زیاد دربارش دیگ حرف نمیزنم چون در حد دونستن بود و از این استفاده نکنین.
حالا بریم سراغ مبحث اصلی فلکس باکس
خب برای فعالسازی flexbox ما به کانتینر والد اون آیتم ها
display: flex;
میدیم تا فلکس باکس برای ما فعال بشوند وقتی فعال شد آیتم ها کنار هم میان که برای مدیریت فاصله وسط چین کردن و چیدمان آیتم ها از پراپرتی هایی استفاده میکنیم که برای کانتینر والد هست و برای خود فلکس باکس هست و بدون فعال کردن فلکس باکس هیچ کاری نمیکند.
اولین پراپرتی justify-content هست که با این پراپرتی شما میتوانید فاصله بین آیتم ها را بچینید
مقدار هایی که این پراپرتی میگیرد:
start
end
space-between
space-around
space-evenly
center
که شما میتوانید مشخص کنید آیتم ها اول یا اخر یا فاصله یکنواخت یا چسبیده داشته باشند
این پراپرتی در موقعیت چپ و راست عمل میکند برای عملیات بالا و پایین از align-items استفاده میکنیم که مقدار های این پراپرتی:
stretch
flex-start
flex-end
center
baselineکه هر کدام قابلیت خاص خودش رو داره بیشترین استفاده هم استارت و اند و وسط هستند
برای مثال شما یک کانتینر والد دارید که سه آیتم داخل آن وجود دارد شما میخواهید این آیتم ها را کنار هم بچینید و وسط چین کنید آن ها را بصورت زیر میتوانید انجام دهید:
.container {
display: flex;
align-items: center;
justify-content: center;
}به همین راحتی آیتم ها میان کنار هم و وسط قرار میگیرند.
❤4👏1
چالش امروز جاوااسکریپتی 🧠
کد زیر رو نگاه کن:
به نظرت ترتیب چاپ کدوم گزینهست؟
حرف گزینهت رو تو کامنتها بنویس! فردا جواب رو با توضیح کامل میفرستم.
نکته مهم: جواب این سؤال دقیقاً به تفاوت Microtask Queue و Macrotask Queue توی event loop جاواسکریپت برمیگرده.
اگه چالش رو دوست داشتی، برای یه دوست هم فوروارد کن 🔁
کد زیر رو نگاه کن:
console.log("۱");
setTimeout(() => {
console.log("۲");
}, 0);
Promise.resolve().then(() => {
console.log("۳");
});
console.log("۴");به نظرت ترتیب چاپ کدوم گزینهست؟
حرف گزینهت رو تو کامنتها بنویس! فردا جواب رو با توضیح کامل میفرستم.
نکته مهم: جواب این سؤال دقیقاً به تفاوت Microtask Queue و Macrotask Queue توی event loop جاواسکریپت برمیگرده.
اگه چالش رو دوست داشتی، برای یه دوست هم فوروارد کن 🔁
جواب کد بالا
Anonymous Quiz
25%
A) 1 - 2 - 3 - 4
37%
B) 1 - 4 - 3 - 2
19%
C) 1 - 4 - 2 - 3
19%
D) 1 - 3 - 4 - 2
📌 حلقهها در جاوااسکریپت؛ کدت رو چندباره کن بدون خستگی!
حلقهها بهت اجازه میدن یه کار رو تکراری اجرا کنی. تو جاوااسکریپت چند نوع حلقه داریم که هرکدوم جایگاه خودشون رو دارن:
-----------------------------------------
🔁 for کلاسیک
وقتی تعداد دفعات مشخصه:
for (let i = 0; i < 5; i++) {
console.log(i); // 0 1 2 3 4
}
🔁 while
وقتی شرط نامشخصه و ممکنه اصلاً اجرا نشه:
🔁 do...while
حداقل یک بار اجرا میشه، حتی اگر شرط غلط باشه:
برای آرایهها و اشیاء قابل تکرار (iterable):
🔁 for...in
برای کلیدهای object (با احتیاط استفاده کن):
-----------------------------------------
⚠️ نکته مهم:
از for...in روی آرایه استفاده نکن (ترتیب رو رعایت نمیکنه و خواص اضافی رو هم میاره). به جاش از for...of یا forEach استفاده کن.
✅ عملکرد:
حلقههای for و while سرعت بالایی دارن، ولی برای خوانایی کد، for...of و متدهای مدرن مثل map، filter رو ترجیح بده.
-----------------------------------------
💡 جمعبندی:
- تعداد مشخص → for
- شرط نامشخص → while
- حداقل یک بار → do...while
- آرایه/رشته → for...of
- آبجکت → for...in (با دقت)
حلقهها رو درست انتخاب کن تا کدت هم سریع باشه هم خواناتر! 🚀
#جاوااسکریپت #حلقه #JavaScript #آموزش
@awat_dev
حلقهها بهت اجازه میدن یه کار رو تکراری اجرا کنی. تو جاوااسکریپت چند نوع حلقه داریم که هرکدوم جایگاه خودشون رو دارن:
-----------------------------------------
🔁 for کلاسیک
وقتی تعداد دفعات مشخصه:
for (let i = 0; i < 5; i++) {
console.log(i); // 0 1 2 3 4
}
🔁 while
وقتی شرط نامشخصه و ممکنه اصلاً اجرا نشه:
let n = 3;
while (n > 0) {
console.log(n--);
}
🔁 do...while
حداقل یک بار اجرا میشه، حتی اگر شرط غلط باشه:
let x = 10;🔁 for...of (مدرن)
do {
console.log(x);
} while (x < 5); // چاپ ۱۰
برای آرایهها و اشیاء قابل تکرار (iterable):
const colors = ['red', 'green', 'blue'];
for (let c of colors) {
console.log(c);
}
🔁 for...in
برای کلیدهای object (با احتیاط استفاده کن):
const user = {name: 'Ali', age: 25};
for (let key in user) {
console.log(key, user[key]);
}
-----------------------------------------
⚠️ نکته مهم:
از for...in روی آرایه استفاده نکن (ترتیب رو رعایت نمیکنه و خواص اضافی رو هم میاره). به جاش از for...of یا forEach استفاده کن.
✅ عملکرد:
حلقههای for و while سرعت بالایی دارن، ولی برای خوانایی کد، for...of و متدهای مدرن مثل map، filter رو ترجیح بده.
-----------------------------------------
💡 جمعبندی:
- تعداد مشخص → for
- شرط نامشخص → while
- حداقل یک بار → do...while
- آرایه/رشته → for...of
- آبجکت → for...in (با دقت)
حلقهها رو درست انتخاب کن تا کدت هم سریع باشه هم خواناتر! 🚀
#جاوااسکریپت #حلقه #JavaScript #آموزش
@awat_dev
❤3