✍️ مقاله آموزشی
•
زمان مطالعه: 7 دقیقه
بررسی ویژگیهای جدید JavaScript ES2026
انتشار: 2026/09/21
•
نویسنده: آکادمی آئینی
بررسی ویژگیهای جدید JavaScript ES2026
استاندارد جدید زبان جاوااسکریپت (ECMAScript 2026 / ES2026) ویژگیهای کاربردی و مهمی را به این زبان اضافه کرده است. تمرکز این نسخه بیشتر روی حذف پکیجها و متدهای جانبی، بهینهسازی کار با پروژههای ناهمگام (Async)، دقیقتر شدن محاسبات ریاضی و آسانتر شدن کار با گروهبندی دادهها بوده است.
در این مقاله جامع از آکادمی آئینی، مهمترین ویژگیهای جدید اضافه شده به ES2026 را همراه با نمونه کدهای کاربردی بررسی میکنیم.
---
۱. متد Array.fromAsync
پیش از این، ساخت آرایه از ورودیهای ناهمگام (Async Iterables) نیازمند حلقههای for await...of بود. اکنون با متد Array.fromAsync میتوانید دیپلوئیدها یا منابعی که Promise برمیگردانند را به راحتی و در یک سطر کد به آرایه تبدیل کنید.
```javascript
const asyncIterable = (async function () {
yield 1;
yield 2;
})();
const result = await Array.fromAsync(asyncIterable);
console.log(result); // [1, 2]
```
---
۲. متد جدید Map.prototype.getOrInsert
یکی از کاربردیترین متدهای اضافه شده برای ساختارهای داده، متد getOrInsert است. دیگر نیازی به چک کردن تکراری وجود کلید در Map با متد has و سپس اعمال set نیست. این متد در صورت عدم وجود کلید، مقدار پیشفرض را درج و همان را برمیگرداند.
```javascript
const map = new Map();
const user = map.getOrInsert('username', 'Guest');
console.log(user); // 'Guest'
```
---
۳. متدهای رمزنگاری Base64 و Hex در Uint8Array
برای تبدیل دادههای بایت به فرمتهای Hex و Base64 در مرورگر و Node.js، دیگر نیازی به استفاده از کتابخانههای جانبی مانند Buffer یا توابع تبدیل دستی نیست و این امکان بهصورت نیتیو اضافه شده است.
```javascript
const bytes = new Uint8Array([72, 101, 108, 108, 111]);
const base64 = bytes.toBase64(); // "SGVsbG8="
const hex = bytes.toHex(); // "48656c6c6f"
```
---
۴. متد محاسبه دقیق Math.sumPrecise
جمع اعداد اعشاری در جاوااسکریپت همواره به دلیل خطاهای پردازش اعداد ممیز شناور (Floating-point) مشکلساز بود. متد Math.sumPrecise محاسبات ریاضی را بدون افت دقت انجام میدهد.
```javascript
const numbers = [1e17, 1, -1e17];
console.log(Math.sumPrecise(numbers)); // 1 (دقیق)
```
---
۵. تشخیص دقیقتر خطاها با Error.isError
تشخیص اینکه یک شیء واقعاً یک خطای واقعی است یا خیر، هنگام گذر از محیطهای مختلف (مانند iframeها) با روشهای قدیمی دچار مشکل میشد. تابع استاتیک Error.isError به طور دقیق ساختار Error را اعتبارسنجی میکند.
```javascript
try {
throw new TypeError("Invalid Operation");
} catch (err) {
if (Error.isError(err)) {
console.log("خطایی رخ داده است!");
}
}
```
---
۶. ترکیب دنبالهها با Iterator.concat
زنجیرهسازی چرخندهها (Iterators) به صورت ترتیبی و بدون ساخت آرایههای واسط یا ساخت تابعهای متوالی سادهتر شده است.
```javascript
const it1 = [1, 2].values();
const it2 = [3, 4].values();
const combined = Iterator.concat(it1, it2);
console.log([...combined]); // [1, 2, 3, 4]
```
---
جمعبندی
ویژگیهای اضافه شده به ES2026 نشاندهنده بلوغ روزافزون جاوااسکریپت در جهت بینیاز کردن توسعهدهندگان از کتابخانههای جانبی است. تسلط بر این قابلیتهای جدید باعث افزایش سرعت کدنویسی، بهبود پرفورمنس برنامهها و تمیزتر شدن کدهای پروژههای شما خواهد شد.