ES6 (ECMAScript 2015) হল জাভাস্ক্রিপ্টের একটি বড় সংস্করণ যা অনেক নতুন বৈশিষ্ট্য এবং সিনট্যাক্স প্রদান করেছে। এই সংস্করণটি কোড লেখার প্রক্রিয়াকে আরও সহজ, পরিষ্কার এবং শক্তিশালী করেছে। নিচে ES6 এর কিছু প্রধান সিনট্যাক্স এবং ব্যবহারের নিয়ম তুলে ধরা হল।
1. Let এবং Const
ES6-এ let এবং const কিওয়ার্ড দিয়ে ভ্যারিয়েবল ডিক্লেয়ার করার নিয়ম এসেছে, যা var কিওয়ার্ডের বিকল্প হিসেবে ব্যবহৃত হয়।
let: ব্লক স্কোপড ভ্যারিয়েবল ডিক্লেয়ার করে, মান পরিবর্তনযোগ্য।const: ব্লক স্কোপড কনস্ট্যান্ট ভ্যারিয়েবল ডিক্লেয়ার করে, মান পরিবর্তনযোগ্য নয় (immutable)।
উদাহরণ:
let age = 25; // let দিয়ে ভ্যারিয়েবল
const name = "John"; // const দিয়ে কনস্ট্যান্ট ভ্যারিয়েবল
2. Arrow Functions (এরো ফাংশন)
Arrow Functions কোডকে সংক্ষিপ্ত ও পরিষ্কার করতে সহায়ক। এগুলিতে this এর ব্যবহারও সাধারণ ফাংশনের তুলনায় আলাদা।
সিনট্যাক্স:
const functionName = (parameters) => {
return expression;
}
উদাহরণ:
const add = (a, b) => a + b;
console.log(add(2, 3)); // 5
3. Template Literals
Template literals (backticks `) ব্যবহার করে আপনি সহজে স্ট্রিং ইন্টারপোলেশন এবং মাল্টি-লাইন স্ট্রিং তৈরি করতে পারেন।
উদাহরণ:
const name = "John";
const age = 30;
const greeting = `Hello, my name is ${name} and I am ${age} years old.`;
console.log(greeting); // "Hello, my name is John and I am 30 years old."
এছাড়া, মাল্টি-লাইন স্ট্রিংও সহজে লেখা যায়:
const message = `Hello,
How are you?`;
console.log(message);
4. Default Parameters
ES6 এ ফাংশনের প্যারামিটারের জন্য ডিফল্ট মান সেট করা সম্ভব। যদি ফাংশনে কোন আর্গুমেন্ট পাস না করা হয়, তবে ডিফল্ট মান ব্যবহার করা হবে।
উদাহরণ:
function greet(name = "Guest") {
console.log(`Hello, ${name}!`);
}
greet(); // "Hello, Guest!"
greet("John"); // "Hello, John!"
5. Destructuring
Destructuring এর মাধ্যমে অবজেক্ট বা অ্যারে থেকে ডেটা সহজে এক্সট্র্যাক্ট করা যায়। এটি কোডকে আরও পরিষ্কার এবং পাঠযোগ্য করে তোলে।
অ্যারে ডেস্ট্রাকচারিং:
const numbers = [1, 2, 3];
const [a, b] = numbers;
console.log(a, b); // 1, 2
অবজেক্ট ডেস্ট্রাকচারিং:
const person = { name: "John", age: 30 };
const { name, age } = person;
console.log(name, age); // "John", 30
6. Spread Operator (...)
Spread operator (...) দিয়ে আপনি অ্যারে বা অবজেক্টের উপাদানগুলো আলাদা আলাদা করে নিতে পারেন বা নতুন অ্যারে/অবজেক্ট তৈরি করতে পারেন।
অ্যারে স্প্রেড:
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5];
console.log(arr2); // [1, 2, 3, 4, 5]
অবজেক্ট স্প্রেড:
const person = { name: "John", age: 30 };
const newPerson = { ...person, city: "New York" };
console.log(newPerson); // { name: "John", age: 30, city: "New York" }
7. Classes
ES6 এ class কিওয়ার্ডের মাধ্যমে অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং (OOP) কনসেপ্টকে সমর্থন করা হয়েছে।
সিনট্যাক্স:
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
const person1 = new Person("John", 30);
person1.greet(); // "Hello, my name is John and I am 30 years old."
8. Modules
ES6 মডিউল সিস্টেম প্রদান করেছে, যার মাধ্যমে আপনি কোড ভাগ করতে পারেন। একে export এবং import কিওয়ার্ড ব্যবহার করে কাজে লাগানো যায়।
উদাহরণ:
math.js:
export const add = (a, b) => a + b;
export const subtract = (a, b) => a - b;
main.js:
import { add, subtract } from './math.js';
console.log(add(2, 3)); // 5
9. Promises
Promises ES6 এ এসেছে, যা অ্যাসিঙ্ক্রোনাস কোডে ব্যবহৃত হয় এবং কলব্যাক হেল্প থেকে মুক্তি দেয়। এটি অ্যাসিঙ্ক্রোনাস অপারেশন সম্পন্ন হলে ফলাফল দেয়।
উদাহরণ:
const myPromise = new Promise((resolve, reject) => {
const success = true;
if(success) {
resolve("Operation Successful");
} else {
reject("Operation Failed");
}
});
myPromise
.then(result => console.log(result)) // "Operation Successful"
.catch(error => console.log(error)); // "Operation Failed" (যদি reject হয়)
10. Iterators এবং For...of লুপ
ES6 এ for...of লুপ যুক্ত করা হয়েছে, যা অ্যারে বা iterable অবজেক্টের প্রতিটি উপাদান সহজে অ্যাক্সেস করতে সহায়তা করে।
উদাহরণ:
const numbers = [1, 2, 3];
for (const num of numbers) {
console.log(num); // 1, 2, 3
}
এসব ES6 এর নতুন বৈশিষ্ট্যগুলো কোড লেখার অভিজ্ঞতাকে আরও উন্নত এবং কার্যকর করে তোলে, যাতে কোড কমপ্যাক্ট, দ্রুত এবং পাঠযোগ্য হয়।
Read more