ECMAScript 2026
জাভাস্ক্রিপ্ট 2026-এ নতুন বৈশিষ্ট্য
ECMAScript 2026 রিসোর্স ম্যানেজমেন্টের উন্নতি, অ্যাসিঙ্ক্রোনাস ক্রিয়াকলাপ পরিচালনা এবং ডেটা ম্যানিপুলেশনের উপর দৃষ্টি নিবদ্ধ করে বেশ কয়েকটি বৈশিষ্ট্য উপস্থাপন করে:
- নতুন জাভাস্ক্রিপ্ট তারিখ অবজেক্ট - টেম্পোরাল ডেট
- রিসোর্স ম্যানেজমেন্ট ব্যবহার করে এবং অপেক্ষা করার জন্য
- Error.isError()
- Array.fromAsync()
- Uint8Array-এর জন্য বেস64 এবং হেক্সাডেসিমেল এনকোডিং
- রেকর্ড এবং টুপলসের সাথে অপরিবর্তনীয়তা (পর্যায় 3 প্রস্তাব)।
- Pattern Matching (Stage 3 proposal)
সতর্কতা:
2026 সংস্করণটি এখনও প্রকাশিত হয়নি। এটি সাধারণত জুন মাসে মুক্তি পায়।
নভেম্বর 2025 পর্যন্ত, এটি খসড়ার বৈশিষ্ট্যগুলির একটি তালিকা যা ES2026-এ হতে পারে।
Temporal API
জাভাস্ক্রিট 2026-এ টেম্পোরাল API তারিখ এবং সময়ের সাথে কাজ করার জন্য স্ট্যান্ডার্ড অবজেক্ট এবং ফাংশন প্রদান করে।
ES2026 সাল থেকে, টেম্পোরাল API হল জাভাস্ক্রিপ্টে আধুনিক তারিখ এবং সময় ব্যবস্থাপনার জন্য আদর্শ, যা ঐতিহ্যগত তারিখ অবজেক্টকে প্রতিস্থাপন করার জন্য ডিজাইন করা হয়েছে।
তারিখের বিপরীতে, টেম্পোরাল বস্তুগুলি অপরিবর্তনীয় এবং সময় অঞ্চল এবং নন-গ্রেগরিয়ান ক্যালেন্ডারের জন্য প্রথম-শ্রেণীর সমর্থন প্রদান করে।
ব্যবহার করে সম্পদ ব্যবস্থাপনা
JavaScript 2026 স্বয়ংক্রিয়ভাবে সম্পদ (যেমন ফাইল হ্যান্ডেল বা ডাটাবেস সংযোগ) পরিচালনা করতে এবং সুযোগের বাইরে গেলে সেগুলিকে নিষ্পত্তি করার জন্য দুটি কীওয়ার্ড যুক্ত করেছে, স্পষ্টভাবে চেষ্টা করার প্রয়োজনীয়তা হ্রাস করে...অবশেষে ব্লক করে।
usingব্যাচ-ভিত্তিক ভেরিয়েবলের সঙ্গতি পরিমার্জন প্রদান করে।await usingনেটওয়ার্ক স্ট্রীমের মতো সংস্থানগুলির জন্য অ্যাসিঙ্ক্রোনাস প্রক্রিয়াকরণ সরবরাহ করে।
Error.isError() দিয়ে ত্রুটি সনাক্তকরণ
Error.isError()একটি মান একটি ত্রুটি বস্তু কিনা তা নির্ভরযোগ্যভাবে পরীক্ষা করার একটি আদর্শ পদ্ধতি, ত্রুটি পরিচালনা এবং ডিবাগিং উন্নত করা।
Array.fromAsync() সহ নতুন অ্যারে
Array.fromAsync()একটি বৈশিষ্ট্য যা ডেভেলপারদের অ্যাসিঙ্ক্রোনাস রিটার্নেবল, অ্যারের মতো বস্তু বা প্রতিশ্রুতি থেকে নতুন অ্যারে দৃষ্টান্ত তৈরি করতে দেয়, অ্যাসিঙ্ক্রোনাস উত্স থেকে ডেটা পরিচালনাকে মসৃণ করে।
ES2026 এ নতুন Uint8Array পদ্ধতি
Uint8Array-এর জন্য বেস64 এবং হেক্সাডেসিমেল এনকোডিং।
এই নতুন স্ট্যাটিক পদ্ধতিগুলি Uint8Array অবজেক্ট এবং Base64 বা হেক্সাডেসিমেল স্ট্রিংগুলির মধ্যে সরাসরি রূপান্তর যোগ করে বাইনারি ডেটার সাথে কাজ করা সহজ করে।
| পদ্ধতি | ব্যাখ্যা |
|---|---|
Uint8Array.fromBase64() |
একটি base64-এনকোডেড স্ট্রিং থেকে একটি Uint8Array অবজেক্ট তৈরি করে |
Uint8Array.toBase64() |
একটি int8Array-এ ডেটা থেকে একটি base64-এনকোডেড স্ট্রিং প্রদান করে |
Uint8Array.fromHex() |
একটি হেক্সাডেসিমেল স্ট্রিং থেকে একটি Uint8Array অবজেক্ট তৈরি করে |
Uint8Array.toHex() |
একটি int8Array-এ ডেটা থেকে একটি হেক্স-এনকোডেড স্ট্রিং ফেরত দেয় |
স্বচ্ছ সম্পদ ব্যবস্থাপনা
কীওয়ার্ড ব্যবহার করে
usingকীওয়ার্ড হল জাভাস্ক্রিপ্ট 2026-এর একটি সংযোজন। এটি সংস্থানগুলি পরিচালনা করার জন্য একটি প্রক্রিয়া প্রদান করে যার জন্য সুস্পষ্ট নিষ্পত্তি প্রয়োজন।
এটি একটি মডিউল-স্কোপড পরিবর্তনশীল ঘোষণা করে,constঅনুরূপ, কিন্তু ভিন্ন যে এটি ব্যবহৃত সম্পদের ডিসিঙ্ক্রোনাইজেশন গ্যারান্টি দেয় যখন ভেরিয়েবল সুযোগের বাইরে চলে যায়।
উদাহরণ
class MyResource {
constructor(name) {
this.name = name;
myDisplay(`Resource ${this.name} acquired.`);
}
[Symbol.dispose]() {
myDisplay(`Resource ${this.name} disposed.`);
}
}
function manageResource() {
using resource = new MyResource("Database Connection");
// Use the resource here
myDisplay(`Using resource: ${resource.name}`);
}
usingকীওয়ার্ডটি স্বয়ংক্রিয়ভাবে ক্লিনআপ প্রক্রিয়া পরিচালনা করে, রিসোর্স ফাঁসের ঝুঁকি হ্রাস করে এবং ম্যানুয়াল চেষ্টার তুলনায় কোড পঠনযোগ্যতা উন্নত করে সম্পদ ব্যবস্থাপনাকে সহজ করে... অবশেষে ব্লক করে।
সম্পদ ব্যবস্থাপনা:
usingSymbol.dispose , .- ডিসিক্রোনাইজেশন:
usingযখন ঘোষিত একটি ভেরিয়েবল তার সুযোগ থেকে বেরিয়ে আসে (একটি ব্লক বা ফাংশনের শেষে), তখন এর Symbol.dispose পদ্ধতি স্বয়ংক্রিয়ভাবে বলা হয়। - অ্যাসিঙ্ক্রোনাস অপসারণ:অ্যাসিঙ্ক্রোনাস ক্লিনআপ প্রয়োজন এমন সংস্থানগুলির জন্য,
await usingনোটিশ ব্যবহার করা যেতে পারে. এটি নিশ্চিত করে যে পরিবর্তনশীলটি সম্পূর্ণরূপে সুযোগের বাইরে যাওয়ার আগে অপসারণ প্রক্রিয়াটি অপেক্ষা করে। - মডিউল-উদ্দেশ্য:
constমতusingসাথে ঘোষিত ভেরিয়েবলগুলি যে মডিউলে ঘোষণা করা হয়েছে তার স্থানীয়, এবং ঘোষণার সময় অবশ্যই শুরু করতে হবে। - অপরিবর্তনীয়:
constজন্য হিসাবেusingসাথে ঘোষিত ভেরিয়েবলগুলি আরম্ভ করার পরে পুনরায় বরাদ্দ করা যাবে না।
ব্রাউজার সমর্থন
| Chrome | Edge | Firefox | Safari | Opera |
|---|---|---|---|---|
| 134 | 134 | 141 | ❌ | 119 |
| মার্চ 2025 | মার্চ 2025 | জুলাই 2025 | ❌ | মে 2025 |
স্বচ্ছ সম্পদ ব্যবস্থাপনা
await using
অন্যান্য ভাষা দ্বারা অনুপ্রাণিত, জাভাস্ক্রিপ্ট 2026 ফাইল হ্যান্ডেল, ডাটাবেস সংযোগ বা নেটওয়ার্ক স্ট্রীমের মতো সংস্থানগুলি স্বয়ংক্রিয়ভাবে পরিষ্কার করার জন্য।usingমডিউল প্রবর্তন.
এটি অ্যাসিঙ্ক্রোনাস অপারেশনের জন্য বিশেষভাবে কার্যকর:
উদাহরণ
async function processFile() {
using fileHandle = await openFile('data.txt');
// Work with fileHandle here
} // fileHandle is automatically closed here
ব্রাউজার সমর্থন
| Chrome | Edge | Firefox | Safari | Opera |
|---|---|---|---|---|
| 134 | 134 | 141 | ❌ | 119 |
| মার্চ 2025 | মার্চ 2025 | জুলাই 2025 | ❌ | মে 2025 |
Error.isError()
Error.isError()স্ট্যাটিক পদ্ধতি একটি মান একটি ত্রুটি বস্তু কিনা তা পরীক্ষা করে।
উদাহরণ
Error.isError(new TypeError()); // true
Error.isError({ name: "Error" }); // false
Error.isError()হয়instanceof Errorএকটি নিরাপদ বিকল্প, যা রাজ্য জুড়ে ব্যর্থ হয়।
এলাকা-নিরাপদ ত্রুটি পরীক্ষা করা হচ্ছে:একটি iframe থেকে একটি ত্রুটিError.isError()এবং সঙ্গে চেক করা হয়instanceofসঙ্গে ব্যর্থ হয়
ব্রাউজার সমর্থন
| Chrome | Edge | Firefox | Safari | Opera |
|---|---|---|---|---|
| 134 | 134 | 138 | ❌ | 119 |
| মার্চ 2025 | মার্চ 2025 | এপ্রিল 2025 | ❌ | মে 2025 |
Array.fromAsync()
উদাহরণ
async function* asyncGenerator() {
yield Promise.resolve(1);
yield Promise.resolve(2);
yield Promise.resolve(3);
}
async function processAsyncData() {
const arr = await Array.fromAsync(asyncGenerator());
}
processAsyncData();
ব্রাউজার সমর্থন
| Chrome | Edge | Firefox | Safari | Opera |
|---|---|---|---|---|
| 121 | 121 | 115 | 16.4 | ❌ |
| জানুয়ারী 2024 | জানুয়ারী 2024 | জুলাই 2023 | মে 2023 | ❌ |
Uint8Array to/fromBase64()
উদাহরণ
let string = 'W3Schools 123';
const arr = Uint8Array.fromBase64(string);
const arr = new Uint8Array([91,116,156,134,138,37,179,93,183]);
let text = arr.toBase64();
ব্রাউজার সমর্থন
| Chrome | Edge | Firefox | Safari | Opera |
|---|---|---|---|---|
| 140 | 140 | 133 | 18.2 | ❌ |
| সেপ্টেম্বর 2025 | সেপ্টেম্বর 2025 | নভেম্বর 2024 | ডিসেম্বর 2024 | ❌ |
Uint8Array to/fromHex()
উদাহরণ
let text = '5b749c868a25b35db7';
const arr = Uint8Array.fromHex(text);
const arr = new Uint8Array([91,116,156,134,138,37,179,93,183]);
let text = arr.toHex();
ব্রাউজার সমর্থন
| Chrome | Edge | Firefox | Safari | Opera |
|---|---|---|---|---|
| 140 | 140 | 133 | 18.2 | ❌ |
| সেপ্টেম্বর 2025 | সেপ্টেম্বর 2025 | নভেম্বর 2024 | ডিসেম্বর 2024 | ❌ |
ECMAScript 2026 টিউটোরিয়াল
এই টিউটোরিয়ালটি আপনাকে ECMAScript 2026 নতুন বৈশিষ্ট্য সম্পর্কে আপনার জ্ঞান পরীক্ষা করতে সাহায্য করবে।