| کانال توسعه‌دهندگان جاوااسکریپت |
3.83K subscribers
37 photos
2 videos
28 links
⭕️ کانال توسعه‌دهندگان جاوااسکریپت دولوپیکس

💠 دولوپیکس | جامعه توسعه‌دهندگان ایرانی

💎 @Developix
🚀 Developix.ir

📌 پشتیبانی و تبلیغات:
@DevelopixSupport
Download Telegram
🔸احتمالاً توی پروژتون نیاز به این داشتید که اعداد انگلیسی رو تبدیل به اعداد فارسی کنید.

🔹با تکه کد زیر می‌تونید این کار رو توی جاوااسکریپت انجام بدید.

const numberFormatter = new Intl.NumberFormat('fa');

console.log(numberFormatter.format('9'));

🔸فقط دقت کنید که خروجی‌ای که بهتون برمی‌گردونه string هست و نمی‌تونید اون رو هم تبدیل به عدد بکنید.

#Tips

👤 MHReza

💎 Channel: @DevelopixJavascript
👍101
با اجرای این کد چه اتفاقی خواهد افتاد؟
دلیلش رو توضیح بدین.

#questions

👤 MHReza

💎 Channel: @DevelopixJavascript
👍9
🔸پاسخ این هست که ابتدا عبارت developix چاپ میشه ولی در خط بعدی ما ReferenceError می‌گیریم.

🔹دلیل این اتفاق هم این هست که ما در جاوااسکریپت ویژگی‌ای داریم به نام Hoisting که همه تعاریف مربوط به متغیرها و توابع رو به بالای کدمون می‌بره (درواقع عملکردش به این صورت نیست ولی خب توی این پست نمی‌گنجه که کامل توضیح بدم پس بعداً توی یه پست دیگه کامل در موردش توضیح می‌دم.) و به همین دلیل هست که می‌تونیم به فانکشن sayDevelopix دسترسی داشته باشیم قبل از تعریف شدنش.

🔸ولی این قضیه کمی متفاوته در مورد arrow function ها که توضیح کامل رو توی پست بعد بهتون می‌دم ولی تا اینجا فقط بدونید که قبل از تعریف شدنشون نمی‌تونیم بهشون دسترسی داشته باشیم.

👤 MHReza

💎 Channel: @DevelopixJavascript
👍5🔥1
🌀 معرفی ‏Hoisting 🌀

🔸 توی پست قبل کمی در مورد Hoisting صحبت کردیم اما تو این پست می‌خوام یه توضیح کاملی در موردش بدم که ببینیم چی هست و چیکار می‌کنه.

🔹 جاوااسکریپت وقتی کد ما رو دریافت می‌کنه اولین کاری که می‌کنه راه‌اندازی حافظه هستش. میاد و متغیرها و توابعمون رو ذخیره می‌کنه. ولی خب ذخیره این دوتا کمی متفاوته که در ادامه توضیح می‌دم.

🔸جاوااسکریپت توابع رو به صورت کامل و با آدرس‌دهی کل تابع میاد و ذخیره می‌کنه.

🔹 اما در مورد متغیرها این مسئله متفاوته، متغیرهایی که با کلمه کلیدی var تعریف می‌شوند رو با مقدار undefined ذخیره می‌کنه و زمان اجرای کد وقتی به جایی که اون رو تعریف کردید می‌رسه، مقدارش رو بازنویسی می‌کنه. احتمالاً قبلا با این مسئله روبرو شدید که قبل از تعریف کردن var می‌خواستید که به مقدارش دسترسی داشته باشید ولی بهتون undefined می‌داده، دلیلش همینه.

🔸 اما در es6 دو تعریف جدید برای متغیرها معرفی شد که let و const بودن. جاوااسکریپت این متغیرها رو توی همون مرحله راه‌اندازی حافظه به صورت uninitialized ذخیره می‌کنه. برای جلوگیری از مشکلات، زمانی که بخواهید قبل از تعریف شدن به متغیرهایی که با let و const تعریف شدن دسترسی پیدا کنید ارور RefrenceError می‌گیرید. به همین دلیل هم بود که توی کوییز قبلی ما موقعی که می‌خواستیم به تابع writeHello دسترسی داشته باشیم ارور RefrenceError رو می‌گرفتیم.

👤 MHReza

💎 Channel: @DevelopixJavascript
👍7
| کانال توسعه‌دهندگان جاوااسکریپت |
👤 MHReza 💎 Channel: @DevelopixJavascript
🔸 در جاوااسکریپت یک عملگر پیچیده به نام «in» وجود داره که بعضی از افراد به اشتباه فکر میکنن که بر اساس مقداری که داخل یک آبجکت یا آرایه و ... وجود داره بررسی می‌کنه و فکر می‌کنند که خروجی اشتباهی رو گرفتن. داخل این پست بیاید با چند مثال یه نگاهی بهش داشته باشیم.

🔹عملگر in اگر پراپرتی مورد نظر داخل شئ مورد نظر وجود داشته باشه، به ما true برمی‌گردونه.

🔸 داخل مثال اول می‌بینید که ایندکس 1 و 2 داخل آرایمون وجود داره و برای همین به ما true رو برگردونده ولی ایندکس 3 رو پیدا نکرده و false برگردونده.

🔹 دومین مثالمون یه object هست. مشخصا ما پراپرتی name رو داریم توی آبجکتمون و به ما true برمی‌گردونه ولی وقتی اون رو حذف می‌کنیم مشخصا دیگه توی آبجکتمون نداریمش و false رو به ما برمی‌گردونه.
حالا اگه ما مقدار یه پراپرتی رو عوض کنیم چی؟ باز هم تغییری نمیکنه چون فقط به دنبال خود پراپرتی می‌گرده نه مقدارش

🔸 توی مثال سوم هم می‌بینید که ما ایندکس صفر رو داریم توی آرایمون و بهمون true رو برمی‌گردونه. ولی وقتی دنبال کلمه ali می‌گردیم بهمون false برمی‌گردونه چون هیچ کلیدی به نام ali توی آرایمون نداریم.

👤 MHReza

💎 Channel: @DevelopixJavascript
👍9👎21