اسرار جاوا اسکریپت رونمایی شد: 10 سنگ مخفی برتر با نمونه کد

1. قدرت تخریب ساختار:
تخصیص ساختارشکنی راهی مختصر برای استخراج مقادیر از آرایه ها یا اشیا فراهم می کند. بیایید قدرت های پنهان آن، مانند تعویض متغیرها، استخراج مقادیر تو در تو، و تنظیم مقادیر پیش فرض را بررسی کنیم.
// Swapping variables
let a = 1;
let b = 2;
[a, b] = [b, a];
// Extracting nested values
const person = { name: 'John Doe', age: 25, address: { city: 'New York' } };
const { name, address: { city } } = person;
// Setting default values
const { phoneNumber="N/A" } = person;
2. آزادسازی پتانسیل اپراتور گسترش:
عملگر spread به شما امکان می دهد عناصر یک تکرارپذیر را در زمینه های مختلف پخش کنید. قدرت های پنهان آن مانند الحاق آرایه ها، ادغام اشیا و دستکاری آرگومان تابع را کشف کنید.
// Array concatenation
const array1 = [1, 2, 3];
const array2 = [4, 5, 6];
const mergedArray = [...array1, ...array2];
// Object merging
const obj1 = { a: 1, b: 2 };
const obj2 = { c: 3, d: 4 };
const mergedObject = { ...obj1, ...obj2 };
// Function argument manipulation
const myFunction = (param1, param2, ...rest) => {
// ...
};
3. تسلط بر توابع درجه بالاتر:
توابع درجه بالاتر مانند map()، filter() و reduce() قابلیت های برنامه نویسی عملکردی قدرتمندی را ارائه می دهند. قدرتهای پنهان آنها را کشف کنید، از جمله تبدیل دادهها، فیلتر کردن آرایهها و محاسبه مقادیر انبوه.
// Transforming data with map()
const numbers = [1, 2, 3, 4, 5];
const squaredNumbers = numbers.map((num) => num ** 2);
// Filtering arrays with filter()
const evenNumbers = numbers.filter((num) => num % 2 === 0);
// Calculating aggregated values with reduce()
const sum = numbers.reduce((acc, num) => acc + num, 0);
4. جاوا اسکریپت ناهمزمان با وعده:
Promises روشی زیبا برای مدیریت عملیات ناهمزمان ارائه می دهد. قدرت های پنهان آنها، از جمله عملیات زنجیره ای، اجرای موازی و مدیریت خطا را کشف کنید.
// Chaining operations
fetchData()
.then(processData)
.then(displayResult)
.catch(handleError);
// Parallel execution with Promise.all()
const promises = [promise1, promise2, promise3];
Promise.all(promises)
.then((results) => {
// Process the results
// ...
})
.catch(handleError);
5. جادوی توابع ژنراتور:
توابع ژنراتور جریان کنترل تکراری و ارزیابی تنبل را امکان پذیر می کند. قدرتهای پنهان آنها را کشف کنید، از جمله توالیهای بینهایت، تکرار غیر همگام، و چندوظیفهای مشترک.
// Infinite sequences
function* infiniteSequence() {
let num = 1;
while (true) {
yield num++;
}
}
// Async iteration
async function* asyncGenerator() {
// ...
}
for await (const value of asyncGenerator()) {
// ...
}
6. Supercharging عبارات منظم:
عبارات منظم قابلیت تطبیق الگوی قدرتمندی را ارائه می دهند. قدرتهای پنهان آنها از جمله پیشبینیها، گرفتن گروهها و اصلاحکنندههای پیشرفته را کشف کنید.
// Lookaheads
const positiveLookahead = /John(?= Doe)/;
const negativeLookahead = /John(?! Doe)/;
// Capturing groups
const regex = /(\d{2})-(\d{2})-(\d{4})/;
const [_, day, month, year] = regex.exec('15-06-2023');
// Advanced modifiers
const globalMatch = /pattern/g;
const caseInsensitiveMatch = /pattern/i;
7. کشف رمز و راز یادداشت:
یادداشت کردن تکنیکی است که نتایج عملکرد را برای بهبود عملکرد ذخیره می کند. قدرت های پنهان آن، از جمله ذخیره عملیات گران قیمت و بهینه سازی توابع بازگشتی را کشف کنید.
// Caching expensive operations
const memoizedFunction = memoize(expensiveOperation);
// Optimizing recursive functions
function fibonacci(n, memo = {}) {
if (n <= 1) return n;
if (memo[n]) return memo[n];
memo[n] = fibonacci(n - 1, memo) + fibonacci(n - 2, memo);
return memo[n];
}
8. ساده سازی تاریخ و زمان دستکاری با Luxon:
Luxon یک کتابخانه قدرتمند برای کار با تاریخ و زمان در جاوا اسکریپت است. قدرت های پنهان آن، از جمله قالب بندی تاریخ، تجزیه، مدیریت منطقه زمانی، و محاسبات زمان نسبی را کشف کنید.
// Date formatting
const now = DateTime.now();
const formattedDate = now.toFormat('yyyy-MM-dd');
// Parsing dates
const parsedDate = DateTime.fromISO('2023-06-15');
// Timezone handling
const localTime = now.setZone('local');
const newYorkTime = now.setZone('America/New_York');
// Relative time calculations
const diff = DateTime.fromISO('2023-06-15').diffNow().toObject();
const { days, hours, minutes } = diff;
9. کاوش در فضای ذخیره سازی وب:
Web Storage به شما امکان می دهد داده ها را به صورت محلی در مرورگر ذخیره کنید. قدرت های پنهان آن، از جمله ذخیره و بازیابی داده ها، رسیدگی به انقضا، و ردیابی رویدادهای ذخیره سازی را کشف کنید.
// Storing and retrieving data
localStorage.setItem('key', 'value');
const storedValue = localStorage.getItem('key');
// Handling expiration
localStorage.setItem('key', JSON.stringify({ value, expires: Date.now() + 3600 }));
const storedObject = JSON.parse(localStorage.getItem('key'));
if (storedObject.expires < Date.now()) {
localStorage.removeItem('key');
}
// Tracking storage events
window.addEventListener('storage', (event) => {
// Handle storage events
});
10. ساخت برنامه های وب پاسخگو با ResizeObserver:
ResizeObserver یک API مدرن است که به شما امکان می دهد تغییرات اندازه عناصر را مشاهده کنید. قدرتهای پنهان آن، از جمله طراحی واکنشگرا، بارگذاری تنبل، و تنظیمات طرحبندی پویا را کشف کنید.
// Observing element size changes
const observer = new ResizeObserver((entries) => {
for (const entry of entries) {
// Handle size changes
}
});
observer.observe(element);
جاوا اسکریپت زبانی است که ما را با اسرار پنهان و ویژگی های کمتر شناخته شده خود شگفت زده می کند. با کاوش در این 10 راز برتر جاوا اسکریپت، جعبه ابزار خود را گسترش داده اید و بینش هایی در مورد بهینه سازی کد خود، بهبود عملکرد و ساخت برنامه های کاربردی پیچیده تر به دست آورده اید. این جواهرات پنهان را در آغوش بگیرید، با آنها آزمایش کنید و به کاوش در اعماق جاوا اسکریپت ادامه دهید تا به یک توسعه دهنده بهتر تبدیل شوید. کد نویسی مبارک!
نویسنده: Hakimov-dev