| کانال توسعهدهندگان جاوااسکریپت |
الذهاب إلى القناة على Telegram
⭕️ کانال توسعهدهندگان جاوااسکریپت دولوپیکس 💠 دولوپیکس | جامعه توسعهدهندگان ایرانی 💎 @Developix 🚀 Developix.ir 📌 پشتیبانی و تبلیغات: @DevelopixSupport
إظهار المزيد3 835
المشتركون
+224 ساعات
-137 أيام
-2930 أيام
أرشيف المشاركات
❓ توابع و توابع ناشناخته (anonymous functions)
در جاوااسکریپت، توابع (functions) یک بخش اساسی از زبان هستند و میتوانند به عنوان مجموعهای از دستورات باشند که یک وظیفه خاص را انجام میدهند. توابع میتوانند به صورت ناشناخته (anonymous) یا با نام (named) تعریف شوند.
توابع ناشناخته (anonymous functions) بدون نام هستند و معمولاً به عنوان آرگومان یا مقدار یک متغیر استفاده میشوند. این توابع معمولاً در مواقعی که نیاز به یک وظیفه یا پاسخگویی خاص دارید، به کار میروند.
مثال:
// تعریف یک تابع ناشناخته (anonymous function)
var addNumbers = function(x, y) {
return x + y;
};
// فراخوانی تابع ناشناخته
var result = addNumbers(5, 10);
console.log(result); // خروجی: 15
در این مثال، تابع addNumbers به صورت ناشناخته تعریف شده است. این تابع دو عدد را به عنوان ورودی دریافت کرده و جمع آنها را باز میگرداند. سپس با فراخوانی این تابع با مقادیر 5 و 10، نتیجه جمع به عنوان result ذخیره شده و در نهایت در کنسول چاپ میشود.
💎 Channel: @DevelopixJavascriptRepost from | Codilo |
🍉 یلدای امسال رو کُدیلویی بگذرونید!
🍓 تا پایان روز جمعه با دعوت دو کاربر جدید به کدیلو، فایل های کدیلو رو رایگان دریافت کنید
🥝 یلدای خوبی داشته باشید (:
💎 @Codilo
فرض کنید چند آبجکت به این صورت دارید
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✅ جاوا اسکریپت همه جا کاربرد داره
⭕️ فرانت اند : میدونید که کلا همه چیز وب وابسته به js هست و کتابخونه هایی مثل react , vue , angular رو داره
⭕️ بک اند: به لطف node میتونیم js رو سمت سرور هم اجرا کنیم
⭕️ موبایل/دسکتاپ اپ: به کمک فریمورک electron میتونید برای موبایل و دسکتاپ اپ بسازید
⭕️ ماشین لرنینگ: با کتابخونه هایی مثل ml.js و tencorflow و... این کار رو هم انجام بدید
✳️ طبق آمار در سال 2023 جاوااسکریپت محبوب ترین زبان دنیا هست
👤 Matin soleymani
💎 Channel: @DevelopixJavascript
#سوال ✨
خروجی به چه صورت هست⁉️
👤 MHReza
💎 Channel: @DevelopixJavascript
🔹 شاید براتون سوال شده باشه که پس فرق in و متد hasOwnProperty چی هست. عملگر in علاوه بر اینکه بررسی میکنه پراپرتی یا متد مورد نظر داخل آبجکت وجود داره، این رو هم بررسی میکنه که آیا پراپرتیای که دنبالش میگردیم توی پروتوتایپ اون آبجکت هم وجود داره یا نه.
ولی متد hasOwnProperty فقط دنبال پراپرتی یا متد داخل آبجکت میگرده و دیگه کاری به پروتوتایپ اون ابجکت نداره.
🔸 توی مثال بالا هم میتونید متوجه این موضوع بشید.
👤 MHReza
💎 Channel: @DevelopixJavascript
🔸 در جاوااسکریپت یک عملگر پیچیده به نام «in» وجود داره که بعضی از افراد به اشتباه فکر میکنن که بر اساس مقداری که داخل یک آبجکت یا آرایه و ... وجود داره بررسی میکنه و فکر میکنند که خروجی اشتباهی رو گرفتن. داخل این پست بیاید با چند مثال یه نگاهی بهش داشته باشیم.
🔹عملگر in اگر پراپرتی مورد نظر داخل شئ مورد نظر وجود داشته باشه، به ما true برمیگردونه.
🔸 داخل مثال اول میبینید که ایندکس 1 و 2 داخل آرایمون وجود داره و برای همین به ما true رو برگردونده ولی ایندکس 3 رو پیدا نکرده و false برگردونده.
🔹 دومین مثالمون یه object هست. مشخصا ما پراپرتی name رو داریم توی آبجکتمون و به ما true برمیگردونه ولی وقتی اون رو حذف میکنیم مشخصا دیگه توی آبجکتمون نداریمش و false رو به ما برمیگردونه.
حالا اگه ما مقدار یه پراپرتی رو عوض کنیم چی؟ باز هم تغییری نمیکنه چون فقط به دنبال خود پراپرتی میگرده نه مقدارش
🔸 توی مثال سوم هم میبینید که ما ایندکس صفر رو داریم توی آرایمون و بهمون true رو برمیگردونه. ولی وقتی دنبال کلمه ali میگردیم بهمون false برمیگردونه چون هیچ کلیدی به نام ali توی آرایمون نداریم.
👤 MHReza
💎 Channel: @DevelopixJavascript
🌀 معرفی Hoisting 🌀
🔸 توی پست قبل کمی در مورد Hoisting صحبت کردیم اما تو این پست میخوام یه توضیح کاملی در موردش بدم که ببینیم چی هست و چیکار میکنه.
🔹 جاوااسکریپت وقتی کد ما رو دریافت میکنه اولین کاری که میکنه راهاندازی حافظه هستش. میاد و متغیرها و توابعمون رو ذخیره میکنه. ولی خب ذخیره این دوتا کمی متفاوته که در ادامه توضیح میدم.
🔸جاوااسکریپت توابع رو به صورت کامل و با آدرسدهی کل تابع میاد و ذخیره میکنه.
🔹 اما در مورد متغیرها این مسئله متفاوته، متغیرهایی که با کلمه کلیدی var تعریف میشوند رو با مقدار undefined ذخیره میکنه و زمان اجرای کد وقتی به جایی که اون رو تعریف کردید میرسه، مقدارش رو بازنویسی میکنه. احتمالاً قبلا با این مسئله روبرو شدید که قبل از تعریف کردن var میخواستید که به مقدارش دسترسی داشته باشید ولی بهتون undefined میداده، دلیلش همینه.
🔸 اما در es6 دو تعریف جدید برای متغیرها معرفی شد که let و const بودن. جاوااسکریپت این متغیرها رو توی همون مرحله راهاندازی حافظه به صورت uninitialized ذخیره میکنه. برای جلوگیری از مشکلات، زمانی که بخواهید قبل از تعریف شدن به متغیرهایی که با let و const تعریف شدن دسترسی پیدا کنید ارور RefrenceError میگیرید. به همین دلیل هم بود که توی کوییز قبلی ما موقعی که میخواستیم به تابع writeHello دسترسی داشته باشیم ارور RefrenceError رو میگرفتیم.
👤 MHReza
💎 Channel: @DevelopixJavascript
🔸پاسخ این هست که ابتدا عبارت developix چاپ میشه ولی در خط بعدی ما ReferenceError میگیریم.
🔹دلیل این اتفاق هم این هست که ما در جاوااسکریپت ویژگیای داریم به نام Hoisting که همه تعاریف مربوط به متغیرها و توابع رو به بالای کدمون میبره (درواقع عملکردش به این صورت نیست ولی خب توی این پست نمیگنجه که کامل توضیح بدم پس بعداً توی یه پست دیگه کامل در موردش توضیح میدم.) و به همین دلیل هست که میتونیم به فانکشن sayDevelopix دسترسی داشته باشیم قبل از تعریف شدنش.
🔸ولی این قضیه کمی متفاوته در مورد arrow function ها که توضیح کامل رو توی پست بعد بهتون میدم ولی تا اینجا فقط بدونید که قبل از تعریف شدنشون نمیتونیم بهشون دسترسی داشته باشیم.
👤 MHReza
💎 Channel: @DevelopixJavascript
با اجرای این کد چه اتفاقی خواهد افتاد؟
دلیلش رو توضیح بدین.
#questions
👤 MHReza
💎 Channel: @DevelopixJavascript
🔸احتمالاً توی پروژتون نیاز به این داشتید که اعداد انگلیسی رو تبدیل به اعداد فارسی کنید.
🔹با تکه کد زیر میتونید این کار رو توی جاوااسکریپت انجام بدید.
const numberFormatter = new Intl.NumberFormat('fa');
console.log(numberFormatter.format('9'));
🔸فقط دقت کنید که خروجیای که بهتون برمیگردونه string هست و نمیتونید اون رو هم تبدیل به عدد بکنید.
#Tips
👤 MHReza
💎 Channel: @DevelopixJavascript
