🔸احتمالاً توی پروژتون نیاز به این داشتید که اعداد انگلیسی رو تبدیل به اعداد فارسی کنید.
🔹با تکه کد زیر میتونید این کار رو توی جاوااسکریپت انجام بدید.
const numberFormatter = new Intl.NumberFormat('fa');
console.log(numberFormatter.format('9'));
🔸فقط دقت کنید که خروجیای که بهتون برمیگردونه string هست و نمیتونید اون رو هم تبدیل به عدد بکنید.
#Tips
👤 MHReza
💎 Channel: @DevelopixJavascript
🔹با تکه کد زیر میتونید این کار رو توی جاوااسکریپت انجام بدید.
const numberFormatter = new Intl.NumberFormat('fa');
console.log(numberFormatter.format('9'));
🔸فقط دقت کنید که خروجیای که بهتون برمیگردونه string هست و نمیتونید اون رو هم تبدیل به عدد بکنید.
#Tips
👤 MHReza
💎 Channel: @DevelopixJavascript
👍10❤1
با اجرای این کد چه اتفاقی خواهد افتاد؟
دلیلش رو توضیح بدین.
#questions
👤 MHReza
💎 Channel: @DevelopixJavascript
دلیلش رو توضیح بدین.
#questions
👤 MHReza
💎 Channel: @DevelopixJavascript
👍9
🔸پاسخ این هست که ابتدا عبارت developix چاپ میشه ولی در خط بعدی ما ReferenceError میگیریم.
🔹دلیل این اتفاق هم این هست که ما در جاوااسکریپت ویژگیای داریم به نام Hoisting که همه تعاریف مربوط به متغیرها و توابع رو به بالای کدمون میبره (درواقع عملکردش به این صورت نیست ولی خب توی این پست نمیگنجه که کامل توضیح بدم پس بعداً توی یه پست دیگه کامل در موردش توضیح میدم.) و به همین دلیل هست که میتونیم به فانکشن sayDevelopix دسترسی داشته باشیم قبل از تعریف شدنش.
🔸ولی این قضیه کمی متفاوته در مورد arrow function ها که توضیح کامل رو توی پست بعد بهتون میدم ولی تا اینجا فقط بدونید که قبل از تعریف شدنشون نمیتونیم بهشون دسترسی داشته باشیم.
👤 MHReza
💎 Channel: @DevelopixJavascript
🔹دلیل این اتفاق هم این هست که ما در جاوااسکریپت ویژگیای داریم به نام 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
🔸 توی پست قبل کمی در مورد Hoisting صحبت کردیم اما تو این پست میخوام یه توضیح کاملی در موردش بدم که ببینیم چی هست و چیکار میکنه.
🔹 جاوااسکریپت وقتی کد ما رو دریافت میکنه اولین کاری که میکنه راهاندازی حافظه هستش. میاد و متغیرها و توابعمون رو ذخیره میکنه. ولی خب ذخیره این دوتا کمی متفاوته که در ادامه توضیح میدم.
🔸جاوااسکریپت توابع رو به صورت کامل و با آدرسدهی کل تابع میاد و ذخیره میکنه.
🔹 اما در مورد متغیرها این مسئله متفاوته، متغیرهایی که با کلمه کلیدی var تعریف میشوند رو با مقدار undefined ذخیره میکنه و زمان اجرای کد وقتی به جایی که اون رو تعریف کردید میرسه، مقدارش رو بازنویسی میکنه. احتمالاً قبلا با این مسئله روبرو شدید که قبل از تعریف کردن var میخواستید که به مقدارش دسترسی داشته باشید ولی بهتون undefined میداده، دلیلش همینه.
🔸 اما در es6 دو تعریف جدید برای متغیرها معرفی شد که let و const بودن. جاوااسکریپت این متغیرها رو توی همون مرحله راهاندازی حافظه به صورت uninitialized ذخیره میکنه. برای جلوگیری از مشکلات، زمانی که بخواهید قبل از تعریف شدن به متغیرهایی که با let و const تعریف شدن دسترسی پیدا کنید ارور RefrenceError میگیرید. به همین دلیل هم بود که توی کوییز قبلی ما موقعی که میخواستیم به تابع writeHello دسترسی داشته باشیم ارور RefrenceError رو میگرفتیم.
👤 MHReza
💎 Channel: @DevelopixJavascript
👍7