معرفی چند عملگر جاوا اسکریپتی که احتمالا از کاربرد اون بی خبری! ✌️
🔵 عملگر in
اولین عملگری که قراره بررسی کنیم عملگر in هست که با استفاده از این عملگر میتونیم بررسی کنیم که آیا یک key (همان نام خاصیت ها در آبجکت های ما) در شی ما وجود داره یا نه:
🔵 عملگر void
عملگر void کلیدواژهای هست که یک گزاره رو ارزیابی میکنه و در نهایت مقدار undefined و برگشت میده. به مثال زیر توجه کنید:
همونطور که میبینید متد لاگر باید مقدار 89 رو برگشت بده، اما کلیدواژه void اونو تهی میکنه و به جای مقدار اصلی، مقدار تعریف نشده بازگشت میده. عملگر void موقعی استفاده میشه که مطمئن بشیم یک مقدار تعریف نشده واقعی به دست میاریم.
🔵 عملگر delete
سادهترین روش برای حذف مقداری از آرایه، استفاده از کلیدواژه Delete هست. برای این کار فقط به نام متغیر و ایندکسی که میخواید پاک کنید، نیاز دارید:
البته در زمان استفاده از این روش باید مراقب باشید، زیرا گرچه این متد ساده به نظر میاد، اما در اغلب موارد موجب بروز سردرگمی میشه.
#operators #javascript
@CodeModule
اولین عملگری که قراره بررسی کنیم عملگر in هست که با استفاده از این عملگر میتونیم بررسی کنیم که آیا یک key (همان نام خاصیت ها در آبجکت های ما) در شی ما وجود داره یا نه:
const obj = {
name: ″shahin″
id: 1
}
if (″name″ in obj) {
console.log(″name is exist″)
}
عملگر void کلیدواژهای هست که یک گزاره رو ارزیابی میکنه و در نهایت مقدار undefined و برگشت میده. به مثال زیر توجه کنید:
logger() {
return 89
}
}
const d = new D
log(void d.logger()) // unde
همونطور که میبینید متد لاگر باید مقدار 89 رو برگشت بده، اما کلیدواژه void اونو تهی میکنه و به جای مقدار اصلی، مقدار تعریف نشده بازگشت میده. عملگر void موقعی استفاده میشه که مطمئن بشیم یک مقدار تعریف نشده واقعی به دست میاریم.
سادهترین روش برای حذف مقداری از آرایه، استفاده از کلیدواژه Delete هست. برای این کار فقط به نام متغیر و ایندکسی که میخواید پاک کنید، نیاز دارید:
let numbers = [1,2,3,4];
delete numbers[1];
console.log(numbers); // [1, undefined, 3, 4]
البته در زمان استفاده از این روش باید مراقب باشید، زیرا گرچه این متد ساده به نظر میاد، اما در اغلب موارد موجب بروز سردرگمی میشه.
#operators #javascript
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡4🔥3👌3
۷۰ سوال مصاحبه ای جاوا اسکریپت و میتونید تو pdf زیر مشاهده کنید⬇️
https://lnkd.in/eHEaJtH6
#javascript
@CodeModule
https://lnkd.in/eHEaJtH6
#javascript
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤🔥2👌2
آشنایی با weakSet و weakMap در ✌️
در جاوا اسکریپ دو تا ساختمان داده ی دیگه به اسم های WeakMap و WeakSet وجود داره که مشابه Map و Set هستن، با این تفاوت که تنها Object و آرایه و Non-Registered Symbol ها رو به عنوان Key قبول می کنند، اینجوری وقتی که Key مقدار Null بگیره از طریف WeakMap یا WeakSet هم قابل دسترسی نخواهد بود و Garbage-Collector محتوای اون رو از حافظه پاک میکنه.
مثالی از WeakMap:
مثالی از WeakSet:
در کل توی پروژه های بزرگ که بهینه سازی در حد چند خط هم مهمه از این دو ساختار استفاده میشه.
مثال و اطلاعات بیشتر و میتونید تو داکیومنت زیر مطالعه کنید⬇️
Document🌐
#javascript #weakset #weakmap
@CodeModule
در جاوا اسکریپ دو تا ساختمان داده ی دیگه به اسم های WeakMap و WeakSet وجود داره که مشابه Map و Set هستن، با این تفاوت که تنها Object و آرایه و Non-Registered Symbol ها رو به عنوان Key قبول می کنند، اینجوری وقتی که Key مقدار Null بگیره از طریف WeakMap یا WeakSet هم قابل دسترسی نخواهد بود و Garbage-Collector محتوای اون رو از حافظه پاک میکنه.
مثالی از WeakMap:
let weakMap = new WeakMap();
let key1 = {id: 1};
let key2 = {id: 2};
let key3 = {id: 3};
weakMap.set(key1, "Value associated with key1");
weakMap.set(key2, "Value associated with key2");
console.log(weakMap.get(key1)); // Output: Value associated with key1
key1 = null; // حذف مرجع key1
// حالا حافظه رو بررسی کنید، ممکنه مقدار مرتبط با key1 حذف بشه چون دیگه هیچ مرجعی بهش اشاره نمیکنه
مثالی از WeakSet:
let weakSet = new WeakSet();
let obj1 = {name: "Alice"};
let obj2 = {name: "Bob"};
let obj3 = {name: "Charlie"};
weakSet.add(obj1);
weakSet.add(obj2);
console.log(weakSet.has(obj1)); // Output: true
obj1 = null; // حذف مرجع obj1
// حالا حافظه رو بررسی کنید، ممکنه obj1 از WeakSet حذف بشه چون دیگه هیچ مرجعی بهش اشاره نمیکنه
در کل توی پروژه های بزرگ که بهینه سازی در حد چند خط هم مهمه از این دو ساختار استفاده میشه.
مثال و اطلاعات بیشتر و میتونید تو داکیومنت زیر مطالعه کنید
Document
#javascript #weakset #weakmap
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👌2
بررسی برخی فیچر های جدید جاوا اسکریپت (ES14) ✌️
اکما اسکریپت ۱۴ موجی از ویژگیهای هیجانانگیز و در سال ۲۰۲۳ به نمایش گذاشت تا تجربهی بهتری از برنامه نویسی با جاوا اسکریپت داشته باشید.
تو این پست برخی از متد های جدیدی که به جاوااسکریپت اضافه شده رو بررسی میکنیم.
1⃣ متد findLast
این متد در پروتوتایپ تمامی آرایه ها قابل دسترسی هست (به عنوان مثال Array.prototype.findLast) و به طور مشابه به متد find عمل میکنه و برای یافتن یک عضو در آرایه استفاده میشه. با این تفاوت که جستجو رو از انتهای آرایه شروع میکنه.
2⃣ متد toSorted
این متد نیز مشابه متد sort هست. این دو متد برای مرتبسازی اعضای یک آرایه استفاده میشن، با این تفاوت که متد toSorted آرایه اصلی و تغییر نمیده و خروجی اون یک آرایه جدید از اعضای مرتبشده هست.
3⃣ متد toReversed
این متد نیز مشابه متد reverse عمل میکنه که برای معکوس کردن اعضای یک آرایه استفاده میشود، با این تفاوت که متد toReversed آرایهٔ اصلی و تغییر نمیده، بلکه خروجی اون یک آرایه جدید از اعضای معکوس شده هست.
4⃣ متد with
این متد به ما اجازه میده که یک عضو از آرایه رو با یک مقدار دیگه جایگزین کنیم، بدون اینکه آرایه اصلی و تغییر بدیم. این متد دو ورودی میگیره: ورودی اول که شماره ایندکس مورد نظر برای جایگزینی هست، و ورودی دوم مقدار جدید مورد نظر هست.
5⃣ متد groupBy
با استفاده از متد groupBy، میتونیم اعضای یک آرایه رو بر اساس یک ویژگی مشترک بین آنها گروهبندی کنیم. نکتهای که دربارهی groupBy وجود داره اینه که بر خلاف متدهای بالا، این متد به صورت استاتیک در دسترس، و مستقیماً از شیء Object Global قابل دسترسی هست.
#javascript #es14
@CodeModule
اکما اسکریپت ۱۴ موجی از ویژگیهای هیجانانگیز و در سال ۲۰۲۳ به نمایش گذاشت تا تجربهی بهتری از برنامه نویسی با جاوا اسکریپت داشته باشید.
تو این پست برخی از متد های جدیدی که به جاوااسکریپت اضافه شده رو بررسی میکنیم.
این متد در پروتوتایپ تمامی آرایه ها قابل دسترسی هست (به عنوان مثال Array.prototype.findLast) و به طور مشابه به متد find عمل میکنه و برای یافتن یک عضو در آرایه استفاده میشه. با این تفاوت که جستجو رو از انتهای آرایه شروع میکنه.
const array1 = [5, 12, 50, 100, 44];const found = array1.findLast((element) => element > 45);
console.log(found);//Output: 100
این متد نیز مشابه متد sort هست. این دو متد برای مرتبسازی اعضای یک آرایه استفاده میشن، با این تفاوت که متد toSorted آرایه اصلی و تغییر نمیده و خروجی اون یک آرایه جدید از اعضای مرتبشده هست.
const sortedNumbers = numbers.toSorted((a, b) => a - b)
console.log(sortedNumbers) // Output: [1, 2, 3, 4, 5]
// common mistake using numbers
const nums2 = [0, 15, 5, 10, 20]
const sortedNums2 = nums2.toSorted()
console.log(sortedNums2) // Output: [0, 10, 15, 20, 5]
این متد نیز مشابه متد reverse عمل میکنه که برای معکوس کردن اعضای یک آرایه استفاده میشود، با این تفاوت که متد toReversed آرایهٔ اصلی و تغییر نمیده، بلکه خروجی اون یک آرایه جدید از اعضای معکوس شده هست.
const originalArray = [1, 2, 3, 4, 5];
// toReversed
const newArray = originalArray.toReversed();
console.log(originalArray); // Output: [1, 2, 3, 4, 5] the array is unmodified
console.log(newArray); // Output:[5, 4, 3, 2, 1]
این متد به ما اجازه میده که یک عضو از آرایه رو با یک مقدار دیگه جایگزین کنیم، بدون اینکه آرایه اصلی و تغییر بدیم. این متد دو ورودی میگیره: ورودی اول که شماره ایندکس مورد نظر برای جایگزینی هست، و ورودی دوم مقدار جدید مورد نظر هست.
const numbers = [1, 2, 9999, 4];
const result = numbers.with(2, 3);
console.log(result); // [1, 2, 3, 4]
با استفاده از متد groupBy، میتونیم اعضای یک آرایه رو بر اساس یک ویژگی مشترک بین آنها گروهبندی کنیم. نکتهای که دربارهی groupBy وجود داره اینه که بر خلاف متدهای بالا، این متد به صورت استاتیک در دسترس، و مستقیماً از شیء Object Global قابل دسترسی هست.
const inventory = [
{ name: "asparagus", type: "vegetables", quantity: 5 },
{ name: "bananas", type: "fruit", quantity: 0 },
{ name: "goat", type: "meat", quantity: 23 },
]
function myCallback({ quantity }) {
return quantity > 5 ? "ok" : "restock"
}
const result2 = Object.groupBy(inventory, myCallback);
#javascript #es14
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5⚡3❤🔥2👌2
آقای صدا، Howler.js 🔊
کتابخانه Howler.js، یک کتابخانه صدا هست که کار کردن با صدا رو در JavaScript و در تمام پلتفرمها، ساده و قابل اطمینان میکنه.
این کتابخانه به شما در مواردی مثل پخش صدا و اضافه کردن افکت های صوتی به وب سایت، کمک میکنه. به عنوان مثال پخش صدا زمانی که شما یک پیغام خطا یا یک پیام دیگر رو دریافت میکنید. این قابلیت ها خیلی راحت و با چند خط کد توسط howler در اختیار ما قرار میگیره. حتی میتونید با استفاده از این کتابخانه یک پلیر موزیک هم داشته باشید💀
ویژگی های کتابخانه Howler.js⬇️
🔵 پشتیبانی از پخش صداهای مختلف مثل MP3، WAV و OGG
🔵 امکان به کار گیری بسیار ساده برای پخش، توقف، توقف موقت و مکث از طریق رابط کاربری خط فرمان
🔵 پشتیبانی از قابلیتهای پیشرفته مثل استفاده از صداها به صورت پویا، تنظیم میزان صدا و موقعیت در صدا، اعمال افکتهای صوتی و زمانبندی دقیق
🔵 معماری ماژولار Howler.js به شما کمک میکنه تا به سادگی از این کتابخانه استفاده، و اونو گسترش بدید، در نتیجه میتونید امکانات سفارشی بیشتری اضافه کنید.
پیشنهاد میکنم یه سر به داکیومنت این کتابخانه جذاب بزنید⚡️
Document🌐
#howler #javascript
@CodeModule
کتابخانه Howler.js، یک کتابخانه صدا هست که کار کردن با صدا رو در JavaScript و در تمام پلتفرمها، ساده و قابل اطمینان میکنه.
این کتابخانه به شما در مواردی مثل پخش صدا و اضافه کردن افکت های صوتی به وب سایت، کمک میکنه. به عنوان مثال پخش صدا زمانی که شما یک پیغام خطا یا یک پیام دیگر رو دریافت میکنید. این قابلیت ها خیلی راحت و با چند خط کد توسط howler در اختیار ما قرار میگیره. حتی میتونید با استفاده از این کتابخانه یک پلیر موزیک هم داشته باشید
ویژگی های کتابخانه Howler.js
پیشنهاد میکنم یه سر به داکیومنت این کتابخانه جذاب بزنید
Document
#howler #javascript
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥10👌5🔥4😁2