2024 (2024)
این صفحه مرور «ویژگی های جاوااسکریپت 2024» است. منظور از ویژگی، قانون تازه زبان است. خیلی ساده و مدرسه ای جلو می رویم و با مثال تمرین می کنیم.
ویژگی های جاوااسکریپت 2024 (Focus: ویژگی های جاوااسکریپت 2024)
مهم ترین ها: Object.groupBy()، Map.groupBy()، String.isWellFormed()، String.toWellFormed(). همچنین Promise.withResolvers() و Atomics.waitAsync معرفی شده اند.
هشدار: این قابلیت ها تازه اند؛ شاید برای مرورگرهای قدیمی «پُلیفیل (Polyfill)» لازم باشد؛ یعنی کد جایگزین سازگار.
Object.groupBy()
«گروه بندی» یعنی دسته بندی بر اساس نتیجه یک تابع. Object.groupBy() آرایه ای از آیتم ها را به شیء دسته بندی شده تبدیل می کند.
// Create an Array
const fruits = [
{ name: "apples", quantity: 300 },
{ name: "bananas", quantity: 500 },
{ name: "oranges", quantity: 200 },
{ name: "kiwi", quantity: 150 }
];
// Callback function to Group Elements
function myCallback({ quantity }) {
return quantity > 200 ? "ok" : "low";
}
// Group by Quantity
const result = Object.groupBy(fruits, myCallback);
نکته: شیء جدید ساخته می شود و شیء اصلی تغییر نمی کند.
Map.groupBy()
کار مشابه، اما خروجی «مپ (Map)» است؛ مپ یک ساختار کلید-مقدار با ترتیب درج است.
// Create a Map (from an Array of objects)
const fruits = [
{ name: "apples", quantity: 300 },
{ name: "bananas", quantity: 500 },
{ name: "oranges", quantity: 200 },
{ name: "kiwi", quantity: 150 }
];
// Callback function to Group Elements
function myCallback({ quantity }) {
return quantity > 200 ? "ok" : "low";
}
// Group by Quantity
const result = Map.groupBy(fruits, myCallback);
نکته: Object.groupBy() → خروجی شیء. Map.groupBy() → خروجی مپ.
String.isWellFormed()
«Well-Formed» یعنی رشته درستِ یونیکد. «Lone Surrogate» یعنی نیم کد ناقص در UTF-16. این متد درستی را چک می کند.
let text = "Hello world!";
let result = text.isWellFormed();
let text = "Hello World \uD800";
let result = text.isWellFormed();
نکته: اگر false بود، یعنی کاراکتر ناقص داریم و باید اصلاح کنیم.
String.toWellFormed()
این متد رشته مشکل دار را «ترمیم» می کند؛ جایگزینش U+FFFD است؛ یعنی کاراکتر جایگزین.
let text = "Hello World \uD800";
let result = text.toWellFormed();
گام های تمرین سریع
- یک آرایه نمونه بساز و
groupByرا اجرا کن. - یک رشته مشکل دار بساز و وضعیتش را چک کن.
- با
toWellFormed()رشته را اصلاح کن.
جمع بندی سریع
Object.groupByخروجی شیء می دهد.Map.groupByخروجی مپ می دهد.isWellFormedدرستی یونیکد را می سنجد.toWellFormedرشته بدفرم را ترمیم می کند.
برای ادامه نسخه ها، به 2025 برو. همچنین صفحه نسخه ها دید کلی خوبی می دهد.