🔸احتمالاً توی پروژتون نیاز به این داشتید که اعداد انگلیسی رو تبدیل به اعداد فارسی کنید.
🔹با تکه کد زیر میتونید این کار رو توی جاوااسکریپت انجام بدید.
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
| کانال توسعهدهندگان جاوااسکریپت |
👤 MHReza 💎 Channel: @DevelopixJavascript
🔸 در جاوااسکریپت یک عملگر پیچیده به نام «in» وجود داره که بعضی از افراد به اشتباه فکر میکنن که بر اساس مقداری که داخل یک آبجکت یا آرایه و ... وجود داره بررسی میکنه و فکر میکنند که خروجی اشتباهی رو گرفتن. داخل این پست بیاید با چند مثال یه نگاهی بهش داشته باشیم.
🔹عملگر in اگر پراپرتی مورد نظر داخل شئ مورد نظر وجود داشته باشه، به ما true برمیگردونه.
🔸 داخل مثال اول میبینید که ایندکس 1 و 2 داخل آرایمون وجود داره و برای همین به ما true رو برگردونده ولی ایندکس 3 رو پیدا نکرده و false برگردونده.
🔹 دومین مثالمون یه object هست. مشخصا ما پراپرتی name رو داریم توی آبجکتمون و به ما true برمیگردونه ولی وقتی اون رو حذف میکنیم مشخصا دیگه توی آبجکتمون نداریمش و false رو به ما برمیگردونه.
حالا اگه ما مقدار یه پراپرتی رو عوض کنیم چی؟ باز هم تغییری نمیکنه چون فقط به دنبال خود پراپرتی میگرده نه مقدارش
🔸 توی مثال سوم هم میبینید که ما ایندکس صفر رو داریم توی آرایمون و بهمون true رو برمیگردونه. ولی وقتی دنبال کلمه ali میگردیم بهمون false برمیگردونه چون هیچ کلیدی به نام ali توی آرایمون نداریم.
👤 MHReza
💎 Channel: @DevelopixJavascript
🔹عملگر in اگر پراپرتی مورد نظر داخل شئ مورد نظر وجود داشته باشه، به ما true برمیگردونه.
🔸 داخل مثال اول میبینید که ایندکس 1 و 2 داخل آرایمون وجود داره و برای همین به ما true رو برگردونده ولی ایندکس 3 رو پیدا نکرده و false برگردونده.
🔹 دومین مثالمون یه object هست. مشخصا ما پراپرتی name رو داریم توی آبجکتمون و به ما true برمیگردونه ولی وقتی اون رو حذف میکنیم مشخصا دیگه توی آبجکتمون نداریمش و false رو به ما برمیگردونه.
حالا اگه ما مقدار یه پراپرتی رو عوض کنیم چی؟ باز هم تغییری نمیکنه چون فقط به دنبال خود پراپرتی میگرده نه مقدارش
🔸 توی مثال سوم هم میبینید که ما ایندکس صفر رو داریم توی آرایمون و بهمون true رو برمیگردونه. ولی وقتی دنبال کلمه ali میگردیم بهمون false برمیگردونه چون هیچ کلیدی به نام ali توی آرایمون نداریم.
👤 MHReza
💎 Channel: @DevelopixJavascript
👍9👎2❤1
🔹 شاید براتون سوال شده باشه که پس فرق in و متد hasOwnProperty چی هست. عملگر in علاوه بر اینکه بررسی میکنه پراپرتی یا متد مورد نظر داخل آبجکت وجود داره، این رو هم بررسی میکنه که آیا پراپرتیای که دنبالش میگردیم توی پروتوتایپ اون آبجکت هم وجود داره یا نه.
ولی متد hasOwnProperty فقط دنبال پراپرتی یا متد داخل آبجکت میگرده و دیگه کاری به پروتوتایپ اون ابجکت نداره.
🔸 توی مثال بالا هم میتونید متوجه این موضوع بشید.
👤 MHReza
💎 Channel: @DevelopixJavascript
ولی متد hasOwnProperty فقط دنبال پراپرتی یا متد داخل آبجکت میگرده و دیگه کاری به پروتوتایپ اون ابجکت نداره.
🔸 توی مثال بالا هم میتونید متوجه این موضوع بشید.
👤 MHReza
💎 Channel: @DevelopixJavascript
👍15❤3
✅ جاوا اسکریپت همه جا کاربرد داره
⭕️ فرانت اند : میدونید که کلا همه چیز وب وابسته به js هست و کتابخونه هایی مثل react , vue , angular رو داره
⭕️ بک اند: به لطف node میتونیم js رو سمت سرور هم اجرا کنیم
⭕️ موبایل/دسکتاپ اپ: به کمک فریمورک electron میتونید برای موبایل و دسکتاپ اپ بسازید
⭕️ ماشین لرنینگ: با کتابخونه هایی مثل ml.js و tencorflow و... این کار رو هم انجام بدید
✳️ طبق آمار در سال 2023 جاوااسکریپت محبوب ترین زبان دنیا هست
👤 Matin soleymani
💎 Channel: @DevelopixJavascript
⭕️ فرانت اند : میدونید که کلا همه چیز وب وابسته به js هست و کتابخونه هایی مثل react , vue , angular رو داره
⭕️ بک اند: به لطف node میتونیم js رو سمت سرور هم اجرا کنیم
⭕️ موبایل/دسکتاپ اپ: به کمک فریمورک electron میتونید برای موبایل و دسکتاپ اپ بسازید
⭕️ ماشین لرنینگ: با کتابخونه هایی مثل ml.js و tencorflow و... این کار رو هم انجام بدید
✳️ طبق آمار در سال 2023 جاوااسکریپت محبوب ترین زبان دنیا هست
👤 Matin soleymani
💎 Channel: @DevelopixJavascript
👍27❤3🔥3👎1
فرض کنید چند آبجکت به این صورت دارید
اگه بخواید اینها رو به صورت عادی توی کنسول نمایش بدید از
نتیجه رو میتونید توی عکس بالا ببینید که چقدر مرتبتر و زیباتر اینها رو برامون نمایش میده.
👤 MHReza
💎 Channel: @DevelopixJavascript
const foo = { name: 'tom', age: 30, nervous: false }
const bar = { name: 'ahmad', age: 18, nervous: true }
const baz = { name: 'reza', age: 50, nervous: false }اگه بخواید اینها رو به صورت عادی توی کنسول نمایش بدید از
console.log() استفاده میکنید. ولی برای قشنگتر نشون دادناین آبجکتها توی کنسول میتونید از متد console.table() استفاده کنید. برای مثال بیاید این آبجکتهای بالا رو با این متد نمایش بدیم.console.table([foo, bar, baz]);
نتیجه رو میتونید توی عکس بالا ببینید که چقدر مرتبتر و زیباتر اینها رو برامون نمایش میده.
👤 MHReza
💎 Channel: @DevelopixJavascript
👍25🔥10❤5
Forwarded from | Codilo |
🍉 یلدای امسال رو کُدیلویی بگذرونید!
🍓 تا پایان روز جمعه با دعوت دو کاربر جدید به کدیلو، فایل های کدیلو رو رایگان دریافت کنید
🥝 یلدای خوبی داشته باشید (:
💎 @Codilo
🍓 تا پایان روز جمعه با دعوت دو کاربر جدید به کدیلو، فایل های کدیلو رو رایگان دریافت کنید
🥝 یلدای خوبی داشته باشید (:
💎 @Codilo
❤6👍1🔥1
در جاوااسکریپت، توابع (functions) یک بخش اساسی از زبان هستند و میتوانند به عنوان مجموعهای از دستورات باشند که یک وظیفه خاص را انجام میدهند. توابع میتوانند به صورت ناشناخته (anonymous) یا با نام (named) تعریف شوند.
توابع ناشناخته (anonymous functions) بدون نام هستند و معمولاً به عنوان آرگومان یا مقدار یک متغیر استفاده میشوند. این توابع معمولاً در مواقعی که نیاز به یک وظیفه یا پاسخگویی خاص دارید، به کار میروند.
مثال:
// تعریف یک تابع ناشناخته (anonymous function)
var addNumbers = function(x, y) {
return x + y;
};
// فراخوانی تابع ناشناخته
var result = addNumbers(5, 10);
console.log(result); // خروجی: 15
مثال ES6:
const addNumbers = (x , y)=>{
return x + y
}
console.log(addNumbers(11 , 24))در این مثال، تابع
addNumbers به صورت ناشناخته تعریف شده است. این تابع دو عدد را به عنوان ورودی دریافت کرده و جمع آنها را باز میگرداند. سپس با فراخوانی این تابع با مقادیر 5 و 10، نتیجه جمع به عنوان result ذخیره شده و در نهایت در کنسول چاپ میشود.💎 Channel: @DevelopixJavascript
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15