چالش امروز جاوااسکریپتی 🧠
کد زیر رو نگاه کن:
به نظرت ترتیب چاپ کدوم گزینهست؟
حرف گزینهت رو تو کامنتها بنویس! فردا جواب رو با توضیح کامل میفرستم.
نکته مهم: جواب این سؤال دقیقاً به تفاوت 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
╭─ 🎨 AI IMAGE COMMANDS ─╮
🛍️ Marketing
"/product_ad" • "/banner" • "/promo" • "/sale"
"/offer" • "/new_product" • "/brand"
📱 Social Media
"/telegram_post" • "/story_ad" • "/thumbnail"
"/channel_cover" • "/quote" • "/announcement"
✨ Styles
"/luxury_ad" • "/minimal_ad" • "/cinematic"
"/3d_ad" • "/neon" • "/retro" • "/cyberpunk" • "/premium"
🍔 Specialized
"/food_ad" • "/fashion_ad" • "/cosmetic_ad"
"/tech_ad" • "/packaging" • "/logo_mockup"
📊 Info
"/infographic" • "/educational" • "/comparison"
"/before_after" • "/testimonial" • "/countdown" • "/giveaway"
🎯 Special
"/seasonal" • "/event" • "/viral" • "/isometric"
@awat_dev
╰─ ✦ Create • Design • Inspire ✦ ─╯
🛍️ Marketing
"/product_ad" • "/banner" • "/promo" • "/sale"
"/offer" • "/new_product" • "/brand"
📱 Social Media
"/telegram_post" • "/story_ad" • "/thumbnail"
"/channel_cover" • "/quote" • "/announcement"
✨ Styles
"/luxury_ad" • "/minimal_ad" • "/cinematic"
"/3d_ad" • "/neon" • "/retro" • "/cyberpunk" • "/premium"
🍔 Specialized
"/food_ad" • "/fashion_ad" • "/cosmetic_ad"
"/tech_ad" • "/packaging" • "/logo_mockup"
📊 Info
"/infographic" • "/educational" • "/comparison"
"/before_after" • "/testimonial" • "/countdown" • "/giveaway"
🎯 Special
"/seasonal" • "/event" • "/viral" • "/isometric"
@awat_dev
╰─ ✦ Create • Design • Inspire ✦ ─╯
🔥1🤩1🗿1
</awat>
فردا توضیح رو میزارم براتون ببینم چی جواب میدین
جواب چالش قبلی 👇
گزینهی درست: B) 1 - 4 - 3 - 2
چرا؟ چون جاوااسکریپت تکرشتهایه و کدهای سینک (مثل console.log("۱") و console.log("۴")) همیشه اول اجرا میشن.
بعدش نوبت Microtask Queue میرسه؛ یعنی Promise.then ها، که زودتر از هر تایمر اجرا میشن، حتی اگه setTimeout با ۰ میلیثانیه صدا زده شده باشه.
در آخر نوبت Macrotask Queue، یعنی setTimeout، میرسه.
نکته مهم: setTimeout(fn, 0) یعنی «فوری» نیست؛ یعنی «هر وقت stack و microtask queue خالی شدن». این سؤال کلاسیک مصاحبههای فرانتاندیه، حتماً حفظش کن 😉
اگه گزینهی درست رو زده بودی، تو کامنتها بگو! فوروارد هم یادت نره 🔁
گزینهی درست: B) 1 - 4 - 3 - 2
چرا؟ چون جاوااسکریپت تکرشتهایه و کدهای سینک (مثل console.log("۱") و console.log("۴")) همیشه اول اجرا میشن.
بعدش نوبت Microtask Queue میرسه؛ یعنی Promise.then ها، که زودتر از هر تایمر اجرا میشن، حتی اگه setTimeout با ۰ میلیثانیه صدا زده شده باشه.
در آخر نوبت Macrotask Queue، یعنی setTimeout، میرسه.
نکته مهم: setTimeout(fn, 0) یعنی «فوری» نیست؛ یعنی «هر وقت stack و microtask queue خالی شدن». این سؤال کلاسیک مصاحبههای فرانتاندیه، حتماً حفظش کن 😉
اگه گزینهی درست رو زده بودی، تو کامنتها بگو! فوروارد هم یادت نره 🔁
بریم HTML رو باهم یاد بگیریم!
قراره از صفر شروع کنیم و دونهدونه تگهای HTML رو با مثال یاد بگیریم...
ساده، کوتاه و بدون حاشیه؛
قراره از صفر شروع کنیم و دونهدونه تگهای HTML رو با مثال یاد بگیریم...
ساده، کوتاه و بدون حاشیه؛
🔥7🗿3❤1
🧱 مرحله ۱ | تگهای پایه HTML
🔹 تگ "<html>"
مشخص میکنه کل صفحه یک سند HTML هست.
🔹 تگ "<head>"
اطلاعات و تنظیمات صفحه اینجا نوشته میشه.
🔹 تگ "<title>"
عنوانی که روی تب مرورگر نمایش داده میشه.
🔹 تگ "<body>"
محتوایی که داخل صفحه دیده میشه، اینجا قرار میگیره.
@awat_dev
#HTML
🔹 تگ "<html>"
مشخص میکنه کل صفحه یک سند HTML هست.
🔹 تگ "<head>"
اطلاعات و تنظیمات صفحه اینجا نوشته میشه.
🔹 تگ "<title>"
عنوانی که روی تب مرورگر نمایش داده میشه.
🔹 تگ "<body>"
محتوایی که داخل صفحه دیده میشه، اینجا قرار میگیره.
<html>
<head>
<title>صفحه من</title>
</head>
<body>
سلام!
</body>
</html>
@awat_dev
#HTML
❤4🕊1
رفقا دمتون گرم تا اینجای کار همراه تیم آوات بودید ، به مناسبت 130 تایی شدنمون هر هفته 10 تا سایت کاربردی میگیم که مربوط به حوضه FrontEnd میشه 🔥❤️
❤4
🚀 ۱۰ سایت کاربردی که هر فرانتاندکار مبتدی بهتره بشناسه
یادمه اوایل کدنویسی، همیشه سردرگم بودم که آموزش رو از کجا دنبال کنم. این لیست همون چیزیه که کاش زودتر پیدا میکردم؛ سیوش کن، به دردت میخوره 👇
1️⃣ مرجع کامل HTML، CSS و JavaScript
developer.mozilla.org
2️⃣ آموزش و راهنمای Performance سایت
web.dev
3️⃣ مقالهها و منابع کاربردی CSS
css-tricks.com
4️⃣ یادگیری JavaScript از صفر تا مباحث پیشرفته
javascript.info
5️⃣ بررسی سازگاری ویژگیها با مرورگرها
caniuse.com
6️⃣ تمرینهای واقعی و پروژهمحور Front-End
frontendmentor.io
7️⃣ محیط آنلاین برای تست و اشتراکگذاری کد
codepen.io
8️⃣ آموزشهای رایگان و پروژهمحور
freecodecamp.org
9️⃣ ساخت و مدیریت پالتهای رنگی
coolors.co
🔟 فونتهای رایگان مناسب استفاده در وب
fonts.google.com
💡 نکته مهم:
لازم نیست همه این سایتها رو همزمان دنبال کنی. هر هفته روی یکی از اونها تمرکز کن و واقعاً ازش استفاده کن؛ نتیجه خیلی محسوستره.
اگه به دردت خورد، سیوش کن و برای یه فرانتاندکار دیگه هم بفرست 🙌
@awat_dev
یادمه اوایل کدنویسی، همیشه سردرگم بودم که آموزش رو از کجا دنبال کنم. این لیست همون چیزیه که کاش زودتر پیدا میکردم؛ سیوش کن، به دردت میخوره 👇
1️⃣ مرجع کامل HTML، CSS و JavaScript
developer.mozilla.org
2️⃣ آموزش و راهنمای Performance سایت
web.dev
3️⃣ مقالهها و منابع کاربردی CSS
css-tricks.com
4️⃣ یادگیری JavaScript از صفر تا مباحث پیشرفته
javascript.info
5️⃣ بررسی سازگاری ویژگیها با مرورگرها
caniuse.com
6️⃣ تمرینهای واقعی و پروژهمحور Front-End
frontendmentor.io
7️⃣ محیط آنلاین برای تست و اشتراکگذاری کد
codepen.io
8️⃣ آموزشهای رایگان و پروژهمحور
freecodecamp.org
9️⃣ ساخت و مدیریت پالتهای رنگی
coolors.co
🔟 فونتهای رایگان مناسب استفاده در وب
fonts.google.com
💡 نکته مهم:
لازم نیست همه این سایتها رو همزمان دنبال کنی. هر هفته روی یکی از اونها تمرکز کن و واقعاً ازش استفاده کن؛ نتیجه خیلی محسوستره.
اگه به دردت خورد، سیوش کن و برای یه فرانتاندکار دیگه هم بفرست 🙌
@awat_dev
❤7
</awat>
zeblo_winblur.rar
دوستان این فایل رو extract کنید و توی مسیر C:\Program Files بریزید
فایل Register.cmd کلیک راست کنید و گزینه run as administrator بزنید بعد از پنج ثانیه ویندوز شما شیشه ای میشه
فایل Register.cmd کلیک راست کنید و گزینه run as administrator بزنید بعد از پنج ثانیه ویندوز شما شیشه ای میشه
💯4
چجوری توی تیلویند کامپوننت ایجاد کنیم؟
بعضی موقع شده چند دکمه یا چند بخش استایل هایی کاملا شبیه به هم دارند این درست نیست به هر کدوم این استایل ها رو دوباره بدیم چون بهینه نیست و استایل ها یکیه و سند مارو شلوغ میکنه برای اینکه از شلوغ شدن صفحه جلوگیری بشه و کد ما تمیز تر و بهینه تر باشه از کامپوننت استفاده میکنیم
برای ایجاد کامپوننت توی تیلویند سی اس اس به سند input.css باید بریم و اونجا کامپوننت های خودمون رو بزاریم
حالا چجوری ؟
ما باید با کد زیر مشخص کنیم که میخوایم کامپوننت ایجاد کنیم:
با کد بالا شما میتونید بیس ایجاد کامپوننت خودتون رو ایجاد کنید داخل کریلی بریسس شما باید یک کلاس نام گذاری کنید طبق سکشنی که دارید میزنید یه کلاس مربوط بدید و داخل اون کلاس شما هم میتونید بصورت سی اس اس خام استایل هاتون رو تعریف کنید هم بصورت تیلویند بصورت سی اس اس خام در پایین مثال میزنم براتون:
با سی اس اس خام مثل مثال بالا میتونید استایلتون رو بدید و کلاس btn رو به سکشن یا دکمتون بدید
میتونید مثل کد بالا استایلتون رو بصورت تیلویند تعریف کنید.
اگ کاربردی بود براتون لایک کنید حتمی
باتشکر.
بعضی موقع شده چند دکمه یا چند بخش استایل هایی کاملا شبیه به هم دارند این درست نیست به هر کدوم این استایل ها رو دوباره بدیم چون بهینه نیست و استایل ها یکیه و سند مارو شلوغ میکنه برای اینکه از شلوغ شدن صفحه جلوگیری بشه و کد ما تمیز تر و بهینه تر باشه از کامپوننت استفاده میکنیم
برای ایجاد کامپوننت توی تیلویند سی اس اس به سند input.css باید بریم و اونجا کامپوننت های خودمون رو بزاریم
حالا چجوری ؟
ما باید با کد زیر مشخص کنیم که میخوایم کامپوننت ایجاد کنیم:
@layer components {}با کد بالا شما میتونید بیس ایجاد کامپوننت خودتون رو ایجاد کنید داخل کریلی بریسس شما باید یک کلاس نام گذاری کنید طبق سکشنی که دارید میزنید یه کلاس مربوط بدید و داخل اون کلاس شما هم میتونید بصورت سی اس اس خام استایل هاتون رو تعریف کنید هم بصورت تیلویند بصورت سی اس اس خام در پایین مثال میزنم براتون:
@layer components {
.btn{
display:flex;
justify-content: center;
align-items: center;
}
}با سی اس اس خام مثل مثال بالا میتونید استایلتون رو بدید و کلاس btn رو به سکشن یا دکمتون بدید
اگر میخواید استایل هاتون رو توی کامپوننت هم بصورت تیلویند باشه باید با @apply این کار رو انجام بدید مثالش رو پایین براتون میزنم:@layer components {
.btn{
@apply flex justify-center items-center;
}
}میتونید مثل کد بالا استایلتون رو بصورت تیلویند تعریف کنید.
اگ کاربردی بود براتون لایک کنید حتمی
باتشکر.
❤11
خب دوستان یه مقاله داریم راجب ساخت header و footer توی جاوا اسکریپت و قرار دادن توی همه صفحات سایت
🤩6❤1
</awat>
خب دوستان یه مقاله داریم راجب ساخت header و footer توی جاوا اسکریپت و قرار دادن توی همه صفحات سایت
اولین راهی که به ذهنتون میاد اینه که توی همه صفحات کد های HTML رو اضافه کنیم ولی خب این روش باعث زیاد شدن کد ها و در نتیجه سنگین شدن سایت میشه