برچسب گذاری شرط ها ( Labelled Statements ) در جاوااسکریپت ✌️
💎 در جاوااسکریپت میتونید به هر statement یک برچسب (label) اختصاص بدید و بعد از اون برچسب برای کنترل جریان برنامه استفاده کنید. این ویژگی بیشتر برای کنترل جریان در حلقهها (loops) به کار میره. این مثال رو ببینیم تا بهتر متوجه کاربردش بشیم:
✔️ در واقع خروجی به این شکله:
✨ و وقتی که i و j هر دو برابر 1 میشن، لوپ بزرگتر ما break میشه و میره خونشون.
و برنامه میره ادامه کارش(یا مثل این مثال، تموم میشه)
#javascript #js #trick
☕️ @CodeExplore
outerLoop: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (i === 1 && j === 1) {
break outerLoop;
}
console.log(`i = ${i}, j = ${j}`);
}
}
i = 0, j = 0
i = 0, j = 1
i = 0, j = 2
i = 1, j = 0
و برنامه میره ادامه کارش(یا مثل این مثال، تموم میشه)
#javascript #js #trick
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥10⚡2🔥1
کاربرد اعداد BigInt در جاوااسکریپت ✌️
میدونستین توی جاوااسکریپت این شرط برقراره؟
اما چرا؟ چون توی جاوااسکریپت، بزرگترین عدد صحیحی که میتونین با دقت کامل توی متغیرها ذخیره کنید، Number.MAX_SAFE_INTEGER هست که برابر با 9007199254740991 است. اگه عددی بزرگتر از این باشه، جاوااسکریپت دیگه نمیتونه به درستی اون رو مدیریت کنه و مقایسهاش دقیق نیست.
راه حلش چیه؟ باید اعدادتون رو BigInt تعریف کنید. چطوری؟ اینطوری:
البته میتونید اینکار رو هم بکنید:
#javascript #js #trick
☕️ @CodeExplore
میدونستین توی جاوااسکریپت این شرط برقراره؟
console.log(9999999999999999 === 10000000000000000);
// true
اما چرا؟ چون توی جاوااسکریپت، بزرگترین عدد صحیحی که میتونین با دقت کامل توی متغیرها ذخیره کنید، Number.MAX_SAFE_INTEGER هست که برابر با 9007199254740991 است. اگه عددی بزرگتر از این باشه، جاوااسکریپت دیگه نمیتونه به درستی اون رو مدیریت کنه و مقایسهاش دقیق نیست.
راه حلش چیه؟ باید اعدادتون رو BigInt تعریف کنید. چطوری؟ اینطوری:
let bigNumber = 1234567890123456789012345678901234567890n;
console.log(bigNumber);
//1234567890123456789012345678901234567890n
البته میتونید اینکار رو هم بکنید:
let number= 42
let bignumber = BigInt(number)
#javascript #js #trick
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡11🔥3❤🔥1
جاوااسکریپت چطوری خلق شد؟ ✌️
📌 یه نکته جالب درباره جاوااسکریپت که خیلیها نمیدونن اینه که جاوااسکریپت در اصل در ۱۰ روز توسط یک برنامهنویس به نام برندان آیک ساخته شد! اون زمان شرکت Netscape به سرعت به یه زبان اسکریپتنویسی برای وب نیاز داشت تا بتونه با رقبا رقابت کنه. این زبان اول به نام Mocha معرفی شد، بعد اسمش شد LiveScript و نهایتاً برای استفاده از شهرت جاوا، اسمش رو به جاوااسکریپت تغییر دادن، با اینکه ارتباط زیادی با جاوا نداره.
💥 در واقع، جاوااسکریپت خیلی سریع طراحی شد و انتظار نمیرفت که تبدیل به یکی از مهمترین زبانهای وب بشه!
#javascript #js
☕️ @CodeExplore
#javascript #js
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡23❤🔥5😁4🔥2
تناقض عجیب در جاوااسکریپت ✌️
🙂 خب میدونین که از typeof برای تشخیص دادن جنس مقادیر استفاده میشه، مثلا اگر بنویسیم
بهتون خروجی number رو برمیگردونه. حالا، بیاین ببینیم اگر بهش null بدیم چی میشه؟
🤯 چرا؟ در واقع null توی جاوااسکریپت به عنوان آبجکت شناخته میشه، این داستان یه باگ تاریخیه توی جاوااسکریپت، که از نسخه های ابتداییش مونده و به دلایلی برای سازگاری عقب رو نگه داشتنش و هنوزم وجود داره.
خلاصش که توی جاوااسکریپت null به عنوان یه آبجکت شناخته میشه در حالی که واقعا شئ نیست و به عنوان "هیچی" میشناسیمش🥲
#javascript #js
☕️ @CodeExplore
console.log(typeof 1);
بهتون خروجی number رو برمیگردونه. حالا، بیاین ببینیم اگر بهش null بدیم چی میشه؟
console.log(typeof null)
//خروجی: object
خلاصش که توی جاوااسکریپت null به عنوان یه آبجکت شناخته میشه در حالی که واقعا شئ نیست و به عنوان "هیچی" میشناسیمش
#javascript #js
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡20❤🔥3🔥3
اگه دنبال یه سایت خفن برای جاوااسکریپت هستین، این سایت واقعاً عالیه و همه چیز رو از مبانی تا مباحث پیشرفته جاوااسکریپت توضیح داده. آموزشهاش خیلی خوب و ساده نوشته شده و تو هر مبحث کلی مثال کاربردی میزنه.
🔗 JavaScript.info
#site #javascript #js
☕️ @CodeExplore
#site #javascript #js
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥11⚡2🔥2
خروجی این کد چیه؟
#js #javascript #quiz
☕️ @CodeExplore
(function() {
var a = b = 5;
})();
console.log(b);
#js #javascript #quiz
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡7💔3❤🔥1🔥1
چرا نباید از setTimeout در جاوااسکریپت استفاده کنیم؟ مرهم این موضوع 👀
❗️ در جاوااسکریپت، setTimeout یک تابع پرکاربرد برای اجرای کد بعد از گذشت زمانی مشخص است. اما استفاده از این تابع میتواند مشکلاتی ایجاد کند که به مرور باعث کاهش کارایی و افزایش پیچیدگی کدها میشود. در این مقاله، به دلایل اصلی عدم استفاده از setTimeout و جایگزینهای بهتر مانند Promise و async/await میپردازیم.
🌕 برای مشاهده کامل مقاله کلیک کنید.
#js #javascript #settimeout #promise #async #await #tricks #tips #programming
☕️ @CodeExplore
#js #javascript #settimeout #promise #async #await #tricks #tips #programming
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥11⚡5🔥2
WebAssembly در فرانتاند: تحولی برای عملکرد بالاتر 🔥
📣 WebAssembly (Wasm) یکی از جدیدترین تکنولوژیها در دنیای وب هست که به توسعه دهندگان امکان میده تا کدهای سطح پایین و بهینهای رو روی مرورگرهای وب اجرا کنن. این تکنولوژی برای برنامههایی که به سرعت و عملکرد بالایی نیاز دارن، مثل بازیهای وب و برنامههای محاسباتی سنگین، بسیار کاربردی هست. در این مقاله، به بررسی WebAssembly، مزایای آن در فرانتاند، و چگونگی استفاده از آن خواهیم پرداخت.
🌕 برای مشاهده کامل مقاله کلیک کنید.
#webassembelly #frontend #js #html #css #javascript #programming
☕️ @CodeExplore
#webassembelly #frontend #js #html #css #javascript #programming
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡12❤🔥3🔥2
توی این سایت میتونی به بیش از 100 پروژه که با جاوا اسکریپت پیاده شدن دسترسی داشته باشی🔥
کافیه روی هر پروژه که میخوای کلیک کنی و توضیحات مربوط به پروژه، دمو پروژه و حتی کد های پروژه رو استفاده کنی😃✅
https://100jsprojects.com
🛎 اگر سایت براتون باز نشد از VPN استفاده کنید.
حمایت و اشتراک گذاری فراموش نشه😉🧡
#js #javascript #projects #programming
☕️ Telegram | Website | Discord
کافیه روی هر پروژه که میخوای کلیک کنی و توضیحات مربوط به پروژه، دمو پروژه و حتی کد های پروژه رو استفاده کنی😃✅
https://100jsprojects.com
🛎 اگر سایت براتون باز نشد از VPN استفاده کنید.
حمایت و اشتراک گذاری فراموش نشه😉🧡
#js #javascript #projects #programming
☕️ Telegram | Website | Discord
⚡7🔥4
با این یه خط کد داده تکراری آرایه در جاوااسکریپت رو حذف کن! 🔥
🔸️برای اینکار بیاید فرض کنیم یک آرایه داریم که این مقادیر رو داره:
🔹️خب، حالا میخوایم مقادیری که تکراری نیستن رو بگیریم یعنی آرایه جدید ما باید شامل 1,2,3 باشه، بجای اینکه بریم از آرایه اضافه و حلقه فور استفاده کنیم و سرعت لود شدن سایت رو بیاریم پایین این یه خط رو مینویسیم:
و تمام! اگر در مورد Set ها در جاوااسکریپت نمیدونید هم این پست حتما به کارتون میاد!
#javascript #trick
☕️Telegram | Website | Discord
🔸️برای اینکار بیاید فرض کنیم یک آرایه داریم که این مقادیر رو داره:
const arr1=[1,1,1,2,2,3,3,3,3] ;
🔹️خب، حالا میخوایم مقادیری که تکراری نیستن رو بگیریم یعنی آرایه جدید ما باید شامل 1,2,3 باشه، بجای اینکه بریم از آرایه اضافه و حلقه فور استفاده کنیم و سرعت لود شدن سایت رو بیاریم پایین این یه خط رو مینویسیم:
const uniqeArr = [ ... new Set(arr1) ] ;
و تمام! اگر در مورد Set ها در جاوااسکریپت نمیدونید هم این پست حتما به کارتون میاد!
#javascript #trick
☕️Telegram | Website | Discord
❤🔥7🔥3
میدونستین توی جاوااسکریپت میتونین صفحه های کاربر رو مدیریت کنین؟ ⚡️
🔹️ یعنی مثلا یک صفحه بره عقب،یک صفحه بره جلو یا ... به این شکل هستش...
🔸️ این برای وقتیه که کاربر یک صفحه برگشته عقب، با این میتونید بفرستیدش بره صفحه قبلی(یعنی صفحه جلویی!):
🔸️ این یکی هم برای وقتیه که میخواید کاربر رو یک صفحه ببرید عقب! به این شکل:
#javascript #js #trick
☕️Telegram | Website | Discord
🔹️ یعنی مثلا یک صفحه بره عقب،یک صفحه بره جلو یا ... به این شکل هستش...
🔸️ این برای وقتیه که کاربر یک صفحه برگشته عقب، با این میتونید بفرستیدش بره صفحه قبلی(یعنی صفحه جلویی!):
history.forward()
🔸️ این یکی هم برای وقتیه که میخواید کاربر رو یک صفحه ببرید عقب! به این شکل:
history.back()
#javascript #js #trick
☕️Telegram | Website | Discord
❤🔥10🔥3
استخراج آرایه به روش Destructing در جاوااسکریپت 🔥
🔸️یه روش خفن توی جاوااسکریپت هست به اسم Destructuring که خیلی کارو راحت میکنه ⚡️
🔹️با این روش میتونی خیلی راحت مقدارها رو از آبجکت یا آرایه بکشی بیرون، بدون نیاز به کلی کد اضافه.
مثلاً:
#javascript #js #trick #destructuring
☕️Telegram | Website | Discord
🔸️یه روش خفن توی جاوااسکریپت هست به اسم Destructuring که خیلی کارو راحت میکنه ⚡️
🔹️با این روش میتونی خیلی راحت مقدارها رو از آبجکت یا آرایه بکشی بیرون، بدون نیاز به کلی کد اضافه.
مثلاً:
let user = { name: 'Ali', age: 25 };
let { name, age } = user;
console.log(name, age); // خروجی: 'Ali', 25
let numbers = [1, 2, 3];
let [first, second, third] = numbers;
console.log(first, second, third); // خروجی: 1, 2, 3
#javascript #js #trick #destructuring
☕️Telegram | Website | Discord
❤🔥8🔥2
میدونستین میتونین از لیست ها توی شرط در جاوااسکریپت استفاده کنین؟ 🔥
🔸️ مثلا میخوایم چک بکنیم یه مقداری برابر 1 یا one هستش یا نه(و میتونه این مقدار طولانی تر باشه،مثلا شامل 2,two,3,three هم باشه)
🔹️بجای اینکه بنویسین:
میتونید بنویسید:
#javascript #js #trick
☕️Telegram | Website | Discord
🔸️ مثلا میخوایم چک بکنیم یه مقداری برابر 1 یا one هستش یا نه(و میتونه این مقدار طولانی تر باشه،مثلا شامل 2,two,3,three هم باشه)
🔹️بجای اینکه بنویسین:
if(value == 1 || value == 'one'){
//کدی که میخواین
}
میتونید بنویسید:
if([1,'one'].includes(value)){
//کدی که میخواین
}
#javascript #js #trick
☕️Telegram | Website | Discord
🔥16⚡2
برچسب گذاری شرط ها ( Labelled Statements ) در جاوااسکریپت ✅️
🔹️در جاوااسکریپت میتونید به هر statement یک برچسب (label) اختصاص بدید و بعد از اون برچسب برای کنترل جریان برنامه استفاده کنید. این ویژگی بیشتر برای کنترل جریان در حلقهها (loops) به کار میره. این مثال رو ببینیم تا بهتر متوجه کاربردش بشیم:
🔸️در واقع خروجی به این شکله:
⚡️و وقتی که i و j هر دو برابر 1 میشن، لوپ بزرگتر ما break میشه و میره خونشون.
و برنامه میره ادامه کارش(یا مثل این مثال، تموم میشه)
#javascript #js #trick
☕️Telegram | Website | Discord
🔹️در جاوااسکریپت میتونید به هر statement یک برچسب (label) اختصاص بدید و بعد از اون برچسب برای کنترل جریان برنامه استفاده کنید. این ویژگی بیشتر برای کنترل جریان در حلقهها (loops) به کار میره. این مثال رو ببینیم تا بهتر متوجه کاربردش بشیم:
outerLoop: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (i === 1 && j === 1) {
break outerLoop;
}
console.log(`i = ${i}, j = ${j}`);
}
}
🔸️در واقع خروجی به این شکله:
i = 0, j = 0
i = 0, j = 1
i = 0, j = 2
i = 1, j = 0
⚡️و وقتی که i و j هر دو برابر 1 میشن، لوپ بزرگتر ما break میشه و میره خونشون.
و برنامه میره ادامه کارش(یا مثل این مثال، تموم میشه)
#javascript #js #trick
☕️Telegram | Website | Discord
🔥9❤🔥3
💎با استفاده از animejs شما میتونید هر کامپوننت انیمیشنی رو پیدا کنید و از اون استفاده کنید.
از ویژگی های animejs به تبدیل های پیشرفته، SVG toolset، Responsive Animations و... میشه اشاره کرد.
فقط کافیه به داکیومنتش سر بزنید نحوه نصب و استفاده از انیمیشن های مختلفش رو ببینید و به کد های جاوا اسکریپت و HTML انیمیشن ها دسترسی داشته باشید.
🔗 https://animejs.com
#animejs #javascript #animations
☕️Telegram | Website | Discord
از ویژگی های animejs به تبدیل های پیشرفته، SVG toolset، Responsive Animations و... میشه اشاره کرد.
فقط کافیه به داکیومنتش سر بزنید نحوه نصب و استفاده از انیمیشن های مختلفش رو ببینید و به کد های جاوا اسکریپت و HTML انیمیشن ها دسترسی داشته باشید.
🔗 https://animejs.com
#animejs #javascript #animations
☕️Telegram | Website | Discord
🔥7❤🔥2⚡1
چجوری توی جاوااسکریپت بفهمیم کاربر مقداری وارد کرده یا نه؟ ⚡️
🔸️ خب احتمالا در حالت عادی میرفتید با if طول دیتا رو بدست میاوردید و true یا false رو برمیگردوندید، اما نیازی به این کار نیست.
#javascript #js #trick
☕️Telegram | Website | Discord
🔸️ خب احتمالا در حالت عادی میرفتید با if طول دیتا رو بدست میاوردید و true یا false رو برمیگردوندید، اما نیازی به این کار نیست.
const v1 = "CodeExplore"
const v2 = ""
console.log(!!v1)
// true
console.log(!!v2)
// false
#javascript #js #trick
☕️Telegram | Website | Discord
🔥16❤🔥3⚡1
Flat کردن array در جاوااسکریپت 🔥
🔹️دیدین بعضی وقتا آرایه رو میدن این شکلیه:
و شما میخواین به صورت 1,2,3,4,5,6 باشه!
🔸️اینجور وقتا به جای اینکه کفرتون در بیاد میتونین این کد رو بنویسید و به آرامش درونتون برگردید:
✅️اینجور وقتا اصطلاحا یک آرایه پیچ در پیچ یا تو در تو رو، flat کردیم
#javascript #js #trick #flatArray
☕️Telegram | Website | Discord
🔹️دیدین بعضی وقتا آرایه رو میدن این شکلیه:
let array = [1, [2, 3], [4, [5, 6]]];
و شما میخواین به صورت 1,2,3,4,5,6 باشه!
🔸️اینجور وقتا به جای اینکه کفرتون در بیاد میتونین این کد رو بنویسید و به آرامش درونتون برگردید:
let array = [1, [2, 3], [4, [5, 6]]];
let flatArray = array.flat(2);
// [1, 2, 3, 4, 5, 6]
✅️اینجور وقتا اصطلاحا یک آرایه پیچ در پیچ یا تو در تو رو، flat کردیم
#javascript #js #trick #flatArray
☕️Telegram | Website | Discord
🔥9⚡3❤🔥1
🎓 دوره جدید مایکروسافت Generative AI با JavaScript
مایکروسافت یک دوره رایگان و پروژهمحور روی GitHub منتشر کرده که به شما یاد میده چطور با JavaScript اپلیکیشنهای مبتنی بر Generative AI بسازید. این دوره ادامه دوره قبلی Generative AI for Beginners محسوب میشه، اما این بار با تمرکز کامل روی JavaScript و در قالب یک ماجراجویی داستانی طراحی شده.
در طول مسیر، با شخصیتهای تاریخی مثل داوینچی و آدا لاولیس همکاری میکنید، با مفاهیم LLM، مهندسی پرامپت، RAG و ساختاردهی خروجیها آشنا میشین و یاد میگیرید چطور اپ هایی بسازید که از مدلهای زبانی استفاده کنن. همه چیز به صورت Interactive یا تعاملی، همراه با ویدیو، تمرین، آزمون و اپ قابل اجرا روی GitHub Spaces ارائه شده.
🔗 لینک های رسمی دوره: گیت هاب - داکیومنت
#microsoft #ai #generative #course #javascript
☕️Telegram | Website | Discord
مایکروسافت یک دوره رایگان و پروژهمحور روی GitHub منتشر کرده که به شما یاد میده چطور با JavaScript اپلیکیشنهای مبتنی بر Generative AI بسازید. این دوره ادامه دوره قبلی Generative AI for Beginners محسوب میشه، اما این بار با تمرکز کامل روی JavaScript و در قالب یک ماجراجویی داستانی طراحی شده.
در طول مسیر، با شخصیتهای تاریخی مثل داوینچی و آدا لاولیس همکاری میکنید، با مفاهیم LLM، مهندسی پرامپت، RAG و ساختاردهی خروجیها آشنا میشین و یاد میگیرید چطور اپ هایی بسازید که از مدلهای زبانی استفاده کنن. همه چیز به صورت Interactive یا تعاملی، همراه با ویدیو، تمرین، آزمون و اپ قابل اجرا روی GitHub Spaces ارائه شده.
🔗 لینک های رسمی دوره: گیت هاب - داکیومنت
#microsoft #ai #generative #course #javascript
☕️Telegram | Website | Discord
🔥9❤🔥3😍2⚡1
تا حالا به فرق var، let و const فکر کردین؟
🔹var همه جا کار میکنه ولی یه سری دردسرا داره، مثلاً متغیر قبل از تعریف هم قابل استفاده هست (به خاطر hoisting)، که گاهی اوقات خیلی گمراهکننده میشه.
🔹let نسخه پیشرفته تره؛ فقط توی همون بلاکی که تعریفش کردی در دسترسه، و میتونی بعداً مقدارش رو عوض کنی.
🔹const هم مثل let رفتار میکنه، فقط فرقش اینه که دیگه نمیتونی مقدارش رو عوض کنی! البته اگه یه آرایه یا آبجکت باشه، میتونی داخلش رو دستکاری کنی!
این مورد هایی که گفتیم، فرق های جزئی هستن، میتونید مقاله کامل راجب این موارد رو توی سایتمون بخونید:
🔗 تفاوت var و let و const در JavaScript
#javascript #js #const #let #var
☕️Telegram | Website | Discord
🔹var همه جا کار میکنه ولی یه سری دردسرا داره، مثلاً متغیر قبل از تعریف هم قابل استفاده هست (به خاطر hoisting)، که گاهی اوقات خیلی گمراهکننده میشه.
🔹let نسخه پیشرفته تره؛ فقط توی همون بلاکی که تعریفش کردی در دسترسه، و میتونی بعداً مقدارش رو عوض کنی.
🔹const هم مثل let رفتار میکنه، فقط فرقش اینه که دیگه نمیتونی مقدارش رو عوض کنی! البته اگه یه آرایه یا آبجکت باشه، میتونی داخلش رو دستکاری کنی!
این مورد هایی که گفتیم، فرق های جزئی هستن، میتونید مقاله کامل راجب این موارد رو توی سایتمون بخونید:
🔗 تفاوت var و let و const در JavaScript
#javascript #js #const #let #var
☕️Telegram | Website | Discord
🔥13❤🔥5⚡3😁1
تو دنیای جاوااسکریپت برای مدیریت کدهای بزرگ و پیچیده، ماژولبندی حیاتی هست. دو سیستم معروف CommonJS و ESM هر کدوم ویژگیها و کاربردهای خاص خودشون رو دارن. CommonJS که از Node.js اومده و از روش همزمان (sync) بارگذاری استفاده میکنه، تو محیط سرور حسابی جا افتاده، ولی تو مرورگر بهصورت مستقیم کار نمیکنه و نیاز به ابزارهای bundler مثل Webpack داره. از طرف دیگه، ESM که استاندارد جدید ECMAScript هست، با بارگذاری غیرهمزمان (async) و قابلیت tree-shaking (حذف کدهای بلااستفاده) بهینهتره و هم تو مرورگر های مدرن و هم تو Node.js نسخههای جدید پشتیبانی میشه.
برای مطالعه دقیق راجب تفاوت CommonJS و ESM این مقاله رو میتونید بخونید:
🔗 تفاوت های CommonJs و ESM
#Javascript #JS #CommonJS #ESM
☕️Telegram | Website | Discord
برای مطالعه دقیق راجب تفاوت CommonJS و ESM این مقاله رو میتونید بخونید:
🔗 تفاوت های CommonJs و ESM
#Javascript #JS #CommonJS #ESM
☕️Telegram | Website | Discord
❤🔥6🔥4